code: def test_tuple_types():
      def verify_tuple_types(
          dshape, indices_or_sections, axis=None, dtype="float32"
      ):
          x = relay.var("x", relay.ty.TensorType(dshape, dtype))
          y = relay.split(x, indices_or_sections, axis=axis)
          z = relay.concatenate(y, axis=axis)
          func = relay.Function([x], z)
          x_data = np.random.uniform(size=dshape).astype(dtype)
          verify_results(
              func, [x_data], "test_tuple_types", rtol=1e-5, atol=1e-5
          )
  
          split_z = relay.split(z, indices_or_sections, axis=axis)
          func = relay.Function([x], split_z.astuple())
          verify_results(
              func, [x_data], "test_tuple_types", rtol=1e-5, atol=1e-5
          )
  
          out = relay.Tuple([y[0] + y[1], y[0] - y[1]])
          func = relay.Function([x], out)
          verify_results(
              func, [x_data], "test_tuple_types", rtol=1e-5, atol=1e-5
          )
  
          z = relay.concatenate(out, axis=axis)
          func = relay.Function([x], z)
          verify_results(
              func, [x_data], "test_tuple_types", rtol=1e-5, atol=1e-5
          )
  
      verify_tuple_types((5, 5, 2, 2), 5, axis=1)
      verify_tuple_types((5, 5, 2, 2), 5, axis=0)
      verify_tuple_types((5, 5, 2, 2), [1, 3, 4], axis=0)
      verify_tuple_types((5, 5, 2, 2), [1, 3, 4], axis=1)
  
imports: import pytest
  import numpy
  import onnxruntime
  import tvm
  from tvm import relay
  from tvm.contrib.target.onnx import to_onnx
  from tvm.relay.testing import run_infer_type
label_desc: Use image node_id 25 for calling a global function with example usage: test_tuple_types() without return types