code: def test_pass_option_skip_ops_by_type(self):
      model = self._get_test_model()
      example_input = torch.rand(1, 1, 28, 28)
      traced_model = torch.jit.trace(model, example_input)
  
      pipeline = ct.PassPipeline()
      pipeline.set_options(
          "common::add_fp16_cast", {"skip_ops_by_type": "conv,linear"}
      )
      model_converted = ct.convert(
          traced_model,
          inputs=[ct.TensorType(shape=example_input.shape)],
          convert_to="mlprogram",
          pass_pipeline=pipeline,
      )
      # The fp16 cast is skipped for conv and linear as we specified them in the pass options.
      assert get_op_types_in_program(
          model_converted._get_mil_internal()
      ) == [
          "conv",
          "cast",
          "reshape",
          "cast",
          "linear",
          "cast",
          "leaky_relu",
          "cast",
      ]
  
imports: import copy
  import os
  import tempfile
  import numpy
  import pytest
  import coremltools
  from coremltools._deps import _HAS_TORCH
  from coremltools.converters.mil import Builder
  from coremltools.converters.mil.mil import Function, Program, get_new_symbol
  from coremltools.converters.mil.testing_utils import get_op_types_in_program
label_desc: Use image node_id 7 for calling the TestGraphPassManagement obj's underlying member method code with example usage: obj.test_pass_option_skip_ops_by_type() without return types