public static void getSemanticPropsSingleFromString(
            SingleInputSemanticProperties result,
            String[] forwarded,
            String[] nonForwarded,
            String[] readSet,
            TypeInformation<?> inType,
            TypeInformation<?> outType) {
        getSemanticPropsSingleFromString(
                result, forwarded, nonForwarded, readSet, inType, outType, false);
    }
@Test
    void testForwardedWildCard() {
        String[] forwardedFields = {"*"};
        SingleInputSemanticProperties sp = new SingleInputSemanticProperties();
        SemanticPropUtil.getSemanticPropsSingleFromString(
                sp, forwardedFields, null, null, threeIntTupleType, threeIntTupleType);

        assertThat(sp.getForwardingTargetFields(0, 0)).contains(0);
        assertThat(sp.getForwardingTargetFields(0, 1)).contains(1);
        assertThat(sp.getForwardingTargetFields(0, 2)).contains(2);
        assertThat(sp.getForwardingTargetFields(0, 3)).isEmpty();

        forwardedFields[0] = "*";
        sp = new SingleInputSemanticProperties();
        SemanticPropUtil.getSemanticPropsSingleFromString(
                sp, forwardedFields, null, null, deepNestedTupleType, deepNestedTupleType);
        assertThat(sp.getForwardingTargetFields(0, 0)).contains(0);
        assertThat(sp.getForwardingTargetFields(0, 1)).contains(1);
        assertThat(sp.getForwardingTargetFields(0, 2)).contains(2);
        assertThat(sp.getForwardingTargetFields(0, 3)).contains(3);
        assertThat(sp.getForwardingTargetFields(0, 4)).contains(4);
    }