public static TypeDefinition[] getFunctionTypes(FunctionConfig functionConfig, TypePool typePool)
            throws ClassNotFoundException {
        return getFunctionTypes(functionConfig, typePool.describe(functionConfig.getClassName()).resolve());
    }
@Test(dataProvider = "function")
    public void testGetFunctionTypes(Object function, boolean isWindowConfigPresent) {
        TypePool typePool = TypePool.Default.of(function.getClass().getClassLoader());
        TypeDefinition[] types =
                FunctionCommon.getFunctionTypes(typePool.describe(function.getClass().getName()).resolve(),
                        isWindowConfigPresent);
        assertEquals(types.length, 2);
        assertEquals(types[0].asErasure().getTypeName(), String.class.getName());
        assertEquals(types[1].asErasure().getTypeName(), Integer.class.getName());
    }