code: def test_builder_eval(self):
      x_val = random_gen(shape=(2, 2), rand_min=-37, rand_max=64)
      weight_val = random_gen(shape=(2, 2), rand_min=-91, rand_max=84)
      bias_val = random_gen(shape=(2,), rand_min=0.0, rand_max=9.0)
      v = mb.linear(x=x_val, weight=weight_val, bias=bias_val)
      np.testing.assert_allclose(
          np.matmul(x_val, weight_val.T) + bias_val,
          v.val,
          atol=1e-04,
          rtol=1e-05,
      )
  
imports: import itertools
  import platform
  import numpy
  import pytest
  import coremltools
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import get_new_symbol, types
  from coremltools.converters.mil.mil.ops.tests.iOS14 import backends
  from coremltools.converters.mil.mil.ops.tests.testing_utils import run_compare_builder
  from coremltools.converters.mil.mil.types import builtin_to_string, nptype_from_builtin
  from coremltools.converters.mil.testing_reqs import compute_units
  from coremltools.converters.mil.testing_utils import random_gen, ssa_fn
label_desc: Use image node_id 2 for calling the TestLinear obj's underlying member method code with example usage: obj.test_builder_eval() without return types