You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2007/01/09 22:09:55 UTC

svn commit: r494579 - in /incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test: CASTestSetup.java FeatureStructureTest.java

Author: schor
Date: Tue Jan  9 13:09:54 2007
New Revision: 494579

URL: http://svn.apache.org/viewvc?view=rev&rev=494579
Log:
UIMA-25 added a test case to FeatureStructureTest that tests
assignment of FSArray to a feature declared to be an
array of some other type.  Test passes with current code,
but would fail if the strange test in ll_subsumes which says
a superType subsumes a type and vice-versa at the same time, is
disabled.

Modified:
    incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/CASTestSetup.java
    incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/CASTestSetup.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/CASTestSetup.java?view=diff&rev=494579&r1=494578&r2=494579
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/CASTestSetup.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/CASTestSetup.java Tue Jan  9 13:09:54 2007
@@ -53,6 +53,13 @@
   public static final String TOKEN_TYPE_TYPE = "TokenType";
 
   public static final String WORD_TYPE = "Word";
+  
+  public static final String ARRAYFSWITHSUBTYPE_TYPE = "ArrayFsWithSubtype";
+  
+  public static final String ARRAYFSWITHSUBTYPE_TYPE_FEAT = "subArrayOfAnnot";
+  
+  public static final String ARRAYFSWITHSUBTYPE_TYPE_FEAT_Q = ARRAYFSWITHSUBTYPE_TYPE + TypeSystem.FEATURE_SEPARATOR
+          + ARRAYFSWITHSUBTYPE_TYPE_FEAT;
 
   public static final String SEP_TYPE = "Separator";
 
@@ -127,6 +134,9 @@
     Type tokenType = tsm.addType(TOKEN_TYPE, annotType);
     Type tokenTypeType = tsm.addType(TOKEN_TYPE_TYPE, topType);
     tsm.addType(WORD_TYPE, tokenTypeType);
+    Type arrayFsWithSubtypeType = tsm.addType(ARRAYFSWITHSUBTYPE_TYPE, topType);
+    Type arrayOfAnnot = tsm.getArrayType(annotType);
+    tsm.addFeature(ARRAYFSWITHSUBTYPE_TYPE_FEAT, arrayFsWithSubtypeType, arrayOfAnnot);
     tsm.addType(SEP_TYPE, tokenTypeType);
     tsm.addType(EOS_TYPE, tokenTypeType);
     tsm.addFeature(TOKEN_TYPE_FEAT, tokenType, tokenTypeType);

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java?view=diff&rev=494579&r1=494578&r2=494579
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java Tue Jan  9 13:09:54 2007
@@ -21,6 +21,7 @@
 
 import junit.framework.TestCase;
 
+import org.apache.uima.cas.ArrayFS;
 import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.CASRuntimeException;
 import org.apache.uima.cas.Feature;
@@ -54,6 +55,10 @@
   private Type tokenTypeType;
 
   private Type wordType;
+  
+  private Type arrayFsWithSubtypeType;
+  
+  private Feature arrayFsWithSubtypeTypeFeat;
 
   private Type group1Type;
 
@@ -114,6 +119,9 @@
     assertTrue(this.tokenTypeType != null);
     this.wordType = this.ts.getType(CASTestSetup.WORD_TYPE);
     assertTrue(this.wordType != null);
+    this.arrayFsWithSubtypeType = this.ts.getType(CASTestSetup.ARRAYFSWITHSUBTYPE_TYPE);
+    assertTrue(this.arrayFsWithSubtypeType != null);
+    this.arrayFsWithSubtypeTypeFeat = this.ts.getFeatureByFullName(CASTestSetup.ARRAYFSWITHSUBTYPE_TYPE_FEAT_Q);
     this.group1Type = this.ts.getType(CASTestSetup.GROUP_1);
     assertTrue(this.group1Type != null);
     this.group2Type = this.ts.getType(CASTestSetup.GROUP_2);
@@ -178,6 +186,22 @@
     assertTrue(token.getType().equals(tokenType1));
   }
 
+  public void testSetArrayValuedFeature() {
+    FeatureStructure testFS = this.cas.createFS(this.arrayFsWithSubtypeType);
+    assertTrue(testFS.getFeatureValue(this.arrayFsWithSubtypeTypeFeat) == null);
+    ArrayFS arrayFS = cas.createArrayFS(1);
+    testFS.setFeatureValue(arrayFsWithSubtypeTypeFeat, arrayFS);
+    assertTrue(true); 
+    boolean caughtExc = false;
+    try {
+      testFS.setFeatureValue(arrayFsWithSubtypeTypeFeat, testFS);
+    } catch (CASRuntimeException e) {
+      caughtExc = true;
+      assertTrue(e.getError() == CASRuntimeException.INAPPROP_RANGE);
+    }
+    assertTrue(caughtExc);
+  }
+  
   public void testSetFeatureValue() {
     FeatureStructure token = this.cas.createFS(this.tokenType);
     assertTrue(token.getFeatureValue(this.tokenTypeFeat) == null);