docstr: Test that providing fp16 input dtype works with macOS13.
docstr_tok: ["Test","that","providing","fp16","input","dtype","works","with","macOS13","."]
code: def test_fp16_input_dtype(
      self,
      float32_input_model_add_op,
      float32_input_model_relu_ops,
      int32_input_model,
  ):
      """
      Test that providing fp16 input dtype works with macOS13.
      """
      mlmodel = ct.convert(
          float32_input_model_add_op,
          inputs=[ct.TensorType(dtype=np.float16)],
          outputs=[ct.TensorType(dtype=np.float32)],
          minimum_deployment_target=ct.target.macOS13,
      )
      assert_ops_in_mil_program(
          mlmodel, expected_op_list=["add", "cast"]
      )
      assert_input_dtype(mlmodel, expected_type_str="fp16")
      assert_output_dtype(mlmodel, expected_type_str="fp32")
      verify_prediction(mlmodel)
  
      mlmodel = ct.convert(
          float32_input_model_relu_ops,
          inputs=[ct.TensorType(dtype=np.float16)],
          outputs=[ct.TensorType(dtype=np.float32)],
          minimum_deployment_target=ct.target.macOS13,
      )
      # Two consecutive relus are merged in the `merge_consecutive_relus` pass.
      assert_ops_in_mil_program(
          mlmodel, expected_op_list=["relu", "cast"]
      )
      assert_input_dtype(mlmodel, expected_type_str="fp16")
      assert_output_dtype(mlmodel, expected_type_str="fp32")
      verify_prediction(mlmodel)
  
      mlmodel = ct.convert(
          int32_input_model,
          inputs=[ct.TensorType(dtype=np.float16)],
          outputs=[ct.TensorType(dtype=np.float32)],
          minimum_deployment_target=ct.target.macOS13,
      )
      assert_ops_in_mil_program(
          mlmodel, expected_op_list=["add", "cast"]
      )
      assert_input_dtype(mlmodel, expected_type_str="fp16")
      assert_output_dtype(mlmodel, expected_type_str="fp32")
      verify_prediction(mlmodel)
  
imports: import itertools
  import os
  import tempfile
  import numpy
  import pytest
  import coremltools
  from coremltools._deps import _HAS_TF_1, _HAS_TF_2, MSG_TF1_NOT_FOUND
  from coremltools.converters.mil.testing_reqs import backends, compute_units
  from coremltools.converters.mil.testing_utils import assert_cast_ops_count, assert_input_dtype, assert_ops_in_mil_program, assert_output_dtype, assert_prog_input_type, assert_prog_output_type, assert_spec_input_image_type, assert_spec_output_image_type, get_op_types_in_program, verify_prediction
  from coremltools.proto import FeatureTypes_pb2
  from coremltools.test.api.test_api_examples import TestInputs
label_desc: Use image node_id 8 for calling the TestInputOutputConversionAPI obj's underlying member method code with example usage: obj.test_fp16_input_dtype(float32_input_model_add_op, float32_input_model_relu_ops, int32_input_model) without return types