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

Reply via email to