code: def test_multiarray_single_input_rangedim(
      self, backend, compute_unit
  ):
      input_1 = tf.keras.Input(shape=(None, None, 16), name="input_1")
      x = tf.keras.layers.Dense(4, activation=tf.nn.relu)(input_1)
      outputs = tf.keras.layers.Dense(5, activation=tf.nn.softmax)(x)
      single_input_model = tf.keras.Model(
          inputs=input_1, outputs=outputs
      )
  
      # The `inputs` will work without specifying the name.
      model = ct.convert(
          single_input_model,
          source="tensorflow",
          inputs=[
              ct.TensorType(
                  shape=(
                      1,
                      3,
                      ct.RangeDim(8, 20, default=8),
                      ct.RangeDim(10, 100, default=16),
                  )
              )
          ],
          convert_to=backend[0],
          compute_units=compute_unit,
      )
      spec = model.get_spec()
      assert list(
          spec.description.input[0].type.multiArrayType.shape
      ) == [1, 3, 8, 16]
      assert (
          spec.description.input[0]
          .type.multiArrayType.shapeRange.sizeRanges[2]
          .lowerBound
          == 8
      )
      assert (
          spec.description.input[0]
          .type.multiArrayType.shapeRange.sizeRanges[2]
          .upperBound
          == 20
      )
  
imports: import itertools
  import os
  import tempfile
  import numpy
  import PIL.Image
  import pytest
  import coremltools
  from coremltools._deps import _HAS_TF_2, _HAS_TORCH, MSG_TF2_NOT_FOUND, MSG_TORCH_NOT_FOUND
  from coremltools.converters.mil import Builder
  from coremltools.converters.mil.testing_reqs import backends, compute_units
label_desc: Use image node_id 8 for calling the TestFlexibleInputShapesTF obj's underlying member method code with example usage: obj.test_multiarray_single_input_rangedim(backend, compute_unit) without return types