def test_symbolic_input_conv_and_einsum(self, backend):
        """
        Test a pattern of:

            %1 = conv_1(%x)
            %2 = conv_2(%x)
            %3 = transpose(%2, [0, 3, 2, 1])
            %4 = einsum(%1, %3)

        If ``%x`` has symbolic shape and ``conv_1, conv_2`` have the same
        configuration, the above program should pass the type inference.
        """

        @mb.program(
            input_specs=[
                mb.TensorSpec(shape=(1, 3, get_new_symbol(), get_new_symbol()), dtype=types.fp32)
            ],
            opset_version=backend.opset_version,
        )
        def prog(x):
            weight = np.random.rand(2, 3, 2, 2)
            conv_1 = mb.conv(x=x, weight=weight)
            conv_2 = mb.conv(x=x, weight=weight)
            conv_2_transpose = mb.transpose(x=conv_2, perm=[0, 3, 2, 1])
            return mb.einsum(values=(conv_1, conv_2_transpose), equation="abcd,adce->abce")

        assert prog is not None

        Test a pattern of:

            %1 = conv_1(%x)
            %2 = conv_2(%x)
            %3 = transpose(%2, [0, 3, 2, 1])
            %4 = einsum(%1, %3)

        If ``%x`` has symbolic shape and ``conv_1, conv_2`` have the same
        configuration, the above program should pass the type inference.
        
coremltools/converters/mil/mil/ops/tests/iOS14/test_linear.py