code: def test_builder_to_backend_smoke(self, compute_unit, backend):
      equation = "abcd,adce->abce"
  
      x_val = np.arange(12).astype(np.float32).reshape((2, 1, 3, 2))
      y_val = np.arange(48).astype(np.float32).reshape((2, 2, 3, 4))
      input_placeholder_dict = {
          "x": mb.placeholder(shape=x_val.shape),
          "y": mb.placeholder(shape=y_val.shape),
      }
      input_value_dict = {"x": x_val, "y": y_val}
      out_shape = list(x_val.shape)
      out_shape[-1] = y_val.shape[-1]
      expected_output_type = tuple(out_shape) + (types.fp32,)
  
      def build(x, y):
          return mb.einsum(values=(x, y), equation=equation)
  
      expected_output = np.einsum(equation, x_val, y_val)
  
      run_compare_builder(
          build,
          input_placeholder_dict,
          input_value_dict,
          expected_output_type,
          expected_output,
          compute_unit=compute_unit,
          backend=backend,
      )
  
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 1 for calling the TestEinsum obj's underlying member method code with example usage: obj.test_builder_to_backend_smoke(compute_unit, backend) and returns: mb