def __init__(
        self,
        estimator,
        iterations: int,
        max_laser_beam: LaserBeam | tuple[float, float, float, int],
        min_laser_beam: LaserBeam | tuple[float, float, float, int] = (380.0, 0.0, 1.0, 1),
        random_initializations: int = 1,
        image_generator: ImageGenerator = ImageGenerator(),
        debug: DebugInfo | None = None,
    ) -> None:
        """
        :param estimator: Predictor of the image class.
        :param iterations: Maximum number of iterations of the algorithm.
        :param max_laser_beam: LaserBeam with maximal parameters or tuple (wavelength, angle::radians, bias, width)
            of the laser parameters.
        :param min_laser_beam: LaserBeam with minimal parameters or tuple (wavelength, angle::radians, bias, width)
            of the laser parameters.
        :param image_generator: Object responsible for image generation.
        :param random_initializations: How many times repeat the attack.
        :param debug: Optional debug handler.
        """

        if isinstance(min_laser_beam, tuple):
            min_laser_beam_obj = LaserBeam.from_array(list(min_laser_beam))
        else:
            min_laser_beam_obj = min_laser_beam
        if isinstance(max_laser_beam, tuple):
            max_laser_beam_obj = LaserBeam.from_array(list(max_laser_beam))
        else:
            max_laser_beam_obj = max_laser_beam

        super().__init__(
            estimator,
            iterations,
            LaserBeamGenerator(min_laser_beam_obj, max_laser_beam_obj),
            image_generator=image_generator,
            random_initializations=random_initializations,
            debug=debug,
        )

        :param estimator: Predictor of the image class.
        :param iterations: Maximum number of iterations of the algorithm.
        :param max_laser_beam: LaserBeam with maximal parameters or tuple (wavelength, angle::radians, bias, width)
            of the laser parameters.
        :param min_laser_beam: LaserBeam with minimal parameters or tuple (wavelength, angle::radians, bias, width)
            of the laser parameters.
        :param image_generator: Object responsible for image generation.
        :param random_initializations: How many times repeat the attack.
        :param debug: Optional debug handler.
        
art/attacks/evasion/laser_attack/laser_attack.py