code: def test_mag_to_param_data_node_fail():
      def shear(magnitude):
          return fn.transforms.shear(shear=magnitude)
  
      @augmentation(mag_range=(0, 250), mag_to_param=shear)
      def illegal_shear(data, shear_mt):
          return fn.warp_affine(data, mt=shear_mt)
  
      @pipeline_def(num_threads=4, device_id=0, batch_size=8, seed=42)
      def pipeline():
          data = types.Constant(
              np.full((100, 100, 3), 42, dtype=np.uint8)
          )
          return illegal_shear(
              data, magnitude_bin=5, num_magnitude_bins=10
          )
  
      glob_msg = (
          "callback must return parameter that is `np.ndarray` or"
      )
      with assert_raises(Exception, glob=glob_msg):
          pipeline()
  
imports: import numpy
  import nvidia.dali.tensors
  from nvidia.dali import pipeline_def, fn, types
  from nvidia.dali.auto_aug.core import augmentation, signed_bin
  from nvidia.dali.auto_aug.core._args import forbid_unused_kwargs
  from nose2.tools import params
  from test_utils import check_batch
  from nose_utils import assert_warns, assert_raises
label_desc: Use image node_id 11 for calling a global function with example usage: test_mag_to_param_data_node_fail() and returns: fn, fn, illegal_shear