code: def test_fi_basic(self):
      code = """
              <opset_import: [ "" : 18 ], domain: "local">
              f (y, z) => (w) {
                  x = Add(y, z)
                  w = Mul(x, y)
              }
          """
      self._check(code, [float_type_, float_type_], [], [float_type_])
      self._check(code, [int32_type_, int32_type_], [], [int32_type_])
      self._check_fails(code, [float_type_, int32_type_], [])
  
file_path: onnx/onnx/test/function_inference_test.py
imports: import unittest
  from typing import Sequence
  from shape_inference_test import TestShapeInferenceHelper
  import onnx
  import onnx.helper
  import onnx.parser
  import onnx.shape_inference
  from onnx import AttributeProto, TypeProto
label_desc: Use image node_id 3 for calling the TestFunctionInference obj's underlying member method code with example usage: obj.test_fi_basic() without return types