docstr: Input graph:
  
  func main(float64 x) {
  } -> (x)
  
  becomes
  
  func main(float32 x) {
  } -> (x)
docstr_tok: ["Input","graph",":","func","main","(","float64","x",")","{","}","-",">","(","x",")","becomes","func","main","(","float32","x",")","{","}","-",">","(","x",")"]
code: def test_float64_input(self):
      """
      Input graph:
  
      func main(float64 x) {
      } -> (x)
  
      becomes
  
      func main(float32 x) {
      } -> (x)
      """
  
      @mb.program(
          input_specs=[
              mb.TensorSpec(shape=(1, 1, 1, 1), dtype=types.fp64)
          ]
      )
      def prog(x):
          return x
  
      prev_prog, prev_block, block = apply_pass_and_basic_check(
          prog,
          "mil_backend::adjust_io_to_supported_types",
          skip_output_type_check=True,
          skip_input_type_check=True,
      )  # output dtype is modified
  
      prev_inputs = list(prev_prog.functions["main"].inputs.items())
      inputs = list(prog.functions["main"].inputs.items())
      assert prev_inputs[0][1].name == inputs[0][1].name
      assert inputs[0][1].dtype == types.fp32
  
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 3 for calling the TestAdjustToSupportedTypes obj's underlying member method code with example usage: obj.test_float64_input() and returns: x