def test_ios17_resize_bilinear_dynamic_shape(
        self,
        compute_unit,
        backend,
        input_shape,
        target_shape,
        align_corners,
    ):
        """
        Since iOS17, dynamic shape is supported by lowering to `resize` MIL op.
        """
        batch_dim, _, _, channel = input_shape

        @make_tf_graph([(batch_dim, None, None, channel, tf.float32), (2, tf.int32)])
        def build_model(x, size):
            return tf.raw_ops.ResizeBilinear(
                images=x,
                size=size,
                half_pixel_centers=False,
                align_corners=align_corners,
            )

        model, inputs, outputs = build_model
        input_values = [random_gen(input_shape, -1, 1), np.array(target_shape, dtype=np.int32)]
        input_dict = dict(zip(inputs, input_values))

        # Before iOS17, the dynamic shape will error out.
        with pytest.raises(
            ValueError,
            match="the second input, which is the output size, must be known statically. "
            "Consider setting minimum_deployment_target to iOS17 during conversion.",
        ):
            TensorFlowBaseTest.run_compare_tf(
                model,
                input_dict,
                outputs,
                compute_unit=compute_unit,
                backend=backend,
            )

        # Since iOS17, the dynamic shape will be handled correctly.
        TensorFlowBaseTest.run_compare_tf(
            model,
            input_dict,
            outputs,
            compute_unit=compute_unit,
            backend=backend,
            minimum_deployment_target=ct.target.iOS17,
        )

        Since iOS17, dynamic shape is supported by lowering to `resize` MIL op.
        
coremltools/converters/mil/frontend/tensorflow/test/test_ops.py