r217 - in trunk/src: main/java/org/nuiton/j2r main/java/org/nuiton/j2r/jni main/java/org/nuiton/j2r/net test test/java/org/nuiton/j2r test/resources
Author: jcouteau Date: 2010-06-16 15:46:50 +0200 (Wed, 16 Jun 2010) New Revision: 217 Url: http://nuiton.org/repositories/revision/nuiton-j2r/217 Log: #686 : Impossible to submit a multiline R script Added: trunk/src/test/resources/ trunk/src/test/resources/log4j.properties Modified: trunk/src/main/java/org/nuiton/j2r/REngine.java trunk/src/main/java/org/nuiton/j2r/RProxy.java trunk/src/main/java/org/nuiton/j2r/jni/RJniEngine.java trunk/src/main/java/org/nuiton/j2r/net/RNetEngine.java trunk/src/test/java/org/nuiton/j2r/JNITest.java trunk/src/test/java/org/nuiton/j2r/NetTest.java Modified: trunk/src/main/java/org/nuiton/j2r/REngine.java =================================================================== --- trunk/src/main/java/org/nuiton/j2r/REngine.java 2010-06-02 10:28:51 UTC (rev 216) +++ trunk/src/main/java/org/nuiton/j2r/REngine.java 2010-06-16 13:46:50 UTC (rev 217) @@ -73,6 +73,16 @@ void voidEval(String expr) throws RException; /** + * Evaluate the multi-line expression given in parameter in R. + * + * @param expr the multi-line expression to evaluate. + * @return the value returned by the expression. + * @throws RException if an error occur while trying to evaluate the + * expression. + */ + Object evalScript(String expr) throws RException; + + /** * End the engine use. * * @throws RException Modified: trunk/src/main/java/org/nuiton/j2r/RProxy.java =================================================================== --- trunk/src/main/java/org/nuiton/j2r/RProxy.java 2010-06-02 10:28:51 UTC (rev 216) +++ trunk/src/main/java/org/nuiton/j2r/RProxy.java 2010-06-16 13:46:50 UTC (rev 217) @@ -163,6 +163,23 @@ } /** + * Send a R multi-line instruction to the engine and get the result back. + * + * @param expr the R instruction to send. + * @return the result of the R instruction. + * @see REngine#eval(String) + */ + @Override + public Object evalScript(String expr) throws RException { + if (engine == null) { + log.fatal("The R Proxy is not initialized. An error probably " + + "occured during the initialization."); + return null; + } + return engine.evalScript(expr); + } + + /** * Get back the R engine type options to initialize the REngine. * * @see REngine#init() Modified: trunk/src/main/java/org/nuiton/j2r/jni/RJniEngine.java =================================================================== --- trunk/src/main/java/org/nuiton/j2r/jni/RJniEngine.java 2010-06-02 10:28:51 UTC (rev 216) +++ trunk/src/main/java/org/nuiton/j2r/jni/RJniEngine.java 2010-06-16 13:46:50 UTC (rev 217) @@ -139,6 +139,18 @@ } /** + * Evaluate a R multi-line expression in R and get back the result. + * + * @param expr the R expression to evaluate. + * @return the result of the R expression. + * @see org.nuiton.j2r.REngine#eval(java.lang.String) + */ + @Override + public Object evalScript(String expr) throws RException { + return eval("{" + expr + "}\n"); + } + + /** * Convert the result from an R expression to a java object. * * @param rexp the R expression to convert. Modified: trunk/src/main/java/org/nuiton/j2r/net/RNetEngine.java =================================================================== --- trunk/src/main/java/org/nuiton/j2r/net/RNetEngine.java 2010-06-02 10:28:51 UTC (rev 216) +++ trunk/src/main/java/org/nuiton/j2r/net/RNetEngine.java 2010-06-16 13:46:50 UTC (rev 217) @@ -178,6 +178,18 @@ } /** + * Evaluate a R multi-line expression in R and get back the result. + * + * @param expr the R expression to evaluate. + * @return the result of the R expression. + * @see org.nuiton.j2r.REngine#eval(java.lang.String) + */ + @Override + public Object evalScript(String expr) throws RException { + return eval("{" + expr + "}\n"); + } + + /** * Method to convert a R expression to Java. * * @param rexp the R expression to convert. Modified: trunk/src/test/java/org/nuiton/j2r/JNITest.java =================================================================== --- trunk/src/test/java/org/nuiton/j2r/JNITest.java 2010-06-02 10:28:51 UTC (rev 216) +++ trunk/src/test/java/org/nuiton/j2r/JNITest.java 2010-06-16 13:46:50 UTC (rev 217) @@ -414,4 +414,10 @@ Assert.assertEquals("b", b.get(1)); } + + @Test + public void testScripts() throws Exception { + double d = (Double)engine.evalScript("t<-sin(0)\nt"); + Assert.assertEquals(0.0,d,0.001); + } } // JNITest Modified: trunk/src/test/java/org/nuiton/j2r/NetTest.java =================================================================== --- trunk/src/test/java/org/nuiton/j2r/NetTest.java 2010-06-02 10:28:51 UTC (rev 216) +++ trunk/src/test/java/org/nuiton/j2r/NetTest.java 2010-06-16 13:46:50 UTC (rev 217) @@ -374,4 +374,12 @@ Assert.assertEquals("a", b.get(1)); } + + @Test + public void testScripts() throws Exception { + double d = (Double) engine.evalScript("t<-sin(0)\nt"); + Assert.assertEquals(0.0, d, 0.001); + } + + } // NetTest Added: trunk/src/test/resources/log4j.properties =================================================================== --- trunk/src/test/resources/log4j.properties (rev 0) +++ trunk/src/test/resources/log4j.properties 2010-06-16 13:46:50 UTC (rev 217) @@ -0,0 +1,8 @@ +# Global logging configuration +log4j.rootLogger=DEBUG, stdout +# Console output... +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n +# package level +log4j.logger.org.nuiton.j2r=DEBUG
participants (1)
-
jcouteau@users.nuiton.org