Author: pkluegl Date: Wed Mar 25 20:32:22 2020 New Revision: 1875672 URL: http://svn.apache.org/viewvc?rev=1875672&view=rev Log: UIMA-6194: merge v2 changes
Modified: uima/uv3/ruta-v3/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaLiteralMatcher.java uima/uv3/ruta-v3/trunk/ruta-core/src/test/java/org/apache/uima/ruta/rule/LiteralStringMatchTest.java Modified: uima/uv3/ruta-v3/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaLiteralMatcher.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaLiteralMatcher.java?rev=1875672&r1=1875671&r2=1875672&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaLiteralMatcher.java (original) +++ uima/uv3/ruta-v3/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaLiteralMatcher.java Wed Mar 25 20:32:22 2020 @@ -72,8 +72,8 @@ public class RutaLiteralMatcher implemen if (beginAnchor != null && beginAnchor.getEnd() == end) { return beginAnchor; } - RutaBasic endAnchor = stream.getEndAnchor(begin); - if (beginAnchor == null && endAnchor == null) { + RutaBasic endAnchor = stream.getEndAnchor(end); + if (beginAnchor == null || endAnchor == null) { // do not detect text passages that are not covered by internal segmentation in order to avoid // unintended behavior return null; Modified: uima/uv3/ruta-v3/trunk/ruta-core/src/test/java/org/apache/uima/ruta/rule/LiteralStringMatchTest.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-core/src/test/java/org/apache/uima/ruta/rule/LiteralStringMatchTest.java?rev=1875672&r1=1875671&r2=1875672&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-core/src/test/java/org/apache/uima/ruta/rule/LiteralStringMatchTest.java (original) +++ uima/uv3/ruta-v3/trunk/ruta-core/src/test/java/org/apache/uima/ruta/rule/LiteralStringMatchTest.java Wed Mar 25 20:32:22 2020 @@ -103,4 +103,41 @@ public class LiteralStringMatchTest { RutaTestUtils.assertAnnotationsEquals(cas, 2, 1, "I_____"); } + + @Test + public void testInRutaBasicMatch() throws Exception { + + String document = "1 abcd 2"; + String script = ""; + script += "\"ab\" {-> T1};"; + script += "\"cd\" {-> T2};"; + script += "\"1 ab\" {-> T3};"; + script += "\"cd 2\" {-> T4};"; + script += "NUM \"ab\" {-> T5};"; + script += "\"cd\" {-> T6} @NUM;"; + + script += "\"ac\" {-> T7};"; + script += "\"bd\" {-> T8};"; + script += "\"1 ac\" {-> T9};"; + script += "\"bd 2\" {-> T10};"; + script += "NUM \"ac\" {-> T11};"; + script += "\"bd\" {-> T6} @NUM;"; + + CAS cas = RutaTestUtils.getCAS(document); + Ruta.apply(cas, script); + + RutaTestUtils.assertAnnotationsEquals(cas, 1, 0); + RutaTestUtils.assertAnnotationsEquals(cas, 2, 0); + RutaTestUtils.assertAnnotationsEquals(cas, 3, 0); + RutaTestUtils.assertAnnotationsEquals(cas, 4, 0); + RutaTestUtils.assertAnnotationsEquals(cas, 5, 0); + RutaTestUtils.assertAnnotationsEquals(cas, 6, 0); + + RutaTestUtils.assertAnnotationsEquals(cas, 7, 0); + RutaTestUtils.assertAnnotationsEquals(cas, 8, 0); + RutaTestUtils.assertAnnotationsEquals(cas, 9, 0); + RutaTestUtils.assertAnnotationsEquals(cas, 10, 0); + RutaTestUtils.assertAnnotationsEquals(cas, 11, 0); + RutaTestUtils.assertAnnotationsEquals(cas, 12, 0); + } }