This is an automated email from the ASF dual-hosted git repository.

mboehm7 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/systemds.git


The following commit(s) were added to refs/heads/main by this push:
     new 64daf2b564 [MINOR] Fix randomForest test and error handling missing 
fcall params
64daf2b564 is described below

commit 64daf2b564666d5b959ba1b84e4046703e4dd6c7
Author: Matthias Boehm <[email protected]>
AuthorDate: Mon Mar 13 11:11:34 2023 +0100

    [MINOR] Fix randomForest test and error handling missing fcall params
    
    This patch makes some smaller improvements that showed up during the
    rework of randomForest:
    * Fix case-sensitivity issue randomForestTest.dml (plus name change
      to avoid merge problems for people with windows setup)
    * Improved error handling of non-existing named parameters
    * More robust test string comparisons
---
 .../java/org/apache/sysds/parser/FunctionCallIdentifier.java | 12 ++++++++++++
 .../functions/builtin/part2/BuiltinRandomForestTest.java     |  2 +-
 .../sysds/test/functions/misc/AsBooleanVsAsLogicalTest.java  |  3 ++-
 .../sysds/test/functions/misc/FunctionPotpourriTest.java     |  3 +--
 .../builtin/{randomForest.dml => randomForestTest.dml}       |  0
 5 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/apache/sysds/parser/FunctionCallIdentifier.java 
b/src/main/java/org/apache/sysds/parser/FunctionCallIdentifier.java
index f60047f29e..3c74e0e6c1 100644
--- a/src/main/java/org/apache/sysds/parser/FunctionCallIdentifier.java
+++ b/src/main/java/org/apache/sysds/parser/FunctionCallIdentifier.java
@@ -20,7 +20,10 @@
 package org.apache.sysds.parser;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 import org.apache.sysds.common.Builtins;
 import org.apache.sysds.common.Types.DataType;
@@ -150,6 +153,15 @@ public class FunctionCallIdentifier extends DataIdentifier
                        if( expDef != null )
                                expDef.validateExpression(ids, constVars, 
conditional);
                }
+               // check existence/correctness of named parameters
+               if( hasNamed ) {
+                       Set<String> params = Arrays
+                               
.stream(fstmt.getInputParamNames()).collect(Collectors.toSet());
+                       for( ParameterExpression paramExpr : _paramExprs )
+                               if(!params.contains(paramExpr.getName()))
+                                       raiseValidateError("Named function call 
parameter '"+paramExpr.getName()+"'"
+                                               + " does not exist in signature 
of function '"+fstmt.getName()+"'.");
+               }
                
                // Step 7: constant propagation into function call statement
                if( !conditional ) {
diff --git 
a/src/test/java/org/apache/sysds/test/functions/builtin/part2/BuiltinRandomForestTest.java
 
b/src/test/java/org/apache/sysds/test/functions/builtin/part2/BuiltinRandomForestTest.java
index 08eae79dff..a37fd3ad4a 100644
--- 
a/src/test/java/org/apache/sysds/test/functions/builtin/part2/BuiltinRandomForestTest.java
+++ 
b/src/test/java/org/apache/sysds/test/functions/builtin/part2/BuiltinRandomForestTest.java
@@ -35,7 +35,7 @@ import org.apache.sysds.test.TestUtils;
 @net.jcip.annotations.NotThreadSafe
 public class BuiltinRandomForestTest extends AutomatedTestBase
 {
-       private final static String TEST_NAME = "RandomForest";
+       private final static String TEST_NAME = "randomForestTest";
        private final static String TEST_DIR = "functions/builtin/";
        private static final String TEST_CLASS_DIR = TEST_DIR + 
BuiltinRandomForestTest.class.getSimpleName() + "/";
        
diff --git 
a/src/test/java/org/apache/sysds/test/functions/misc/AsBooleanVsAsLogicalTest.java
 
b/src/test/java/org/apache/sysds/test/functions/misc/AsBooleanVsAsLogicalTest.java
index 858f5f1a0e..736ed912b0 100644
--- 
a/src/test/java/org/apache/sysds/test/functions/misc/AsBooleanVsAsLogicalTest.java
+++ 
b/src/test/java/org/apache/sysds/test/functions/misc/AsBooleanVsAsLogicalTest.java
@@ -53,7 +53,8 @@ public class AsBooleanVsAsLogicalTest extends 
AutomatedTestBase {
                        setOutputBuffering(true);
                        String out = runTest(null).toString();
                        LOG.debug(out);
-                       assertTrue(out.contains("TRUE\nFALSE\nFALSE"));
+                       assertTrue(out.contains("TRUE\nFALSE\nFALSE")
+                               || out.contains("TRUE\r\nFALSE\r\nFALSE"));
                }
                catch(Exception e){
                        e.printStackTrace();
diff --git 
a/src/test/java/org/apache/sysds/test/functions/misc/FunctionPotpourriTest.java 
b/src/test/java/org/apache/sysds/test/functions/misc/FunctionPotpourriTest.java
index 3ade279b7c..b30522249f 100644
--- 
a/src/test/java/org/apache/sysds/test/functions/misc/FunctionPotpourriTest.java
+++ 
b/src/test/java/org/apache/sysds/test/functions/misc/FunctionPotpourriTest.java
@@ -19,7 +19,6 @@
 
 package org.apache.sysds.test.functions.misc;
 
-import org.apache.sysds.hops.HopsException;
 import org.apache.sysds.hops.OptimizerUtils;
 import org.apache.sysds.parser.LanguageException;
 import org.apache.sysds.parser.ParseException;
@@ -131,7 +130,7 @@ public class FunctionPotpourriTest extends AutomatedTestBase
        
        @Test
        public void testFunctionNamedArgsUnkown2() {
-               runFunctionTest( TEST_NAMES[10], HopsException.class );
+               runFunctionTest( TEST_NAMES[10], LanguageException.class );
        }
        
        @Test
diff --git a/src/test/scripts/functions/builtin/randomForest.dml 
b/src/test/scripts/functions/builtin/randomForestTest.dml
similarity index 100%
rename from src/test/scripts/functions/builtin/randomForest.dml
rename to src/test/scripts/functions/builtin/randomForestTest.dml

Reply via email to