Author: pkluegl
Date: Wed May 15 13:34:29 2013
New Revision: 1482827

URL: http://svn.apache.org/r1482827
Log:
UIMA-2904
- added test
- fixed verbalization

Added:
    
uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/action/ImplicitActionTest.java
    
uima/sandbox/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/action/ImplicitActionTest.ruta
Modified:
    
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java

Modified: 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java?rev=1482827&r1=1482826&r2=1482827&view=diff
==============================================================================
--- 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java
 (original)
+++ 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java
 Wed May 15 13:34:29 2013
@@ -40,6 +40,8 @@ import org.apache.uima.ruta.action.Gathe
 import org.apache.uima.ruta.action.GetAction;
 import org.apache.uima.ruta.action.GetFeatureAction;
 import org.apache.uima.ruta.action.GetListAction;
+import org.apache.uima.ruta.action.ImplicitFeatureAction;
+import org.apache.uima.ruta.action.ImplicitMarkAction;
 import org.apache.uima.ruta.action.LogAction;
 import org.apache.uima.ruta.action.MarkAction;
 import org.apache.uima.ruta.action.MarkFastAction;
@@ -152,6 +154,10 @@ public class ActionVerbalizer {
       return "REMOVEDUPLICATE";
     } else if (action instanceof UnmarkAllAction) {
       return "UNMARKALL";
+    } else if (action instanceof ImplicitMarkAction) {
+      return "";
+    } else if (action instanceof ImplicitFeatureAction) {
+      return "";
     }
 
     return action.getClass().getSimpleName();
@@ -456,6 +462,12 @@ public class ActionVerbalizer {
       String verbalize = verbalizer.verbalize(a.getType());
       String but = a.getList() == null ? "" : ", " + 
verbalizer.verbalize(a.getList());
       return name + verbalize + but + ")";
+    } else if (action instanceof ImplicitMarkAction) {
+      ImplicitMarkAction a = (ImplicitMarkAction) action; 
+      return verbalizer.verbalize(a.getType());
+    } else if (action instanceof ImplicitFeatureAction) {
+      ImplicitFeatureAction a = (ImplicitFeatureAction) action; 
+      return verbalizer.verbalize(a.getExpr());
     }
 
     return action.getClass().getSimpleName();

Added: 
uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/action/ImplicitActionTest.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/action/ImplicitActionTest.java?rev=1482827&view=auto
==============================================================================
--- 
uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/action/ImplicitActionTest.java
 (added)
+++ 
uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/action/ImplicitActionTest.java
 Wed May 15 13:34:29 2013
@@ -0,0 +1,126 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.uima.ruta.action;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.apache.uima.cas.CAS;
+import org.apache.uima.cas.FSIterator;
+import org.apache.uima.cas.Type;
+import org.apache.uima.cas.text.AnnotationFS;
+import org.apache.uima.cas.text.AnnotationIndex;
+import org.apache.uima.ruta.FeatureMatchTest;
+import org.apache.uima.ruta.RutaTestUtils;
+import org.apache.uima.ruta.RutaTestUtils.TestFeature;
+import org.apache.uima.ruta.engine.RutaEngine;
+import org.junit.Test;
+
+public class ImplicitActionTest {
+
+  @Test
+  public void test() {
+    String name = this.getClass().getSimpleName();
+    String namespace = 
this.getClass().getPackage().getName().replaceAll("\\.", "/");
+    CAS cas = null;
+    Map<String, String> complexTypes = new HashMap<String, String>();
+    Map<String, List<TestFeature>> features = new TreeMap<String, 
List<TestFeature>>();
+    String typeNameA = "org.apache.uima.ruta.FeatureMatchTest.A";
+    String typeNameB = "org.apache.uima.ruta.FeatureMatchTest.B";
+    String typeNameC = "org.apache.uima.ruta.FeatureMatchTest.C";
+    String typeNameD = "org.apache.uima.ruta.FeatureMatchTest.D";
+    complexTypes.put(typeNameA, "uima.tcas.Annotation");
+    complexTypes.put(typeNameB, typeNameD);
+    complexTypes.put(typeNameC, typeNameD);
+    complexTypes.put(typeNameD, "uima.tcas.Annotation");
+    List<TestFeature> listA = new ArrayList<RutaTestUtils.TestFeature>();
+    features.put(typeNameA, listA);
+    String fnab = "ab";
+    listA.add(new TestFeature(fnab, "", typeNameB));
+    String fnac = "ac";
+    listA.add(new TestFeature(fnac, "", typeNameC));
+    List<TestFeature> listB = new ArrayList<RutaTestUtils.TestFeature>();
+    features.put(typeNameB, listB);
+    String fnbc = "bc";
+    listB.add(new TestFeature(fnbc, "", typeNameC));
+    List<TestFeature> listC = new ArrayList<RutaTestUtils.TestFeature>();
+    features.put(typeNameC, listC);
+    String fnci = "ci";
+    listC.add(new TestFeature(fnci, "", "uima.cas.Integer"));
+    String fncb = "cb";
+    listC.add(new TestFeature(fncb, "", "uima.cas.Boolean"));
+    List<TestFeature> listD = new ArrayList<RutaTestUtils.TestFeature>();
+    features.put(typeNameD, listD);
+    String fnds = "ds";
+    listD.add(new TestFeature(fnds, "", "uima.cas.String"));
+
+    try {
+      cas = RutaTestUtils.process(namespace + "/" + name + 
RutaEngine.SCRIPT_FILE_EXTENSION,
+              FeatureMatchTest.class.getName().replaceAll("\\.", "/") +".txt", 
50, false, false, complexTypes, features, null);
+    } catch (Exception e) {
+      e.printStackTrace();
+      assert (false);
+    }
+    Type t = null;
+    AnnotationIndex<AnnotationFS> ai = null;
+    FSIterator<AnnotationFS> iterator = null;
+
+    t = RutaTestUtils.getTestType(cas, 1);
+    ai = cas.getAnnotationIndex(t);
+    assertEquals(3, ai.size());
+    iterator = ai.iterator();
+    assertEquals("Peter Kluegl", iterator.next().getCoveredText());
+    assertEquals("Joern Kottmann", iterator.next().getCoveredText());
+    assertEquals("Marshall Schor", iterator.next().getCoveredText());
+    
+    t = RutaTestUtils.getTestType(cas, 2);
+    ai = cas.getAnnotationIndex(t);
+    iterator = ai.iterator();
+    assertEquals(3, ai.size());
+    assertEquals("Peter", iterator.next().getCoveredText());
+    assertEquals("Joern", iterator.next().getCoveredText());
+    assertEquals("Marshall", iterator.next().getCoveredText());
+    
+    t = RutaTestUtils.getTestType(cas, 3);
+    ai = cas.getAnnotationIndex(t);
+    iterator = ai.iterator();
+    assertEquals(3, ai.size());
+    assertEquals("Peter", iterator.next().getCoveredText());
+    assertEquals("Joern", iterator.next().getCoveredText());
+    assertEquals("Marshall", iterator.next().getCoveredText());
+
+    t = RutaTestUtils.getTestType(cas, 4);
+    ai = cas.getAnnotationIndex(t);
+    iterator = ai.iterator();
+    assertEquals(3, ai.size());
+    assertEquals("Peter", iterator.next().getCoveredText());
+    assertEquals("Joern", iterator.next().getCoveredText());
+    assertEquals("Marshall", iterator.next().getCoveredText());
+    if (cas != null) {
+      cas.release();
+    }
+
+  }
+}

Added: 
uima/sandbox/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/action/ImplicitActionTest.ruta
URL: 
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/action/ImplicitActionTest.ruta?rev=1482827&view=auto
==============================================================================
--- 
uima/sandbox/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/action/ImplicitActionTest.ruta
 (added)
+++ 
uima/sandbox/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/action/ImplicitActionTest.ruta
 Wed May 15 13:34:29 2013
@@ -0,0 +1,24 @@
+PACKAGE uima.ruta.tests;
+
+DECLARE Annotation D(STRING ds);
+DECLARE D C(INT ci, BOOLEAN cb);
+DECLARE D B(C bc);
+DECLARE Annotation A(B ab, C ac);
+
+INT count;
+CW{ -> ASSIGN(count, count+1), CREATE(C, "ds" = "firstname", "ci" = count, 
"cb" = false)} CW{ -> 
+    GATHER(B, "bc" = 1), FILL(B, "ds" = "lastname")};
+C{REGEXP("M.*") -> SETFEATURE("cb", true)};
+(CW CW){-> CREATE(A, "ab" = B, "ac" = C)};
+
+DECLARE T1, T2, T3, T4, T5, T6, T7, T8, T9;
+A{-> T1};
+A{-> A.ac.ds="name"};
+A.ac.ds=="name"{-> T2};
+A{-> A.ac.cb=true};
+A.ac.cb==true{-> T3};
+A{-> A.ac.ci=10};
+A.ac.ci==10{-> T4};
+
+
+


Reply via email to