docstr: If ``dtype`` is not specified, it defaults to the ``dtype`` of the
        inputs in the TF model.
docstr_tok: ["If","``","dtype","``","is","not","specified",",","it","defaults","to","the","``","dtype","``","of","the","inputs","in","the","TF","model","."]
code: def test_default_input_dtype(
      self, int32_input_model, int32_two_input_model
  ):
      """
      If ``dtype`` is not specified, it defaults to the ``dtype`` of the
            inputs in the TF model.
      """
      # Case 1: Single input model with no dtype specified
      mlmodel = ct.convert(
          int32_input_model,
          inputs=[ct.TensorType(shape=(10, 20))],
          minimum_deployment_target=ct.target.macOS13,
      )
      assert_input_dtype(mlmodel, expected_type_str="int32")
      verify_prediction(mlmodel)
  
      # Case 2: two inputs model with dtype specified for the first input
      mlmodel = ct.convert(
          int32_two_input_model,
          inputs=[
              ct.TensorType(
                  name="input1", shape=(10, 20), dtype=np.float16
              ),
              ct.TensorType(name="input2", shape=(10, 20)),
          ],
          minimum_deployment_target=ct.target.macOS13,
      )
      assert_input_dtype(mlmodel, expected_type_str="fp16", index=0)
      assert_input_dtype(mlmodel, expected_type_str="int32", index=1)
      verify_prediction(mlmodel)
  
      # Case 3: two inputs model with dtype specified for the second input
      mlmodel = ct.convert(
          int32_two_input_model,
          inputs=[
              ct.TensorType(name="input1", shape=(10, 20)),
              ct.TensorType(
                  name="input2", shape=(10, 20), dtype=np.float16
              ),
          ],
          minimum_deployment_target=ct.target.macOS13,
      )
      assert_input_dtype(mlmodel, expected_type_str="int32", index=0)
      assert_input_dtype(mlmodel, expected_type_str="fp16", index=1)
      verify_prediction(mlmodel)
  
      # Case 4: two inputs model with no dtype specified for both inputs
      mlmodel = ct.convert(
          int32_two_input_model,
          inputs=[
              ct.TensorType(name="input1", shape=(10, 20)),
              ct.TensorType(name="input2", shape=(10, 20)),
          ],
          minimum_deployment_target=ct.target.macOS13,
      )
      assert_input_dtype(mlmodel, expected_type_str="int32", index=0)
      assert_input_dtype(mlmodel, expected_type_str="int32", index=1)
      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 18 for calling the TestInputOutputConversionAPI obj's underlying member method code with example usage: obj.test_default_input_dtype(int32_input_model, int32_two_input_model) without return types