[
https://issues.apache.org/jira/browse/UIMA-5844?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marshall Schor resolved UIMA-5844.
----------------------------------
Resolution: Fixed
Assignee: Marshall Schor
added tests such as:
{code:java}
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);
// uimaFIT: selectFollowing(this.jCas, Token.class, sentence, 1);
List<Token> following1 =
jCas.select(Token.class).following(sentence).limit(1).asList();
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);{code}
> SelectFS.following doesn't work
> -------------------------------
>
> Key: UIMA-5844
> URL: https://issues.apache.org/jira/browse/UIMA-5844
> Project: UIMA
> Issue Type: Bug
> Components: Core Java Framework
> Affects Versions: 3.0.0SDK
> Reporter: Richard Eckart de Castilho
> Assignee: Marshall Schor
> Priority: Major
> Fix For: 3.0.1SDK
>
>
> It seems as if the SelectFS following method doesn't work at all:
> {code}
> @Test
> public void testSelectFollowingPrecedingDifferentTypes() {
> this.jCas.setDocumentText("A B C D E");
> Token a = new Token(this.jCas, 0, 1);
> Token b = new Token(this.jCas, 2, 3);
> Token c = new Token(this.jCas, 4, 5);
> Token d = new Token(this.jCas, 6, 7);
> Token e = new Token(this.jCas, 8, 9);
> for (Token token : Arrays.asList(a, b, c, d, e)) {
> token.addToIndexes();
> }
> Sentence sentence = new Sentence(this.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);
> {code}
> This fails with
> {code}
> java.lang.AssertionError: expected:<[D]> but was:<[A]>
> {code}
> It seems as if the `following` simply has no effect. If the `limit is
> removed`, the whole set of Tokens is returned.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)