code: def test_white_box_lifestyle(
      art_warning, decision_tree_estimator, get_iris_dataset
  ):
      try:
          attack_feature = 2  # petal length
          values = [0.14, 0.42, 0.71]  # rounded down
          priors = [50 / 150, 54 / 150, 46 / 150]
  
          (x_train_iris, y_train_iris), (
              x_test_iris,
              y_test_iris,
          ) = get_iris_dataset
          x_train_for_attack = np.delete(
              x_train_iris, attack_feature, 1
          )
          x_train_feature = x_train_iris[:, attack_feature]
          x_test_for_attack = np.delete(x_test_iris, attack_feature, 1)
          x_test_feature = x_test_iris[:, attack_feature]
  
          classifier = decision_tree_estimator()
          attack = AttributeInferenceWhiteBoxLifestyleDecisionTree(
              classifier, attack_feature=attack_feature
          )
          x_train_predictions = np.array(
              [
                  np.argmax(arr)
                  for arr in classifier.predict(x_train_iris)
              ]
          ).reshape(-1, 1)
          x_test_predictions = np.array(
              [
                  np.argmax(arr)
                  for arr in classifier.predict(x_test_iris)
              ]
          ).reshape(-1, 1)
          inferred_train = attack.infer(
              x_train_for_attack,
              x_train_predictions,
              values=values,
              priors=priors,
          )
          inferred_test = attack.infer(
              x_test_for_attack,
              x_test_predictions,
              values=values,
              priors=priors,
          )
          train_diff = np.abs(
              inferred_train - x_train_feature.reshape(1, -1)
          )
          test_diff = np.abs(
              inferred_test - x_test_feature.reshape(1, -1)
          )
          assert np.sum(train_diff) / len(
              inferred_train
          ) == pytest.approx(0.3357, abs=0.03)
          assert np.sum(test_diff) / len(
              inferred_test
          ) == pytest.approx(0.3149, abs=0.03)
          # assert np.sum(train_diff) / len(inferred_train) < np.sum(test_diff) / len(inferred_test)
      except ARTTestException as e:
          art_warning(e)
  
file_path: adversarial-robustness-toolbox/tests/attacks/inference/attribute_inference/test_white_box_lifestyle_decision_tree.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  import pytest
  import numpy
  from art.attacks.inference.attribute_inference.white_box_lifestyle_decision_tree import AttributeInferenceWhiteBoxLifestyleDecisionTree
  from art.estimators.classification.scikitlearn import ScikitlearnDecisionTreeClassifier
  from art.estimators.regression.scikitlearn import ScikitlearnDecisionTreeRegressor
  from tests.attacks.utils import backend_test_classifier_type_check_fail
  from tests.utils import ARTTestException
label_desc: Use image node_id 1 for calling a global function with example usage: test_white_box_lifestyle(art_warning, decision_tree_estimator, get_iris_dataset) without return types