You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by de...@apache.org on 2017/05/10 19:52:35 UTC
incubator-systemml git commit: [SYSTEMML-1584] Update Script out
methods to accept Lists and Seqs
Repository: incubator-systemml
Updated Branches:
refs/heads/master 0651967b9 -> 9bf4154c4
[SYSTEMML-1584] Update Script out methods to accept Lists and Seqs
Overload Script out methods to accept Java Lists and Scala Seqs.
Add corresponding test cases.
Closes #488.
Project: http://git-wip-us.apache.org/repos/asf/incubator-systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-systemml/commit/9bf4154c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-systemml/tree/9bf4154c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-systemml/diff/9bf4154c
Branch: refs/heads/master
Commit: 9bf4154c4f97424c189411d5d25672dba3cba749
Parents: 0651967
Author: Deron Eriksson <de...@us.ibm.com>
Authored: Wed May 10 12:48:27 2017 -0700
Committer: Deron Eriksson <de...@us.ibm.com>
Committed: Wed May 10 12:48:27 2017 -0700
----------------------------------------------------------------------
.../org/apache/sysml/api/mlcontext/Script.java | 25 ++++++++++
.../integration/mlcontext/MLContextTest.java | 49 ++++++++++++++++++++
2 files changed, 74 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/9bf4154c/src/main/java/org/apache/sysml/api/mlcontext/Script.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/mlcontext/Script.java b/src/main/java/org/apache/sysml/api/mlcontext/Script.java
index 27ef5af..7b2b475 100644
--- a/src/main/java/org/apache/sysml/api/mlcontext/Script.java
+++ b/src/main/java/org/apache/sysml/api/mlcontext/Script.java
@@ -386,6 +386,31 @@ public class Script {
}
/**
+ * Register output variables.
+ *
+ * @param outputNames
+ * names of the output variables
+ * @return {@code this} Script object to allow chaining of methods
+ */
+ public Script out(scala.collection.Seq<String> outputNames) {
+ List<String> list = JavaConversions.seqAsJavaList(outputNames);
+ outputVariables.addAll(list);
+ return this;
+ }
+
+ /**
+ * Register output variables.
+ *
+ * @param outputNames
+ * names of the output variables
+ * @return {@code this} Script object to allow chaining of methods
+ */
+ public Script out(List<String> outputNames) {
+ outputVariables.addAll(outputNames);
+ return this;
+ }
+
+ /**
* Clear the inputs, outputs, and symbol table.
*/
public void clearIOS() {
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/9bf4154c/src/test/java/org/apache/sysml/test/integration/mlcontext/MLContextTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/sysml/test/integration/mlcontext/MLContextTest.java b/src/test/java/org/apache/sysml/test/integration/mlcontext/MLContextTest.java
index 90c9050..c1d44b7 100644
--- a/src/test/java/org/apache/sysml/test/integration/mlcontext/MLContextTest.java
+++ b/src/test/java/org/apache/sysml/test/integration/mlcontext/MLContextTest.java
@@ -38,6 +38,7 @@ import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -2715,6 +2716,54 @@ public class MLContextTest extends AutomatedTestBase {
ml.execute(script);
}
+ @Test
+ public void testOutputListDML() {
+ System.out.println("MLContextTest - output specified as List DML");
+
+ List<String> outputs = Arrays.asList("x","y");
+ Script script = dml("a=1;x=a+1;y=x+1").out(outputs);
+ MLResults results = ml.execute(script);
+ Assert.assertEquals(2, results.getLong("x"));
+ Assert.assertEquals(3, results.getLong("y"));
+ }
+
+ @Test
+ public void testOutputListPYDML() {
+ System.out.println("MLContextTest - output specified as List PYDML");
+
+ List<String> outputs = Arrays.asList("x","y");
+ Script script = pydml("a=1\nx=a+1\ny=x+1").out(outputs);
+ MLResults results = ml.execute(script);
+ Assert.assertEquals(2, results.getLong("x"));
+ Assert.assertEquals(3, results.getLong("y"));
+ }
+
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ @Test
+ public void testOutputScalaSeqDML() {
+ System.out.println("MLContextTest - output specified as Scala Seq DML");
+
+ List outputs = Arrays.asList("x","y");
+ Seq seq = JavaConversions.asScalaBuffer(outputs).toSeq();
+ Script script = dml("a=1;x=a+1;y=x+1").out(seq);
+ MLResults results = ml.execute(script);
+ Assert.assertEquals(2, results.getLong("x"));
+ Assert.assertEquals(3, results.getLong("y"));
+ }
+
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ @Test
+ public void testOutputScalaSeqPYDML() {
+ System.out.println("MLContextTest - output specified as Scala Seq PYDML");
+
+ List outputs = Arrays.asList("x","y");
+ Seq seq = JavaConversions.asScalaBuffer(outputs).toSeq();
+ Script script = pydml("a=1\nx=a+1\ny=x+1").out(seq);
+ MLResults results = ml.execute(script);
+ Assert.assertEquals(2, results.getLong("x"));
+ Assert.assertEquals(3, results.getLong("y"));
+ }
+
// NOTE: Uncomment these tests once they work
// @SuppressWarnings({ "rawtypes", "unchecked" })