reallocf commented on a change in pull request #5326: URL: https://github.com/apache/incubator-pinot/pull/5326#discussion_r419034116
########## File path: pinot-core/src/test/java/org/apache/pinot/core/data/function/DefaultFunctionEvaluatorTest.java ########## @@ -34,69 +35,72 @@ @Test public void testExpressionWithColumn() throws Exception { - Method method = MyFunc.class.getDeclaredMethod("reverseString", String.class); - FunctionRegistry.registerStaticFunction(method); - FunctionInfo functionInfo = FunctionRegistry.resolve("reverseString", new Class<?>[]{Object.class}); + MyFunc myFunc = new MyFunc(); + FunctionRegistry functionRegistry = new FunctionRegistry( + Collections.singletonList(myFunc.getClass().getDeclaredMethod("reverseString", String.class))); + FunctionInfo functionInfo = functionRegistry.resolve("reverseString", new Class<?>[]{Object.class}); System.out.println(functionInfo); String expression = "reverseString(testColumn)"; - DefaultFunctionEvaluator evaluator = new DefaultFunctionEvaluator(expression); + DefaultFunctionEvaluator evaluator = new DefaultFunctionEvaluator(expression, functionRegistry); Assert.assertEquals(evaluator.getArguments(), Lists.newArrayList("testColumn")); GenericRow row = new GenericRow(); for (int i = 0; i < 5; i++) { String value = "testValue" + i; row.putField("testColumn", value); Object result = evaluator.evaluate(row); - Assert.assertEquals(result, new StringBuilder(value).reverse().toString()); + Assert.assertEquals(result, myFunc.reverseString(value)); } } @Test public void testExpressionWithConstant() throws Exception { - FunctionRegistry - .registerStaticFunction(MyFunc.class.getDeclaredMethod("daysSinceEpoch", String.class, String.class)); + MyFunc myFunc = new MyFunc(); + FunctionRegistry functionRegistry = new FunctionRegistry( + Collections.singletonList(myFunc.getClass().getDeclaredMethod("daysSinceEpoch", String.class, String.class))); String input = "1980-01-01"; String format = "yyyy-MM-dd"; String expression = String.format("daysSinceEpoch('%s', '%s')", input, format); - DefaultFunctionEvaluator evaluator = new DefaultFunctionEvaluator(expression); + DefaultFunctionEvaluator evaluator = new DefaultFunctionEvaluator(expression, functionRegistry); Assert.assertTrue(evaluator.getArguments().isEmpty()); GenericRow row = new GenericRow(); Object result = evaluator.evaluate(row); - Assert.assertEquals(result, MyFunc.daysSinceEpoch(input, format)); + Assert.assertEquals(result, myFunc.daysSinceEpoch(input, format)); } @Test public void testMultiFunctionExpression() throws Exception { - FunctionRegistry.registerStaticFunction(MyFunc.class.getDeclaredMethod("reverseString", String.class)); - FunctionRegistry - .registerStaticFunction(MyFunc.class.getDeclaredMethod("daysSinceEpoch", String.class, String.class)); + MyFunc myFunc = new MyFunc(); + FunctionRegistry functionRegistry = new FunctionRegistry(Arrays + .asList(myFunc.getClass().getDeclaredMethod("reverseString", String.class), Review comment: `Lists.newArrayList(...)` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org