class_docstr: Input graph:
  input --> pow(2) --> sqrt --> output
  Output graph:
  input --> output
code: def test_fuse(self, reverse_order):
      x_shape = tuple(np.random.randint(low=1, high=4, size=5))
  
      @mb.program(input_specs=[mb.TensorSpec(shape=x_shape)])
      def program(x):
          if not reverse_order:
              x = mb.sqrt(x=mb.pow(x=x, y=2.0))
          else:
              x = mb.pow(x=mb.sqrt(x=x), y=2.0)
          return x
  
      prev_prog, _, block = apply_pass_and_basic_check(
          program, "mil_backend::fuse_pow2_sqrt"
      )
  
      assert set(get_op_types_in_program(prev_prog)) == set(
          ("pow", "sqrt")
      )
      assert get_op_types_in_program(program) == ["identity"]
  
      assert_model_is_valid(
          program=program,
          inputs={"x": x_shape},
          backend=("mlprogram", "fp32"),
          expected_output_shapes={
              block.outputs[0].name: tuple(x_shape)
          },
      )
  
imports: import copy
  import itertools
  import numpy
  import pytest
  import coremltools
  from coremltools.converters.mil._deployment_compatibility import AvailableTarget
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import types
  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 1 for calling the TestPassFusePow2Sqrt obj's underlying member method code with example usage: obj.test_fuse(reverse_order) and returns: x