class_docstr: Input graph:
  input -----> transpose(axis=[1,0]) -----> transpose(axis=[1,0]) ---> out
  
  Output graph:
  input -----> identity -----> out
class_docstr_tok: ["Input","graph",":","input","--","--","-",">","transpose","(","axis=","[","1,0","]",")","--","--","-",">","transpose","(","axis=","[","1,0","]",")","--","-",">","out","Output","graph",":","input","--","--","-",">","identity","--","--","-",">","out"]
code: def test_fusion_with_pad_reflective_op_1(self):
      @mb.program(input_specs=[mb.TensorSpec(shape=(11, 2, 3, 6))])
      def prog(x):
          x = mb.transpose(x=x, perm=[0, 1, 3, 2])
          x2 = mb.pad(x=x, pad=[0, 0, 0, 0, 1, 2, 3, 4], mode="reflect")
          x3 = mb.log(x=x2)
          y2 = mb.transpose(x=x3, perm=[0, 1, 3, 2])
          return y2
  
      prev_prog, prev_block, block = apply_pass_and_basic_check(
          prog, "common::reduce_transposes"
      )
      self.assertEqual(
          get_op_types_in_program(prev_prog),
          ["transpose", "pad", "log", "transpose"],
      )
      self.assertEqual(get_op_types_in_program(prog), ["pad", "log"])
  
      assert list(
          block.find_ops(op_type="pad")[0].inputs["pad"].val.flatten()
      ) == [
          0,
          0,
          0,
          0,
          3,
          4,
          1,
          2,
      ]
      assert_model_is_valid(
          prog,
          {"x": (11, 2, 3, 6)},
          expected_output_shapes={
              block.outputs[0].name: (11, 2, 10, 9)
          },
      )
  
imports: import unittest
  import numpy
  import pytest
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import get_new_symbol
  from coremltools.converters.mil.mil.passes.defs.optimize_repeat_ops import TransformAxisUpdateOps
  from coremltools.converters.mil.mil.passes.pass_registry import PASS_REGISTRY
  from coremltools.converters.mil.testing_utils import apply_pass_and_basic_check, assert_model_is_valid, get_op_types_in_program
label_desc: Use image node_id 16 for calling the TransposeOptimizationPass obj's underlying member method code with example usage: obj.test_fusion_with_pad_reflective_op_1() and returns: y2