Author: schor
Date: Wed Jul 25 15:31:09 2018
New Revision: 1836641
URL: http://svn.apache.org/viewvc?rev=1836641&view=rev
Log:
[UIMA-5844] fix select, rename getArray to getArrayList for iterators, change
the definition to start from current position, and use the iterator itself.
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_backwards.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_limited.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_multiple_indexes.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted2.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator_empty.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SelectFsTest.java
uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/internal/util/rb_trees/IntArrayRBTtest.java
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java
URL:
http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java?rev=1836641&r1=1836640&r2=1836641&view=diff
==============================================================================
---
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java
(original)
+++
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java
Wed Jul 25 15:31:09 2018
@@ -316,7 +316,10 @@ public interface FSIterator<T extends Fe
/**
* return the size of the collection being iterated over, if available.
- * This may be inefficient to compute
+ * Because the iterator can move forwards and backwards, the size is the
+ * total size that the iterator would iterate over, starting at the first
element
+ * thru the last element.
+ * This may be inefficient to compute.
* @return the size of the collection being iterated over.
*/
default int size() {
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java
URL:
http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java?rev=1836641&r1=1836640&r2=1836641&view=diff
==============================================================================
---
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java
(original)
+++
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java
Wed Jul 25 15:31:09 2018
@@ -104,7 +104,7 @@ class FilteredIterator<T extends Feature
/**
* @see org.apache.uima.cas.FSIterator#copy()
*/
- public FSIterator<T> copy() {
+ public FilteredIterator<T> copy() {
return new FilteredIterator<T>(this.it.copy(), this.cons);
}
@@ -164,17 +164,6 @@ class FilteredIterator<T extends Feature
return count;
}
- @Override
- public T[] getArray(Class<? super T> clazz) {
- FilteredIterator<T> it2 = new FilteredIterator<T>(it, cons);
- ArrayList<FeatureStructure> items = new ArrayList<>();
- while (it2.hasNext()) {
- items.add(it2.nextNvc());
- }
- T[] r = (T[]) Array.newInstance(clazz, items.size());
- return items.toArray(r);
- }
-
// /* (non-Javadoc)
// * @see
org.apache.uima.cas.impl.FSIteratorImplBase#moveTo(java.util.Comparator)
// */
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_backwards.java
URL:
http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_backwards.java?rev=1836641&r1=1836640&r2=1836641&view=diff
==============================================================================
---
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_backwards.java
(original)
+++
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_backwards.java
Wed Jul 25 15:31:09 2018
@@ -36,7 +36,7 @@ class FsIterator_backwards<T extends Fea
FsIterator_backwards(FSIterator<T> iterator) {
this.it = (LowLevelIterator<T>) iterator;
- it.moveToLast();
+ it.moveToLast(); // will act like move to first
}
@Override
@@ -145,18 +145,4 @@ class FsIterator_backwards<T extends Fea
return it.size();
}
- @Override
- public T[] getArray(Class<? super T> clazz) {
- T[] a = it.getArray(clazz);
- int len = a.length;
- int len2 = len >> 1;
- int len1 = len - 1;
- for (int i = 0, i2 = len1; i < len2; i++, i2--) {
- T t = a[i];
- a[i] = a[i2];
- a[i2] = t;
- }
- return a;
- }
-
}
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java
URL:
http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java?rev=1836641&r1=1836640&r2=1836641&view=diff
==============================================================================
---
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java
(original)
+++
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java
Wed Jul 25 15:31:09 2018
@@ -20,6 +20,7 @@
package org.apache.uima.cas.impl;
import java.lang.reflect.Array;
+import java.util.ArrayList;
import java.util.Comparator;
import java.util.concurrent.atomic.AtomicInteger;
@@ -185,12 +186,6 @@ class FsIterator_bag<T extends FeatureSt
return null; // not used for bag
}
- @Override
- public T[] getArray(Class<? super T> clazz) {
- T[] a = (T[]) Array.newInstance(clazz, size());
- bag.copyToArray(a, 0);
- return a;
- }
}
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_limited.java
URL:
http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_limited.java?rev=1836641&r1=1836640&r2=1836641&view=diff
==============================================================================
---
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_limited.java
(original)
+++
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_limited.java
Wed Jul 25 15:31:09 2018
@@ -141,14 +141,4 @@ class FsIterator_limited<T extends Featu
public int size() {
return Math.min(limit, iterator.size());
}
-
- @Override
- public T[] getArray(Class<? super T> clazz) {
- T[] a = iterator.getArray(clazz);
- if (a.length > limit) {
- return Arrays.copyOf(a, limit);
- }
- return a;
- }
-
}
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_multiple_indexes.java
URL:
http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_multiple_indexes.java?rev=1836641&r1=1836640&r2=1836641&view=diff
==============================================================================
---
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_multiple_indexes.java
(original)
+++
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_multiple_indexes.java
Wed Jul 25 15:31:09 2018
@@ -192,18 +192,5 @@ public abstract class FsIterator_multipl
? main_idx
: ((LowLevelIterator<T>)allIterators[0]).ll_getIndex());
}
-
- @Override
- public T[] getArray(Class<? super T> clazz) {
- T[] a = (T[]) Array.newInstance(clazz, size());
- int destPos = 0;
- for (LowLevelIterator<T> it : nonEmptyIterators) {
- T[] p = it.getArray(clazz);
- System.arraycopy(p, 0, a, destPos, p.length);
- destPos += p.length;
- }
- return a;
- }
-
}
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted2.java
URL:
http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted2.java?rev=1836641&r1=1836640&r2=1836641&view=diff
==============================================================================
---
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted2.java
(original)
+++
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted2.java
Wed Jul 25 15:31:09 2018
@@ -20,6 +20,7 @@
package org.apache.uima.cas.impl;
import java.lang.reflect.Array;
+import java.util.ArrayList;
import java.util.Comparator;
import org.apache.uima.cas.FeatureStructure;
@@ -300,13 +301,6 @@ class FsIterator_set_sorted2<T extends F
return this.ll_getIndex().isSorted();
}
- @Override
- public T[] getArray(Class<? super T> clazz) {
- T[] a = (T[]) Array.newInstance(clazz, size());
- this.ofsa.copyToArray(a, 0);
- return a;
- }
-
// @Override
// protected int getModificationCountFromIndex() {
// return ofsa.getModificationCount();
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java
URL:
http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java?rev=1836641&r1=1836640&r2=1836641&view=diff
==============================================================================
---
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java
(original)
+++
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java
Wed Jul 25 15:31:09 2018
@@ -19,6 +19,8 @@
package org.apache.uima.cas.impl;
+import java.util.ArrayList;
+
import org.apache.uima.cas.FeatureStructure;
import org.apache.uima.cas.Type;
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java
URL:
http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java?rev=1836641&r1=1836640&r2=1836641&view=diff
==============================================================================
---
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java
(original)
+++
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java
Wed Jul 25 15:31:09 2018
@@ -259,12 +259,5 @@ public class FsIterator_subtypes_snapsho
@Override
public Comparator<TOP> getComparator() {
return comparatorMaybeNoTypeWithoutId;
- }
-
-
- @Override
- public T[] getArray(Class<? super T> clazz) {
- return snapshot;
- }
-
+ }
}
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator.java
URL:
http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator.java?rev=1836641&r1=1836640&r2=1836641&view=diff
==============================================================================
---
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator.java
(original)
+++
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator.java
Wed Jul 25 15:31:09 2018
@@ -19,6 +19,7 @@
package org.apache.uima.cas.impl;
+import java.util.ArrayList;
import java.util.Comparator;
import java.util.NoSuchElementException;
@@ -173,11 +174,15 @@ public interface LowLevelIterator<T exte
default boolean isMoveToSupported() { return false; }
/**
- * @return an array representing the collection of items the iterator would
return
+ * @param arrayList updated by adding elements representing the collection
of items the iterator would return
+ * from its current position to the end
+ *
+ * NOTE: This operation will move the iterator from its current position to
the end.
*/
- default T[] getArray(Class<? super T> clazz) {
- throw new UnsupportedOperationException();
+ default void getArrayList(ArrayList<? super T> arrayList) {
+ while (isValid()) {
+ arrayList.add(nextNvc());
+ }
}
-
}
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator_empty.java
URL:
http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator_empty.java?rev=1836641&r1=1836640&r2=1836641&view=diff
==============================================================================
---
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator_empty.java
(original)
+++
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator_empty.java
Wed Jul 25 15:31:09 2018
@@ -62,7 +62,5 @@ public class LowLevelIterator_empty<T ex
@Override
public Comparator<TOP> getComparator() { return null; }
@Override
- public T[] getArray(Class<? super T> clazz) { return (T[])
Array.newInstance(clazz, 0); }
- @Override
public Type getType() { return TypeSystemImpl.staticTsi.getTopType(); }
}
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java
URL:
http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java?rev=1836641&r1=1836640&r2=1836641&view=diff
==============================================================================
---
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java
(original)
+++
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java
Wed Jul 25 15:31:09 2018
@@ -567,21 +567,9 @@ public class SelectFSs_impl <T extends F
}
private void incr(FSIterator<T> it) {
- if (isBackwards) {
- it.moveToPrevious();
- } else {
- it.moveToNext();
- }
+ it.moveToNext();
}
-// private void decr(FSIterator<T> it) {
-// if (isBackwards) {
-// it.moveToNext();
-// } else {
-// it.moveToPrevious();
-// }
-// }
-//
/*********************************
* terminal operations
* returning other than SelectFSs
@@ -626,8 +614,7 @@ public class SelectFSs_impl <T extends F
if (isPreceding) {
boolean bkwd = isBackwards; // save isBackwards flag.
- // since preceding normally operates
backwards, if this flag is set
- // the user wants to operate "forwards"
+
isBackwards = true; // because need the iterator to move from the
position to the front.
return make_or_copy_snapshot(fsIterator1(), bkwd); // this iterator
fails to skip annotations whose end is > positioning begin
// LowLevelIterator<T> baseIterator = fsIterator1(); // this iterator
fails to skip annotations whose end is > positioning begin
@@ -678,8 +665,8 @@ public class SelectFSs_impl <T extends F
: plainFsIterator(index, view);
it = maybeWrapBackwards(it);
- maybePosition(it);
- maybeShift(it);
+ maybePosition(it); // position needs to come after backwards because that
sets the position
+ maybeShift(it); // shift semantically needs to come after backwards
return (limit == -1) ? it : new FsIterator_limited<>(it, limit);
}
@@ -803,8 +790,8 @@ public class SelectFSs_impl <T extends F
private LowLevelIterator<T> maybeWrapBackwards(LowLevelIterator<T> it) {
if (isBackwards) {
- it = new FsIterator_backwards<>(it);
- it.moveToFirst();
+ it = new FsIterator_backwards<>(it); // positions the underlying
iterator to last,
+ // which is first for going
backwards
}
return it;
}
@@ -877,23 +864,14 @@ public class SelectFSs_impl <T extends F
*
*/
@Override
- public List<T> asList() {
-
- return new AbstractList<T>() {
-
- private final T[] a = asArray((LowLevelIterator<T>) fsIterator());
-
- @Override
- public T get(int i) {
- return a[i];
- }
-
- @Override
- public int size() {
- return a.length;
- }
- };
-
+ public ArrayList<T> asList() {
+ return asArrayList((LowLevelIterator<T>) fsIterator());
+ }
+
+ private ArrayList<T> asArrayList(LowLevelIterator<T> it) {
+ ArrayList<T> al = new ArrayList<>();
+ it.getArrayList(al);
+ return al;
}
/* (non-Javadoc)
@@ -904,13 +882,26 @@ public class SelectFSs_impl <T extends F
return asArray((LowLevelIterator<T>)fsIterator(), clazz);
}
+ /**
+ * This is a terminal operation, so can use/modify the original iterator
+ * @param it the iterator positioned at the start position
+ * @param clazz the class of the result
+ * @return an array of elements from the position to the end
+ */
private T[] asArray(LowLevelIterator<T> it, Class<? super T> clazz) {
- return ((LowLevelIterator<T>)it).getArray(clazz);
- }
+ // can't use the iterator's getArray method, because that returns the
entire
+ // array, starting from the first position thru the last position,
+ // and the iterator might have been positioned other than the starting spot
+ // by a following or startAt etc.
- private T[] asArray(LowLevelIterator<T> it) {
- return asArray(it, (Class<? super T>) ((TypeImpl)it.getType()).javaClass);
+ ArrayList<T> a = asArrayList(it);
+ T[] r = (T[]) Array.newInstance(clazz, a.size());
+ return a.toArray(r);
}
+
+// private T[] asArray(LowLevelIterator<T> it) {
+// return asArray(it, (Class<? super T>)
((TypeImpl)it.getType()).javaClass);
+// }
private Annotation makePosAnnot(int begin, int end) {
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java
URL:
http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java?rev=1836641&r1=1836640&r2=1836641&view=diff
==============================================================================
---
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java
(original)
+++
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java
Wed Jul 25 15:31:09 2018
@@ -1265,18 +1265,6 @@ public class Subiterator<T extends Annot
return sz;
}
- @Override
- public T[] getArray(Class<? super T> clazz) {
- FSIterator<T> it2 = copy();
- it2.moveToFirst();
- ArrayList<FeatureStructure> a = new ArrayList<>();
- while (it2.hasNext()) {
- a.add(it2.nextNvc());
- }
- T[] r = (T[]) Array.newInstance(clazz, a.size());
- return a.toArray(r);
- }
-
// /**
// * Simple implementation:
// * move to leftmost, then
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SelectFsTest.java
URL:
http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SelectFsTest.java?rev=1836641&r1=1836640&r2=1836641&view=diff
==============================================================================
---
uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SelectFsTest.java
(original)
+++
uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SelectFsTest.java
Wed Jul 25 15:31:09 2018
@@ -24,6 +24,7 @@ import static org.junit.Assert.assertFal
import static org.junit.Assert.assertTrue;
import java.io.File;
+import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
@@ -177,4 +178,46 @@ public class SelectFsTest {
assertTrue(jcas.select(Token.class).isEmpty());
}
+
+ @Test
+ public void testSelectFollowingPrecedingDifferentTypes() {
+
+ JCas jCas = cas.getJCas();
+ jCas.setDocumentText("A B C D E");
+ Token a = new Token(jCas, 0, 1);
+ Token b = new Token(jCas, 2, 3);
+ Token c = new Token(jCas, 4, 5);
+ Token d = new Token(jCas, 6, 7);
+ Token e = new Token(jCas, 8, 9);
+ for (Token token : Arrays.asList(a, b, c, d, e)) {
+ token.addToIndexes();
+ }
+ Sentence sentence = new Sentence(jCas, 2, 5);
+ sentence.addToIndexes();
+
+ // uimaFIT: selectFollowing(this.jCas, Token.class, sentence, 1);
+
+ List<Token> following1 =
jCas.select(Token.class).following(sentence).limit(1).asList();
+// assertEquals(Arrays.asList("D"), JCasUtil.toText(following1));
+ assertEquals(Arrays.asList(d), following1);
+
+ Sentence s2 = new Sentence(jCas, 4, 5);
+ Token[] prec1 =
jCas.select(Token.class).preceding(s2).asArray(Token.class);
+ assertEquals(2, prec1.length);
+ assertTrue(Arrays.equals(new Token[] {a, b}, prec1));
+
+ List<Token> prec2
=jCas.select(Token.class).preceding(s2).backwards().asList();
+ assertEquals(Arrays.asList(b, a), prec2);
+
+ prec2
=jCas.select(Token.class).preceding(s2).backwards().shifted(1).asList();
+ assertEquals(Arrays.asList(a), prec2);
+
+ prec2 =jCas.select(Token.class).following(sentence).shifted(1).asList();
+ assertEquals(Arrays.asList(e), prec2);
+
+ prec2 =jCas.select(Token.class).following(sentence).shifted(-1).asList();
+ assertEquals(Arrays.asList(c, d, e), prec2);
+
+
+ }
}
Modified:
uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/internal/util/rb_trees/IntArrayRBTtest.java
URL:
http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/internal/util/rb_trees/IntArrayRBTtest.java?rev=1836641&r1=1836640&r2=1836641&view=diff
==============================================================================
---
uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/internal/util/rb_trees/IntArrayRBTtest.java
(original)
+++
uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/internal/util/rb_trees/IntArrayRBTtest.java
Wed Jul 25 15:31:09 2018
@@ -31,7 +31,7 @@ public class IntArrayRBTtest extends Tes
private final static int NIL = 0;
static final Random rand = new Random();
static {
-// long seed = -585739628489294672L;
+// long seed = 7853174522311867210L;
long seed = rand.nextLong();
rand.setSeed(seed);
System.out.println("IntArrayRBTtest seed is " + seed);