yfsn666 commented on code in PR #10853: URL: https://github.com/apache/inlong/pull/10853#discussion_r1730283819
########## inlong-sdk/transform-sdk/src/test/java/org/apache/inlong/sdk/transform/process/TestTransformArithmeticFunctionsProcessor.java: ########## @@ -55,6 +55,37 @@ public class TestTransformArithmeticFunctionsProcessor { kvSink = new KvSinkInfo("UTF-8", dstFields); } + @Test + public void testModuloFunction() throws Exception { + String transformFunctionSql = "select mod(numeric1,100) from source"; + String transformExpressionSql = "select numeric1 % 100 from source"; + TransformConfig functionConfig = new TransformConfig(transformFunctionSql); + TransformProcessor<String, String> functionProcessor = TransformProcessor + .create(functionConfig, SourceDecoderFactory.createCsvDecoder(csvSource), + SinkEncoderFactory.createKvEncoder(kvSink)); + TransformConfig expressionConfig = new TransformConfig(transformExpressionSql); + TransformProcessor<String, String> expressionProcessor = TransformProcessor + .create(expressionConfig, SourceDecoderFactory.createCsvDecoder(csvSource), + SinkEncoderFactory.createKvEncoder(kvSink)); + // case1: "3.1415926|4a|4|8" + String data = "3.1415926|4a|4|8"; + List<String> output1 = functionProcessor.transform(data); + Assert.assertEquals(1, output1.size()); + Assert.assertEquals("result=3.1415926", output1.get(0)); + List<String> output2 = expressionProcessor.transform(data); + Assert.assertEquals(1, output1.size()); + Assert.assertEquals("result=3.1415926", output2.get(0)); + + // case2: "-3.1415926|4a|4|8" + data = "-3.1415926|4a|4|8"; + output1 = functionProcessor.transform(data); + Assert.assertEquals(1, output1.size()); + Assert.assertEquals("result=-3.1415926", output1.get(0)); + output2 = expressionProcessor.transform(data); + Assert.assertEquals(1, output1.size()); Review Comment: ```suggestion Assert.assertEquals(1, output2.size()); ``` ########## inlong-sdk/transform-sdk/src/test/java/org/apache/inlong/sdk/transform/process/TestTransformArithmeticFunctionsProcessor.java: ########## @@ -55,6 +55,37 @@ public class TestTransformArithmeticFunctionsProcessor { kvSink = new KvSinkInfo("UTF-8", dstFields); } + @Test + public void testModuloFunction() throws Exception { + String transformFunctionSql = "select mod(numeric1,100) from source"; + String transformExpressionSql = "select numeric1 % 100 from source"; + TransformConfig functionConfig = new TransformConfig(transformFunctionSql); + TransformProcessor<String, String> functionProcessor = TransformProcessor + .create(functionConfig, SourceDecoderFactory.createCsvDecoder(csvSource), + SinkEncoderFactory.createKvEncoder(kvSink)); + TransformConfig expressionConfig = new TransformConfig(transformExpressionSql); + TransformProcessor<String, String> expressionProcessor = TransformProcessor + .create(expressionConfig, SourceDecoderFactory.createCsvDecoder(csvSource), + SinkEncoderFactory.createKvEncoder(kvSink)); + // case1: "3.1415926|4a|4|8" + String data = "3.1415926|4a|4|8"; + List<String> output1 = functionProcessor.transform(data); + Assert.assertEquals(1, output1.size()); + Assert.assertEquals("result=3.1415926", output1.get(0)); + List<String> output2 = expressionProcessor.transform(data); + Assert.assertEquals(1, output1.size()); + Assert.assertEquals("result=3.1415926", output2.get(0)); + + // case2: "-3.1415926|4a|4|8" Review Comment: ditto. ########## inlong-sdk/transform-sdk/src/test/java/org/apache/inlong/sdk/transform/process/TestTransformArithmeticFunctionsProcessor.java: ########## @@ -55,6 +55,37 @@ public class TestTransformArithmeticFunctionsProcessor { kvSink = new KvSinkInfo("UTF-8", dstFields); } + @Test + public void testModuloFunction() throws Exception { + String transformFunctionSql = "select mod(numeric1,100) from source"; + String transformExpressionSql = "select numeric1 % 100 from source"; + TransformConfig functionConfig = new TransformConfig(transformFunctionSql); + TransformProcessor<String, String> functionProcessor = TransformProcessor + .create(functionConfig, SourceDecoderFactory.createCsvDecoder(csvSource), + SinkEncoderFactory.createKvEncoder(kvSink)); + TransformConfig expressionConfig = new TransformConfig(transformExpressionSql); + TransformProcessor<String, String> expressionProcessor = TransformProcessor + .create(expressionConfig, SourceDecoderFactory.createCsvDecoder(csvSource), + SinkEncoderFactory.createKvEncoder(kvSink)); + // case1: "3.1415926|4a|4|8" + String data = "3.1415926|4a|4|8"; + List<String> output1 = functionProcessor.transform(data); + Assert.assertEquals(1, output1.size()); + Assert.assertEquals("result=3.1415926", output1.get(0)); + List<String> output2 = expressionProcessor.transform(data); + Assert.assertEquals(1, output1.size()); Review Comment: ```suggestion Assert.assertEquals(1, output2.size()); ``` ########## inlong-sdk/transform-sdk/src/test/java/org/apache/inlong/sdk/transform/process/TestTransformArithmeticFunctionsProcessor.java: ########## @@ -55,6 +55,37 @@ public class TestTransformArithmeticFunctionsProcessor { kvSink = new KvSinkInfo("UTF-8", dstFields); } + @Test + public void testModuloFunction() throws Exception { + String transformFunctionSql = "select mod(numeric1,100) from source"; + String transformExpressionSql = "select numeric1 % 100 from source"; + TransformConfig functionConfig = new TransformConfig(transformFunctionSql); + TransformProcessor<String, String> functionProcessor = TransformProcessor + .create(functionConfig, SourceDecoderFactory.createCsvDecoder(csvSource), + SinkEncoderFactory.createKvEncoder(kvSink)); + TransformConfig expressionConfig = new TransformConfig(transformExpressionSql); + TransformProcessor<String, String> expressionProcessor = TransformProcessor + .create(expressionConfig, SourceDecoderFactory.createCsvDecoder(csvSource), + SinkEncoderFactory.createKvEncoder(kvSink)); + // case1: "3.1415926|4a|4|8" + String data = "3.1415926|4a|4|8"; + List<String> output1 = functionProcessor.transform(data); + Assert.assertEquals(1, output1.size()); + Assert.assertEquals("result=3.1415926", output1.get(0)); + List<String> output2 = expressionProcessor.transform(data); + Assert.assertEquals(1, output1.size()); + Assert.assertEquals("result=3.1415926", output2.get(0)); + + // case2: "-3.1415926|4a|4|8" + data = "-3.1415926|4a|4|8"; + output1 = functionProcessor.transform(data); + Assert.assertEquals(1, output1.size()); + Assert.assertEquals("result=-3.1415926", output1.get(0)); + output2 = expressionProcessor.transform(data); + Assert.assertEquals(1, output1.size()); + Assert.assertEquals("result=-3.1415926", output2.get(0)); + } Review Comment: It is best to cover multiple cases in the test, for example, here, there are multiple cases where the dividend is less than the divisor, the dividend is greater than the divisor, the dividend is an integer, the dividend is a decimal, the dividend is negative, etc. ########## inlong-sdk/transform-sdk/src/test/java/org/apache/inlong/sdk/transform/process/TestTransformArithmeticFunctionsProcessor.java: ########## @@ -55,6 +55,37 @@ public class TestTransformArithmeticFunctionsProcessor { kvSink = new KvSinkInfo("UTF-8", dstFields); } + @Test + public void testModuloFunction() throws Exception { + String transformFunctionSql = "select mod(numeric1,100) from source"; + String transformExpressionSql = "select numeric1 % 100 from source"; + TransformConfig functionConfig = new TransformConfig(transformFunctionSql); + TransformProcessor<String, String> functionProcessor = TransformProcessor + .create(functionConfig, SourceDecoderFactory.createCsvDecoder(csvSource), + SinkEncoderFactory.createKvEncoder(kvSink)); + TransformConfig expressionConfig = new TransformConfig(transformExpressionSql); + TransformProcessor<String, String> expressionProcessor = TransformProcessor + .create(expressionConfig, SourceDecoderFactory.createCsvDecoder(csvSource), + SinkEncoderFactory.createKvEncoder(kvSink)); + // case1: "3.1415926|4a|4|8" Review Comment: It is better to indicate the corresponding function expression rather than the data in the case comment ```suggestion // case1: mod(3.1415926,100) ``` -- 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. To unsubscribe, e-mail: commits-unsubscr...@inlong.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org