// print out annotations of the Source SofA
CAS englishView = cas.getView("SourceDocument");
Assert.assertNotNull(englishView);
Assert.assertEquals("this beer is good", englishView.getDocumentText());
FSIndex anIndex = englishView.getAnnotationIndex();
FSIterator anIter = anIndex.iterator();
Assert.assertEquals("this beer is good", ((AnnotationFS) anIter.next()).getCoveredText());
Assert.assertEquals("this", ((AnnotationFS) anIter.next()).getCoveredText());
if ("this".equals(((AnnotationFS) anIter.get()).getCoveredText()))
anIter.moveToNext(); // because sometimes the test case runs 2 copies of the TransAnnotator
Assert.assertEquals("beer", ((AnnotationFS) anIter.next()).getCoveredText());
if ("beer".equals(((AnnotationFS) anIter.get()).getCoveredText()))
anIter.moveToNext();
Assert.assertEquals("is", ((AnnotationFS) anIter.next()).getCoveredText());
if ("is".equals(((AnnotationFS) anIter.get()).getCoveredText()))
anIter.moveToNext();
Assert.assertEquals("good", ((AnnotationFS) anIter.next()).getCoveredText());
if (anIter.isValid() && "good".equals(((AnnotationFS) anIter.get()).getCoveredText()))
anIter.moveToNext();
Assert.assertFalse(anIter.hasNext());
// print out annotations of the transalation SofA
// System.out.println("\n----------------\n");
CAS germanView = cas.getView("TranslatedDocument");
Assert.assertNotNull(germanView);
Assert.assertEquals("das bier ist gut", germanView.getDocumentText());
Type cross = cas.getTypeSystem().getType("sofa.test.CrossAnnotation");
Feature other = cross.getFeatureByBaseName("otherAnnotation");
anIndex = germanView.getAnnotationIndex(cross);
anIter = anIndex.iterator();
AnnotationFS annot = (AnnotationFS) anIter.next();
Assert.assertEquals("das", annot.getCoveredText());
AnnotationFS crossAnnot = (AnnotationFS) annot.getFeatureValue(other);
Assert.assertEquals("this", crossAnnot.getCoveredText());
annot = (AnnotationFS) anIter.next();
Assert.assertEquals("bier", annot.getCoveredText());
crossAnnot = (AnnotationFS) annot.getFeatureValue(other);
Assert.assertEquals("beer", crossAnnot.getCoveredText());
annot = (AnnotationFS) anIter.next();
Assert.assertEquals("ist", annot.getCoveredText());
crossAnnot = (AnnotationFS) annot.getFeatureValue(other);
Assert.assertEquals("is", crossAnnot.getCoveredText());
annot = (AnnotationFS) anIter.next();
Assert.assertEquals("gut", annot.getCoveredText());
crossAnnot = (AnnotationFS) annot.getFeatureValue(other);
Assert.assertEquals("good", crossAnnot.getCoveredText());
Assert.assertFalse(anIter.hasNext());
}