code: def test_qnn_binary_no_convert_layout():
      def before():
          x = relay.var("x", shape=(2, 2))
          y = relay.var("y", shape=(1, 2))
          return relay.Function(
              [x, y],
              relay.qnn.op.add(
                  x,
                  y,
                  lhs_scale=relay.const(0.0156863, "float32"),
                  lhs_zero_point=relay.const(127, "int32"),
                  rhs_scale=relay.const(0.0117647, "float32"),
                  rhs_zero_point=relay.const(85, "int32"),
                  output_scale=relay.const(0.0235294, "float32"),
                  output_zero_point=relay.const(128, "int32"),
              ),
          )
  
      def expected():
          return before()
  
      a = before()
      a = run_opt_pass(a, transform.ConvertLayout({}))
      b = run_opt_pass(expected(), transform.InferType())
      assert tvm.ir.structural_equal(a, b), "Actual = \n" + str(a)
  
imports: import pytest
  import tvm
  from tvm import relay, te
  from tvm.relay import analysis, transform
  from tvm.relay.op import op
  from tvm.relay.op import register_alter_op_layout
  from tvm.relay.quantize._annotate import attach_simulated_quantize, QAnnotateKind
  from tvm.relay.transform.infer_layout_utils import InferCorrectLayoutOutput
label_desc: Use image node_id 3 for calling a global function with example usage: test_qnn_binary_no_convert_layout() and returns: relay, before