You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2018/12/12 14:44:42 UTC

svn commit: r1848768 - in /uima/ruta/trunk/ruta-core/src: main/java/org/apache/uima/ruta/RutaEnvironment.java test/java/org/apache/uima/ruta/expression/annotation/AnnotationVariableExpressionTest.java

Author: pkluegl
Date: Wed Dec 12 14:44:41 2018
New Revision: 1848768

URL: http://svn.apache.org/viewvc?rev=1848768&view=rev
Log:
UIMA-5888: fixed reset, added test

Modified:
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java
    uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationVariableExpressionTest.java

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java?rev=1848768&r1=1848767&r2=1848768&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java Wed Dec 12 14:44:41 2018
@@ -993,8 +993,9 @@ public class RutaEnvironment {
 		Set<Entry<String, Object>> entrySet = variableValues.entrySet();
 		for (Entry<String, Object> entry : entrySet) {
 			String key = entry.getKey();
+			Class<?> variableType = variableTypes.get(key);
 			Object initialValue = getInitialValue(key, variableTypes.get(key));
-			if (initialValue != null) {
+			if ((!variableType.equals(RutaTable.class) && !variableType.equals(RutaWordList.class) ) || initialValue != null) {
 				// not for word lists
 				entry.setValue(initialValue);
 			}

Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationVariableExpressionTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationVariableExpressionTest.java?rev=1848768&r1=1848767&r2=1848768&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationVariableExpressionTest.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationVariableExpressionTest.java Wed Dec 12 14:44:41 2018
@@ -22,21 +22,31 @@ package org.apache.uima.ruta.expression.
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
+import java.io.IOException;
+import java.net.URISyntaxException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
 
+import org.apache.uima.analysis_engine.AnalysisEngine;
+import org.apache.uima.analysis_engine.AnalysisEngineDescription;
+import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
 import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.FSIterator;
 import org.apache.uima.cas.Feature;
 import org.apache.uima.cas.Type;
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.cas.text.AnnotationIndex;
+import org.apache.uima.fit.factory.AnalysisEngineFactory;
 import org.apache.uima.jcas.cas.FSArray;
+import org.apache.uima.resource.ResourceConfigurationException;
+import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.ruta.engine.Ruta;
+import org.apache.uima.ruta.engine.RutaEngine;
 import org.apache.uima.ruta.engine.RutaTestUtils;
 import org.apache.uima.ruta.engine.RutaTestUtils.TestFeature;
+import org.apache.uima.util.InvalidXMLException;
 import org.junit.Test;
 
 public class AnnotationVariableExpressionTest {
@@ -224,4 +234,44 @@ public class AnnotationVariableExpressio
     assertNotNull("Feature value is null!", array);
     assertEquals(2, array.size());
   }
+  
+  
+  @Test
+  public void testResetVariableBetweenCases() throws ResourceInitializationException, InvalidXMLException, IOException, AnalysisEngineProcessException, ResourceConfigurationException, URISyntaxException {
+    
+	String document = "Some text.";
+    String script = "ANNOTATIONLIST as;\n";
+    script += "ANNOTATION a;\n";
+    script += "WORDLIST wl = 'org/apache/uima/ruta/WSDictionaryTestList.txt';\n";
+    script += "WORDTABLE wt = 'org/apache/uima/ruta/table2.csv';\n";
+    script += "a{-> T1};\n";
+    script += "as{-> T2};\n";
+    script += "Document{-> a = CW};\n";
+    script += "Document{-> as = W};\n";
+    script += "a{-> T3};\n";
+    script += "as{-> T4};";
+
+    AnalysisEngineDescription description = AnalysisEngineFactory.createEngineDescription(RutaEngine.class, RutaEngine.PARAM_RULES, script);
+    AnalysisEngine engine = AnalysisEngineFactory.createEngine(description);
+    
+    CAS cas =  RutaTestUtils.getCAS(document);
+    
+    cas.reset();
+    cas.setDocumentText(document);
+    engine.process(cas);
+    RutaTestUtils.assertAnnotationsEquals(cas, 1, 0);
+    RutaTestUtils.assertAnnotationsEquals(cas, 2, 0);
+    RutaTestUtils.assertAnnotationsEquals(cas, 3, 1, "Some");
+    RutaTestUtils.assertAnnotationsEquals(cas, 4, 2, "Some", "text");
+    
+    cas.reset();
+    cas.setDocumentText(document);
+    engine.process(cas);
+    RutaTestUtils.assertAnnotationsEquals(cas, 1, 0);
+    RutaTestUtils.assertAnnotationsEquals(cas, 2, 0);
+    RutaTestUtils.assertAnnotationsEquals(cas, 3, 1, "Some");
+    RutaTestUtils.assertAnnotationsEquals(cas, 4, 2, "Some", "text");
+
+  }
+  
 }