def test_extract_submodel_tuple_input_ops(self):
        """
        Input graph:
        x -> relu ---> sin ---
                   |         |
                   v         v
                   cos -> concat -> tanh -> output_1
        """
        @mb.program(input_specs=[mb.TensorSpec(shape=(1, 2), dtype=types.fp16)], opset_version=ct.target.iOS16)
        def prog(x):
            relu = mb.relu(x=x, name="relu")
            sin = mb.sin(x=relu, name="sin")
            cos = mb.cos(x=relu, name="cos")
            concat = mb.concat(values=[sin, cos], axis=1, name="concat")
            tanh = mb.tanh(x=concat, name="tanh")
            return tanh

        model = ct.convert(prog, convert_to="mlprogram")
        submodel = extract_submodel(model, outputs=["tanh"], inputs=["relu"])

        assert get_op_types_in_program(submodel._mil_program) == ["sin", "cos", "concat", "tanh"]

        outputs = list(submodel._mil_program.functions["main"].outputs)
        assert len(outputs) == 1
        assert outputs[0].name == "tanh"

        Input graph:
        x -> relu ---> sin ---
                   |         |
                   v         v
                   cos -> concat -> tanh -> output_1
        
coremltools/converters/mil/mil/tests/test_debug.py