code: def basic_model_global_assert(
      self,
      attr_algo: Attribution,
      model: Module,
      inputs: TensorOrTupleOfTensorsGeneric,
      expected: Tensor,
      additional_args: Any = None,
      target: TargetType = None,
      n_perturb_samples: int = 10,
      max_batch_size: int = None,
      perturb_func: Callable = _global_perturb_func1,
      normalize: bool = False,
  ) -> Tensor:
      attrs = attr_algo.attribute(
          inputs, additional_forward_args=additional_args, target=target
      )
      infid = self.infidelity_assert(
          model,
          attrs,
          inputs,
          expected,
          additional_args=additional_args,
          perturb_func=perturb_func,
          target=target,
          n_perturb_samples=n_perturb_samples,
          max_batch_size=max_batch_size,
          normalize=normalize,
      )
      return infid
  
imports: import typing
  from typing import Any, Callable, cast, List, Tuple, Union
  import torch
  from captum._utils.typing import BaselineType, TargetType, TensorOrTupleOfTensorsGeneric
  from captum.attr import Attribution, DeepLift, FeatureAblation, IntegratedGradients, Saliency
  from captum.metrics import infidelity, infidelity_perturb_func_decorator
  from tests.helpers.basic import assertTensorAlmostEqual, BaseTest
  from tests.helpers.basic_models import BasicModel2, BasicModel4_MultiArgs, BasicModel_ConvNet_One_Conv, BasicModel_MultiLayer
  from torch import Tensor
  from torch.nn import Module
label_desc: Use image node_id 13 for calling the Test obj's underlying member method code with example usage: obj.basic_model_global_assert(attr_algo, model, inputs, expected, additional_args, target, n_perturb_samples, max_batch_size, perturb_func, normalize) and returns: infid