code: def test_minimal_perturbations_images(
      art_warning, fix_get_mnist_subset, image_dl_estimator_for_attack
  ):
      try:
          classifier = image_dl_estimator_for_attack(FastGradientMethod)
  
          expected_values = {
              "x_test_mean": ExpectedValue(0.03896513, 0.01),
              "x_test_min": ExpectedValue(-0.30000000, 0.00001),
              "x_test_max": ExpectedValue(0.30000000, 0.00001),
              "y_test_pred_adv_expected": ExpectedValue(
                  np.asarray([4, 2, 4, 7, 0, 4, 7, 2, 0, 7, 0]), 2
              ),
          }
  
          attack = FastGradientMethod(
              classifier, eps=1.0, batch_size=11
          )
  
          # Test eps of float type
          attack_params = {"minimal": True, "eps_step": 0.1, "eps": 5.0}
          attack.set_params(**attack_params)
  
          backend_check_adverse_values(
              attack, fix_get_mnist_subset, expected_values
          )
  
          # Test eps of array type 1
          (_, _, x_test_mnist, _) = fix_get_mnist_subset
          eps = np.ones(shape=x_test_mnist.shape) * 5.0
          eps_step = np.ones_like(eps) * 0.1
  
          attack_params = {
              "minimal": True,
              "eps_step": eps_step,
              "eps": eps,
          }
          attack.set_params(**attack_params)
  
          backend_check_adverse_values(
              attack, fix_get_mnist_subset, expected_values
          )
  
          # Test eps of array type 2
          eps = np.ones(shape=x_test_mnist.shape[1:]) * 5.0
          eps_step = np.ones_like(eps) * 0.1
  
          attack_params = {
              "minimal": True,
              "eps_step": eps_step,
              "eps": eps,
          }
          attack.set_params(**attack_params)
  
          backend_check_adverse_values(
              attack, fix_get_mnist_subset, expected_values
          )
  
          # Test eps of array type 3
          eps = np.ones(shape=x_test_mnist.shape[2:]) * 5.0
          eps_step = np.ones_like(eps) * 0.1
  
          attack_params = {
              "minimal": True,
              "eps_step": eps_step,
              "eps": eps,
          }
          attack.set_params(**attack_params)
  
          backend_check_adverse_values(
              attack, fix_get_mnist_subset, expected_values
          )
  
          # Test eps of array type 4
          eps = np.ones(shape=x_test_mnist.shape[3:]) * 5.0
          eps_step = np.ones_like(eps) * 0.1
  
          attack_params = {
              "minimal": True,
              "eps_step": eps_step,
              "eps": eps,
          }
          attack.set_params(**attack_params)
  
          backend_check_adverse_values(
              attack, fix_get_mnist_subset, expected_values
          )
  
      except ARTTestException as e:
          art_warning(e)
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  import numpy
  import pytest
  from art.attacks.evasion import FastGradientMethod
  from art.estimators.estimator import BaseEstimator, LossGradientsMixin
  from tests.attacks.utils import backend_check_adverse_values, backend_test_defended_images
  from tests.attacks.utils import backend_test_random_initialisation_images, backend_targeted_images
  from tests.attacks.utils import backend_targeted_tabular, backend_untargeted_tabular, backend_masked_images
  from tests.attacks.utils import backend_test_classifier_type_check_fail
  from tests.utils import ExpectedValue, ARTTestException
label_desc: Use image node_id 6 for calling a global function with example usage: test_minimal_perturbations_images(art_warning, fix_get_mnist_subset, image_dl_estimator_for_attack) without return types