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