code: def test_builder_eval(self):
      # scalar zero-point & scalar scale
      v = mb.constexpr_affine_dequantize(
          quantized_data=np.array([[1, 2, 3], [1, 2, 3]]).astype(
              np.uint8
          ),
          zero_point=np.uint8(1),
          scale=np.float32(2),
          axis=0,
      )
      assert v.val is None
      np.testing.assert_allclose(
          np.float32([[0, 2, 4], [0, 2, 4]]),
          v.op.materialized_val_inference(),
      )
  
      # vector zero-point & scalar scale
      v = mb.constexpr_affine_dequantize(
          quantized_data=np.array([[1, 2, 3], [1, 2, 3]]).astype(
              np.int8
          ),
          zero_point=np.array([1, 2]).astype(np.int8),
          scale=np.float32(2),
          axis=0,
      )
      np.testing.assert_allclose(
          np.float32([[0, 2, 4], [-2, 0, 2]]),
          v.op.materialized_val_inference(),
      )
  
      # scalar zero-point & vector scale
      v = mb.constexpr_affine_dequantize(
          quantized_data=np.array([[1, 2, 3], [1, 2, 3]]).astype(
              np.uint8
          ),
          zero_point=np.uint8(1),
          scale=np.array([2, 4]).astype(np.float32),
          axis=0,
      )
      np.testing.assert_allclose(
          np.float32([[0, 2, 4], [0, 4, 8]]),
          v.op.materialized_val_inference(),
      )
  
      # vector zero-point & vector scale
      v = mb.constexpr_affine_dequantize(
          quantized_data=np.array([[1, 2, 3], [1, 2, 3]]).astype(
              np.int8
          ),
          zero_point=np.array([1, 2]).astype(np.int8),
          scale=np.array([2, 4]).astype(np.float32),
          axis=0,
      )
      np.testing.assert_allclose(
          np.float32([[0, 2, 4], [-4, 0, 4]]),
          v.op.materialized_val_inference(),
      )
  
imports: import itertools
  import numpy
  import pytest
  from coremltools.converters.mil import testing_reqs
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import types
  from coremltools.converters.mil.mil.ops.defs.iOS16 import constexpr_ops
  from coremltools.converters.mil.mil.ops.tests.iOS16 import backends
  from coremltools.converters.mil.mil.ops.tests.testing_utils import run_compare_builder
  from coremltools.converters.mil.testing_utils import get_op_types_in_program, ssa_fn
label_desc: Use image node_id 2 for calling the TestConstexprAffineDequantize obj's underlying member method code with example usage: obj.test_builder_eval() without return types