code: def test_dynamic_to_static_double_reshape():
      def verify_reshape(shape, newshape):
          x = relay.var("x", relay.TensorType(shape, "float32"))
          y = relay.var("y", relay.TensorType(newshape, "float32"))
          z = relay.reshape(x, relay.shape_of(y))
          z = relay.reshape(z, relay.shape_of(x))
          func = run_infer_type(relay.Function([x, y], z))
          func2 = run_opt_pass(
              run_opt_pass(func, transform.DynamicToStatic()),
              transform.InferType(),
          )
  
          zz = func2.body
          assert isinstance(zz, relay.Call)
          assert zz.op == relay.op.get("reshape")
          assert "newshape=" in zz.astext()
          assert zz.checked_type == relay.ty.TensorType(
              shape, "float32"
          )
  
          x_data = np.random.uniform(low=-1, high=1, size=shape).astype(
              "float32"
          )
          y_data = np.random.uniform(
              low=-1, high=1, size=newshape
          ).astype("float32")
          verify_func(func2, [x_data, y_data], x_data)
  
      verify_reshape((2, 3, 4), (8, 3))
      verify_reshape((4, 7), (2, 7, 2))
  
imports: import numpy
  import pytest
  import tvm
  from tvm import te
  from tvm import relay
  from tvm.relay import transform
  from tvm.relay.build_module import bind_params_by_name
  from tvm.relay.testing import run_infer_type, create_workload
  import tvm.topi.testing
  import tvm.testing
label_desc: Use image node_id 5 for calling a global function with example usage: test_dynamic_to_static_double_reshape() without return types