class_docstr: Implementation of a generic laser attack case.
class_docstr_tok: ["Implementation","of","a","generic","laser","attack","case","."]
docstr: Attack particular image with given class.
  
  :param x: Image to attack.
  :param y: Correct class of the image.
  :returns: Pair of adversarial parameters and predicted class.
docstr_tok: ["Attack","particular","image","with","given","class",".",":","param","x",":","Image","to","attack",".",":","param","y",":","Correct","class","of","the","image",".",":","returns",":","Pair","of","adversarial","parameters","and","predicted","class","."]
code: def _attack_single_image(
      self, x: np.ndarray, y: int, confidence: float
  ) -> Tuple[Optional[AdversarialObject], Optional[int]]:
      """
      Attack particular image with given class.
  
      :param x: Image to attack.
      :param y: Correct class of the image.
      :returns: Pair of adversarial parameters and predicted class.
      """
  
      return self.optimisation_algorithm(
          image=x,
          estimator=self.estimator,
          iterations=self.iterations,
          actual_class=y,
          actual_class_confidence=confidence,
          adv_object_generator=self._laser_generator,
          image_generator=self._image_generator,
          debug=self._debug,
      )
  
imports: import logging
  from typing import Callable, List, Optional, Tuple, Union, Any
  import numpy
  from art.attacks.attack import EvasionAttack
  from art.attacks.evasion.laser_attack.algorithms import greedy_search
  from art.attacks.evasion.laser_attack.utils import AdversarialObject, AdvObjectGenerator, DebugInfo, ImageGenerator, Line, wavelength_to_rgb
label_desc: Use image node_id 6 for calling the LaserAttack obj's underlying member method code with example usage: obj._attack_single_image(x, y, confidence) and returns: self