code: def test_miface(
      art_warning, fix_get_mnist_subset, image_dl_estimator_for_attack
  ):
      try:
          classifier = image_dl_estimator_for_attack(MIFace)
  
          # for the one-shot method, frame saliency attack should resort to plain FastGradientMethod
          # expected_values = {
          #     "x_test_mean": ExpectedValue(0.2346725, 0.002),
          #     "x_test_min": ExpectedValue(-1.0, 0.00001),
          #     "x_test_max": ExpectedValue(1.0, 0.00001),
          #     "y_test_pred_adv_expected": ExpectedValue(np.asarray([4, 4, 4, 7, 7, 4, 7, 2, 2, 3, 0]), 2),
          # }
  
          attack = MIFace(classifier, max_iter=150, batch_size=3)
          backend_check_inferred_values(
              attack, fix_get_mnist_subset, classifier
          )
      except ARTTestException as e:
          art_warning(e)
  
file_path: adversarial-robustness-toolbox/tests/attacks/inference/model_inversion/test_mi_face.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  import pytest
  import numpy
  from art.attacks.inference.model_inversion import MIFace
  from art.estimators.estimator import BaseEstimator
  from art.estimators.classification.classifier import ClassifierMixin, ClassGradientsMixin
  from tests.attacks.utils import backend_test_classifier_type_check_fail
  from tests.utils import ARTTestException
label_desc: Use image node_id 3 for calling a global function with example usage: test_miface(art_warning, fix_get_mnist_subset, image_dl_estimator_for_attack) without return types