package com.fulmicoton.multiregexp; import org.junit.Assert; import org.junit.Test; public class MultiPatternTest { public static MultiPattern multiPattern = MultiPattern.of( "ab+", // 0 "abc+", // 1 "ab?c", // 2 "v", // 3 "v.*", // 4 "(def)+" // 5 ); public static final MultiPatternSearcher multiPatternSearcher = multiPattern.searcher(); public static final MultiPatternMatcher multiPatternMatcher = multiPattern.matcher(); @Test public void testSearch() { MultiPatternSearcher.Cursor cursor = multiPatternSearcher.search("ab abc vvv"); Assert.assertTrue(cursor.next()); Assert.assertEquals(cursor.match(), 0); Assert.assertEquals(cursor.start(), 0); Assert.assertEquals(cursor.end(), 2); Assert.assertTrue(cursor.next()); Assert.assertTrue(cursor.found()); Assert.assertEquals(cursor.match(), 0); Assert.assertEquals(cursor.start(), 3); Assert.assertEquals(cursor.end(), 5); Assert.assertTrue(cursor.next()); Assert.assertEquals(cursor.match(), 3); Assert.assertTrue(cursor.next()); Assert.assertEquals(cursor.match(), 3); Assert.assertTrue(cursor.next()); Assert.assertEquals(cursor.match(), 3); Assert.assertFalse(cursor.next()); Assert.assertEquals(cursor.match(), -1); Assert.assertFalse(cursor.found()); } public static void helper(MultiPatternMatcher matcher, String str, int... vals) { Assert.assertArrayEquals(vals, matcher.match(str)); } @Test public void testString() { helper(multiPatternMatcher, "ab", 0); helper(multiPatternMatcher, "abc", 1, 2); helper(multiPatternMatcher, "ac", 2); helper(multiPatternMatcher, ""); helper(multiPatternMatcher, "v", 3, 4); helper(multiPatternMatcher, "defdef", 5); helper(multiPatternMatcher, "defde"); helper(multiPatternMatcher, "abbbbb", 0); } }