public static <IN, OUT> TypeInformation<OUT> getOutputTypeForOneInputProcessFunction(
            OneInputStreamProcessFunction<IN, OUT> processFunction,
            TypeInformation<IN> inTypeInformation) {
        return TypeExtractor.getUnaryOperatorReturnType(
                processFunction,
                OneInputStreamProcessFunction.class,
                0,
                1,
                new int[] {1, 0},
                inTypeInformation,
                Utils.getCallLocationName(),
                true);
    }
@Test
    void testGetOneInputOutputType() {
        TypeInformation<Long> outputType =
                StreamUtils.getOutputTypeForOneInputProcessFunction(
                        new OneInputStreamProcessFunction<Integer, Long>() {
                            @Override
                            public void processRecord(
                                    Integer record, Collector<Long> output, PartitionedContext ctx)
                                    throws Exception {
                                // ignore
                            }
                        },
                        Types.INT);
        assertThat(outputType).isEqualTo(Types.LONG);
    }