This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-text.git
The following commit(s) were added to refs/heads/master by this push: new b64446f Add org.apache.commons.text.matcher.StringMatcherFactory.andMatcher(StringMatcher...). b64446f is described below commit b64446fcb3b8fcd8292129415281fd6348cbece3 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Mon Jul 13 15:53:13 2020 -0400 Add org.apache.commons.text.matcher.StringMatcherFactory.andMatcher(StringMatcher...). --- src/changes/changes.xml | 1 + .../text/matcher/AbstractStringMatcher.java | 283 ++++++++++------- .../apache/commons/text/matcher/StringMatcher.java | 19 +- .../commons/text/matcher/StringMatcherFactory.java | 38 ++- .../text/matcher/StringMatcherFactoryTest.java | 6 + .../text/matcher/StringMatcherOnCharArrayTest.java | 337 +++++++++++---------- .../StringMatcherOnCharSequenceStringTest.java | 337 +++++++++++---------- .../text/matcher/StringSubstitutorGetSetTest.java | 16 +- 8 files changed, 588 insertions(+), 449 deletions(-) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 427e475..ecb8286 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -58,6 +58,7 @@ The <action> type attribute can be add,update,fix,remove. <action type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.commons.text.matcher.StringMatcher.isMatch(CharSequence, int).</action> <action type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.commons.text.matcher.StringMatcher.isMatch(CharSequence, int, int, int).</action> <action type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.commons.text.matcher.StringMatcherFactory.stringMatcher(char...).</action> + <action type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.commons.text.matcher.StringMatcherFactory.andMatcher(StringMatcher...).</action> <action type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.commons.text.TextStringBuilder.toString(int, int).</action> <action type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.commons.text.TextStringBuilder.readFrom(Reader, int).</action> <action type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.commons.text.TextStringBuilder.charAtDelete(int).</action> diff --git a/src/main/java/org/apache/commons/text/matcher/AbstractStringMatcher.java b/src/main/java/org/apache/commons/text/matcher/AbstractStringMatcher.java index 18419d7..17457b9 100644 --- a/src/main/java/org/apache/commons/text/matcher/AbstractStringMatcher.java +++ b/src/main/java/org/apache/commons/text/matcher/AbstractStringMatcher.java @@ -33,7 +33,181 @@ import org.apache.commons.lang3.StringUtils; abstract class AbstractStringMatcher implements StringMatcher { /** - * Class used to define a character for matching purposes. + * Matches all of the given matchers in order. + * + * @since 1.9 + */ + static final class AndStringMatcher extends AbstractStringMatcher { + + /** + * Matchers in order. + */ + private final StringMatcher[] stringMatchers; + + /** + * Constructs a new initialized instance. + * + * @param stringMatchers Matchers in order. + */ + AndStringMatcher(StringMatcher... stringMatchers) { + this.stringMatchers = stringMatchers; + } + + @Override + public int isMatch(char[] buffer, int start, int bufferStart, int bufferEnd) { + int total = 0; + if (stringMatchers != null) { + int curStart = start; + for (StringMatcher stringMatcher : stringMatchers) { + if (stringMatcher != null) { + int len = stringMatcher.isMatch(buffer, curStart, bufferStart, bufferEnd); + if (len == 0) { + return 0; + } + total += len; + curStart += len; + } + } + } + return total; + } + + @Override + public int isMatch(CharSequence buffer, int start, int bufferStart, int bufferEnd) { + int total = 0; + if (stringMatchers != null) { + int curStart = start; + for (StringMatcher stringMatcher : stringMatchers) { + if (stringMatcher != null) { + int len = stringMatcher.isMatch(buffer, curStart, bufferStart, bufferEnd); + if (len == 0) { + return 0; + } + total += len; + curStart += len; + } + } + } + return total; + } + + @Override + public int size() { + int total = 0; + if (stringMatchers != null) { + for (StringMatcher stringMatcher : stringMatchers) { + if (stringMatcher != null) { + total += stringMatcher.size(); + } + } + } + return total; + } + } + + /** + * Matches out of a set of characters. + * <p> + * Thread=safe. + * </p> + */ + static final class CharArrayMatcher extends AbstractStringMatcher { + + /** The string to match, as a character array, implementation treats as immutable. */ + private final char[] chars; + + /** The string to match. */ + private final String string; + + /** + * Constructs a matcher from a String. + * + * @param str the string to match, must not be null + */ + CharArrayMatcher(final char... chars) { + super(); + this.string = String.valueOf(chars); + this.chars = chars.clone(); + } + + /** + * Constructs a matcher from a String. + * + * @param str the string to match, must not be null + */ + CharArrayMatcher(final String string) { + super(); + this.string = string; + this.chars = string.toCharArray(); + } + + /** + * Returns the number of matching characters, {@code 0} if there is no match. + * + * @param buffer the text content to match against, do not change + * @param start the starting position for the match, valid for buffer + * @param bufferStart unused + * @param bufferEnd the end index of the active buffer, valid for buffer + * @return The number of matching characters, zero for no match + */ + @Override + public int isMatch(final char[] buffer, final int start, final int bufferStart, final int bufferEnd) { + final int len = size(); + if (start + len > bufferEnd) { + return 0; + } + int j = start; + for (int i = 0; i < len; i++, j++) { + if (chars[i] != buffer[j]) { + return 0; + } + } + return len; + } + + /** + * Returns the number of matching characters, {@code 0} if there is no match. + * + * @param buffer the text content to match against, do not change + * @param start the starting position for the match, valid for buffer + * @param bufferStart unused + * @param bufferEnd the end index of the active buffer, valid for buffer + * @return The number of matching characters, zero for no match + */ + @Override + public int isMatch(final CharSequence buffer, final int start, final int bufferStart, final int bufferEnd) { + final int len = size(); + if (start + len > bufferEnd) { + return 0; + } + int j = start; + for (int i = 0; i < len; i++, j++) { + if (chars[i] != buffer.charAt(j)) { + return 0; + } + } + return len; + } + + /** + * Returns the size of the string to match given in the constructor. + * + * @since 1.9 + */ + @Override + public int size() { + return chars.length; + } + + @Override + public String toString() { + return super.toString() + "[\"" + string + "\"]"; + } + + } + + /** + * Matches a character. * <p> * Thread=safe. * </p> @@ -98,7 +272,7 @@ abstract class AbstractStringMatcher implements StringMatcher { } /** - * Class used to define a set of characters for matching purposes. + * Matches a set of characters. * <p> * Thread=safe. * </p> @@ -165,7 +339,7 @@ abstract class AbstractStringMatcher implements StringMatcher { } /** - * Class used to match no characters. + * Matches nothing. * <p> * Thread=safe. * </p> @@ -220,108 +394,7 @@ abstract class AbstractStringMatcher implements StringMatcher { } /** - * Class used to define a set of characters for matching purposes. - * <p> - * Thread=safe. - * </p> - */ - static final class StringMatcher extends AbstractStringMatcher { - - /** The string to match, as a character array, implementation treats as immutable. */ - private final char[] chars; - - /** The string to match. */ - private final String string; - - /** - * Constructs a matcher from a String. - * - * @param str the string to match, must not be null - */ - StringMatcher(final char... chars) { - super(); - this.string = String.valueOf(chars); - this.chars = chars.clone(); - } - - /** - * Constructs a matcher from a String. - * - * @param str the string to match, must not be null - */ - StringMatcher(final String string) { - super(); - this.string = string; - this.chars = string.toCharArray(); - } - - /** - * Returns the number of matching characters, {@code 0} if there is no match. - * - * @param buffer the text content to match against, do not change - * @param start the starting position for the match, valid for buffer - * @param bufferStart unused - * @param bufferEnd the end index of the active buffer, valid for buffer - * @return The number of matching characters, zero for no match - */ - @Override - public int isMatch(final char[] buffer, final int start, final int bufferStart, final int bufferEnd) { - final int len = size(); - if (start + len > bufferEnd) { - return 0; - } - int j = start; - for (int i = 0; i < len; i++, j++) { - if (chars[i] != buffer[j]) { - return 0; - } - } - return len; - } - - /** - * Returns the number of matching characters, {@code 0} if there is no match. - * - * @param buffer the text content to match against, do not change - * @param start the starting position for the match, valid for buffer - * @param bufferStart unused - * @param bufferEnd the end index of the active buffer, valid for buffer - * @return The number of matching characters, zero for no match - */ - @Override - public int isMatch(final CharSequence buffer, final int start, final int bufferStart, final int bufferEnd) { - final int len = size(); - if (start + len > bufferEnd) { - return 0; - } - int j = start; - for (int i = 0; i < len; i++, j++) { - if (chars[i] != buffer.charAt(j)) { - return 0; - } - } - return len; - } - - /** - * Returns the size of the string to match given in the constructor. - * - * @since 1.9 - */ - @Override - public int size() { - return chars.length; - } - - @Override - public String toString() { - return super.toString() + "[\"" + string + "\"]"; - } - - } - - /** - * Class used to match whitespace as per trim(). + * Matches whitespace as per trim(). * <p> * Thread=safe. * </p> diff --git a/src/main/java/org/apache/commons/text/matcher/StringMatcher.java b/src/main/java/org/apache/commons/text/matcher/StringMatcher.java index 61b7055..3dc14cf 100644 --- a/src/main/java/org/apache/commons/text/matcher/StringMatcher.java +++ b/src/main/java/org/apache/commons/text/matcher/StringMatcher.java @@ -25,6 +25,17 @@ package org.apache.commons.text.matcher; public interface StringMatcher { /** + * Returns a matcher that matches this matcher followed by the given matcher. + * + * @param stringMatcher the next matcher. + * @return a matcher that matches this matcher followed by the given matcher. + * @since 1.9 + */ + default StringMatcher andThen(StringMatcher stringMatcher) { + return StringMatcherFactory.INSTANCE.andMatcher(this, stringMatcher); + } + + /** * Returns the number of matching characters, zero for no match. * <p> * This method is called to check for a match. The parameter {@code pos} represents the current position to be @@ -53,8 +64,8 @@ public interface StringMatcher { * Returns the number of matching characters, {@code 0} if there is no match. * <p> * This method is called to check for a match against a source {@code buffer}. The parameter {@code start} - * represents the start position to be checked in the {@code buffer} (a character array which MUST not be - * changed). The implementation SHOULD guarantees that {@code start} is a valid index in {@code buffer}. + * represents the start position to be checked in the {@code buffer} (a character array which MUST not be changed). + * The implementation SHOULD guarantees that {@code start} is a valid index in {@code buffer}. * </p> * <p> * The character array may be larger than the active area to be matched. Only values in the buffer between the @@ -106,8 +117,8 @@ public interface StringMatcher { * Returns the number of matching characters, {@code 0} if there is no match. * <p> * This method is called to check for a match against a source {@code buffer}. The parameter {@code start} - * represents the start position to be checked in the {@code buffer} (a character array which MUST not be - * changed). The implementation SHOULD guarantees that {@code start} is a valid index in {@code buffer}. + * represents the start position to be checked in the {@code buffer} (a character array which MUST not be changed). + * The implementation SHOULD guarantees that {@code start} is a valid index in {@code buffer}. * </p> * <p> * The character array may be larger than the active area to be matched. Only values in the buffer between the diff --git a/src/main/java/org/apache/commons/text/matcher/StringMatcherFactory.java b/src/main/java/org/apache/commons/text/matcher/StringMatcherFactory.java index 8e66281..75222de 100644 --- a/src/main/java/org/apache/commons/text/matcher/StringMatcherFactory.java +++ b/src/main/java/org/apache/commons/text/matcher/StringMatcherFactory.java @@ -36,7 +36,7 @@ public final class StringMatcherFactory { * Matches the double quote character. */ private static final AbstractStringMatcher.CharMatcher DOUBLE_QUOTE_MATCHER = new AbstractStringMatcher.CharMatcher( - '"'); + '"'); /** * Defines the singleton for this class. @@ -52,13 +52,13 @@ public final class StringMatcherFactory { * Matches the single or double quote character. */ private static final AbstractStringMatcher.CharSetMatcher QUOTE_MATCHER = new AbstractStringMatcher.CharSetMatcher( - "'\"".toCharArray()); + "'\"".toCharArray()); /** * Matches the double quote character. */ private static final AbstractStringMatcher.CharMatcher SINGLE_QUOTE_MATCHER = new AbstractStringMatcher.CharMatcher( - '\''); + '\''); /** * Matches the space character. @@ -69,7 +69,7 @@ public final class StringMatcherFactory { * Matches the same characters as StringTokenizer, namely space, tab, newline, form feed. */ private static final AbstractStringMatcher.CharSetMatcher SPLIT_MATCHER = new AbstractStringMatcher.CharSetMatcher( - " \t\n\r\f".toCharArray()); + " \t\n\r\f".toCharArray()); /** * Matches the tab character. @@ -89,10 +89,20 @@ public final class StringMatcherFactory { } /** + * Creates a matcher that matches all of the given matchers in order. + * + * @param stringMatchers the matcher + * @return a matcher that matches all of the given matchers in order. + * @since 1.9 + */ + public StringMatcher andMatcher(StringMatcher... stringMatchers) { + return new AbstractStringMatcher.AndStringMatcher(stringMatchers); + } + + /** * Constructor that creates a matcher from a character. * - * @param ch - * the character to match, must not be null + * @param ch the character to match, must not be null * @return a new Matcher for the given char */ public StringMatcher charMatcher(final char ch) { @@ -102,8 +112,7 @@ public final class StringMatcherFactory { /** * Constructor that creates a matcher from a set of characters. * - * @param chars - * the characters to match, null or empty matches nothing + * @param chars the characters to match, null or empty matches nothing * @return a new matcher for the given char[] */ public StringMatcher charSetMatcher(final char... chars) { @@ -119,8 +128,7 @@ public final class StringMatcherFactory { /** * Creates a matcher from a string representing a set of characters. * - * @param chars - * the characters to match, null or empty matches nothing + * @param chars the characters to match, null or empty matches nothing * @return a new Matcher for the given characters */ public StringMatcher charSetMatcher(final String chars) { @@ -199,24 +207,22 @@ public final class StringMatcherFactory { /** * Creates a matcher from a string. * - * @param chars - * the string to match, null or empty matches nothing + * @param chars the string to match, null or empty matches nothing * @return a new Matcher for the given String * @since 1.9 */ public StringMatcher stringMatcher(final char... chars) { - return ArrayUtils.isEmpty(chars) ? NONE_MATCHER : new AbstractStringMatcher.StringMatcher(chars); + return ArrayUtils.isEmpty(chars) ? NONE_MATCHER : new AbstractStringMatcher.CharArrayMatcher(chars); } /** * Creates a matcher from a string. * - * @param str - * the string to match, null or empty matches nothing + * @param str the string to match, null or empty matches nothing * @return a new Matcher for the given String */ public StringMatcher stringMatcher(final String str) { - return StringUtils.isEmpty(str) ? NONE_MATCHER : new AbstractStringMatcher.StringMatcher(str); + return StringUtils.isEmpty(str) ? NONE_MATCHER : new AbstractStringMatcher.CharArrayMatcher(str); } /** diff --git a/src/test/java/org/apache/commons/text/matcher/StringMatcherFactoryTest.java b/src/test/java/org/apache/commons/text/matcher/StringMatcherFactoryTest.java index 2da69f2..58bb279 100644 --- a/src/test/java/org/apache/commons/text/matcher/StringMatcherFactoryTest.java +++ b/src/test/java/org/apache/commons/text/matcher/StringMatcherFactoryTest.java @@ -27,6 +27,12 @@ import org.junit.jupiter.api.Test; public class StringMatcherFactoryTest { @Test + public void test_andMatcher() { + assertNotNull(StringMatcherFactory.INSTANCE.andMatcher(StringMatcherFactory.INSTANCE.charMatcher('1'), + StringMatcherFactory.INSTANCE.stringMatcher("2"))); + } + + @Test public void test_charMatcher() { assertNotNull(StringMatcherFactory.INSTANCE.charMatcher('1')); } diff --git a/src/test/java/org/apache/commons/text/matcher/StringMatcherOnCharArrayTest.java b/src/test/java/org/apache/commons/text/matcher/StringMatcherOnCharArrayTest.java index 71a6f37..750acaa 100644 --- a/src/test/java/org/apache/commons/text/matcher/StringMatcherOnCharArrayTest.java +++ b/src/test/java/org/apache/commons/text/matcher/StringMatcherOnCharArrayTest.java @@ -26,30 +26,51 @@ import org.junit.jupiter.api.Test; */ public class StringMatcherOnCharArrayTest { - private static final char[] BUFFER1 = "0,1\t2 3\n\r\f\u0000'\"".toCharArray(); + private static final char[] INPUT1 = "0,1\t2 3\n\r\f\u0000'\"".toCharArray(); - private static final char[] BUFFER2 = "abcdef".toCharArray(); + private static final char[] INPUT2 = "abcdef".toCharArray(); - private static final int BUFFER2_LENGTH = BUFFER2.length; + private static final int INPUT2_LENGTH = INPUT2.length; + + @Test + public void testAndMatcher_char() { + final StringMatcher matcher = StringMatcherFactory.INSTANCE.andMatcher( + StringMatcherFactory.INSTANCE.charMatcher('c'), StringMatcherFactory.INSTANCE.stringMatcher("de")); + assertEquals(3, matcher.size()); + // + assertThat(matcher.isMatch(INPUT2, 0, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 1, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 2, 0, INPUT2_LENGTH)).isEqualTo(3); + assertThat(matcher.isMatch(INPUT2, 3, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 5, 0, INPUT2_LENGTH)).isEqualTo(0); + // + assertThat(matcher.isMatch(INPUT2, 0)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 1)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 2)).isEqualTo(3); + assertThat(matcher.isMatch(INPUT2, 3)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 5)).isEqualTo(0); + } @Test public void testCharMatcher_char() { final StringMatcher matcher = StringMatcherFactory.INSTANCE.charMatcher('c'); assertEquals(1, matcher.size()); // - assertThat(matcher.isMatch(BUFFER2, 0, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 1, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 2, 0, BUFFER2_LENGTH)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 3, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 4, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 5, 0, BUFFER2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 0, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 1, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 2, 0, INPUT2_LENGTH)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 3, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 5, 0, INPUT2_LENGTH)).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER2, 0)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 1)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 2)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 3)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 4)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 5)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 0)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 1)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 2)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 3)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 5)).isEqualTo(0); } @Test @@ -57,26 +78,26 @@ public class StringMatcherOnCharArrayTest { final StringMatcher matcher = StringMatcherFactory.INSTANCE.charSetMatcher("ace".toCharArray()); assertEquals(1, matcher.size()); // - assertThat(matcher.isMatch(BUFFER2, 0, 0, BUFFER2_LENGTH)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 1, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 2, 0, BUFFER2_LENGTH)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 3, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 4, 0, BUFFER2_LENGTH)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 5, 0, BUFFER2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 0, 0, INPUT2_LENGTH)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 1, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 2, 0, INPUT2_LENGTH)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 3, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4, 0, INPUT2_LENGTH)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 5, 0, INPUT2_LENGTH)).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER2, 0)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 1)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 2)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 3)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 4)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 5)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 0)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 1)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 2)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 3)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 5)).isEqualTo(0); // assertThat(StringMatcherFactory.INSTANCE.charSetMatcher()) - .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); + .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); assertThat(StringMatcherFactory.INSTANCE.charSetMatcher((char[]) null)) - .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); + .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); assertThat(StringMatcherFactory.INSTANCE - .charSetMatcher("a".toCharArray()) instanceof AbstractStringMatcher.CharMatcher).isTrue(); + .charSetMatcher("a".toCharArray()) instanceof AbstractStringMatcher.CharMatcher).isTrue(); } @Test @@ -84,26 +105,26 @@ public class StringMatcherOnCharArrayTest { final StringMatcher matcher = StringMatcherFactory.INSTANCE.charSetMatcher("ace"); assertEquals(1, matcher.size()); // - assertThat(matcher.isMatch(BUFFER2, 0, 0, BUFFER2_LENGTH)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 1, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 2, 0, BUFFER2_LENGTH)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 3, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 4, 0, BUFFER2_LENGTH)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 5, 0, BUFFER2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 0, 0, INPUT2_LENGTH)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 1, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 2, 0, INPUT2_LENGTH)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 3, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4, 0, INPUT2_LENGTH)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 5, 0, INPUT2_LENGTH)).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER2, 0)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 1)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 2)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 3)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 4)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 5)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 0)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 1)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 2)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 3)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 5)).isEqualTo(0); // assertThat(StringMatcherFactory.INSTANCE.charSetMatcher("")) - .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); + .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); assertThat(StringMatcherFactory.INSTANCE.charSetMatcher((String) null)) - .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); + .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); assertThat(StringMatcherFactory.INSTANCE.charSetMatcher("a") instanceof AbstractStringMatcher.CharMatcher) - .isTrue(); + .isTrue(); } @Test @@ -112,13 +133,13 @@ public class StringMatcherOnCharArrayTest { assertEquals(1, matcher.size()); assertThat(StringMatcherFactory.INSTANCE.commaMatcher()).isSameAs(matcher); // - assertThat(matcher.isMatch(BUFFER1, 0, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 1, 0, BUFFER1.length)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 2, 0, BUFFER1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 0, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 1, 0, INPUT1.length)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 2, 0, INPUT1.length)).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER1, 0)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 1)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 2)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 0)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 1)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 2)).isEqualTo(0); } @Test @@ -127,11 +148,11 @@ public class StringMatcherOnCharArrayTest { assertEquals(1, matcher.size()); assertThat(StringMatcherFactory.INSTANCE.doubleQuoteMatcher()).isSameAs(matcher); // - assertThat(matcher.isMatch(BUFFER1, 11, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 12, 0, BUFFER1.length)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 11, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 12, 0, INPUT1.length)).isEqualTo(1); // - assertThat(matcher.isMatch(BUFFER1, 11)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 12)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 11)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 12)).isEqualTo(1); } @Test @@ -141,9 +162,9 @@ public class StringMatcherOnCharArrayTest { // the concern of StringMatcher, and are not bugs final StringMatcher matcher = StringMatcherFactory.INSTANCE.stringMatcher("bc"); assertEquals(2, matcher.size()); - assertThat(matcher.isMatch(BUFFER2, 1, 1, BUFFER2_LENGTH)).isEqualTo(2); - assertThat(matcher.isMatch(BUFFER2, 1, 0, 3)).isEqualTo(2); - assertThat(matcher.isMatch(BUFFER2, 1, 0, 2)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 1, 1, INPUT2_LENGTH)).isEqualTo(2); + assertThat(matcher.isMatch(INPUT2, 1, 0, 3)).isEqualTo(2); + assertThat(matcher.isMatch(INPUT2, 1, 0, 2)).isEqualTo(0); } @Test @@ -152,33 +173,33 @@ public class StringMatcherOnCharArrayTest { assertEquals(0, matcher.size()); assertThat(StringMatcherFactory.INSTANCE.noneMatcher()).isSameAs(matcher); // - assertThat(matcher.isMatch(BUFFER1, 0, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 1, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 2, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 3, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 4, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 5, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 6, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 7, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 8, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 9, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 10, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 11, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 12, 0, BUFFER1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 0, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 1, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 2, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 3, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 4, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 5, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 6, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 7, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 8, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 9, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 10, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 11, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 12, 0, INPUT1.length)).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER1, 0)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 1)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 2)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 3)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 4)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 5)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 6)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 7)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 8)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 9)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 10)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 11)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 12)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 0)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 1)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 2)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 3)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 4)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 5)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 6)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 7)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 8)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 9)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 10)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 11)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 12)).isEqualTo(0); } @Test @@ -187,13 +208,13 @@ public class StringMatcherOnCharArrayTest { assertEquals(1, matcher.size()); assertThat(StringMatcherFactory.INSTANCE.quoteMatcher()).isSameAs(matcher); // - assertThat(matcher.isMatch(BUFFER1, 10, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 11, 0, BUFFER1.length)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 12, 0, BUFFER1.length)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 10, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 11, 0, INPUT1.length)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 12, 0, INPUT1.length)).isEqualTo(1); // - assertThat(matcher.isMatch(BUFFER1, 10)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 11)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 12)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 10)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 11)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 12)).isEqualTo(1); } @Test @@ -202,13 +223,13 @@ public class StringMatcherOnCharArrayTest { assertEquals(1, matcher.size()); assertThat(StringMatcherFactory.INSTANCE.singleQuoteMatcher()).isSameAs(matcher); // - assertThat(matcher.isMatch(BUFFER1, 10, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 11, 0, BUFFER1.length)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 12, 0, BUFFER1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 10, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 11, 0, INPUT1.length)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 12, 0, INPUT1.length)).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER1, 10)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 11)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 12)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 10)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 11)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 12)).isEqualTo(0); } @Test @@ -217,13 +238,13 @@ public class StringMatcherOnCharArrayTest { assertEquals(1, matcher.size()); assertThat(StringMatcherFactory.INSTANCE.spaceMatcher()).isSameAs(matcher); // - assertThat(matcher.isMatch(BUFFER1, 4, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 5, 0, BUFFER1.length)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 6, 0, BUFFER1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 4, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 5, 0, INPUT1.length)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 6, 0, INPUT1.length)).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER1, 4)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 5)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 6)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 4)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 5)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 6)).isEqualTo(0); } @Test @@ -232,48 +253,48 @@ public class StringMatcherOnCharArrayTest { assertEquals(1, matcher.size()); assertThat(StringMatcherFactory.INSTANCE.splitMatcher()).isSameAs(matcher); // - assertThat(matcher.isMatch(BUFFER1, 2, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 3, 0, BUFFER1.length)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 4, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 5, 0, BUFFER1.length)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 6, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 7, 0, BUFFER1.length)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 8, 0, BUFFER1.length)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 9, 0, BUFFER1.length)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 10, 0, BUFFER1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 2, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 3, 0, INPUT1.length)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 4, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 5, 0, INPUT1.length)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 6, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 7, 0, INPUT1.length)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 8, 0, INPUT1.length)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 9, 0, INPUT1.length)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 10, 0, INPUT1.length)).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER1, 2)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 3)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 4)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 5)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 6)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 7)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 8)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 9)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 10)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 2)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 3)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 4)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 5)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 6)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 7)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 8)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 9)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 10)).isEqualTo(0); } private void testStringMatcher_String(final StringMatcher matcher) { assertEquals(2, matcher.size()); // - assertThat(matcher.isMatch(BUFFER2, 0, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 1, 0, BUFFER2_LENGTH)).isEqualTo(2); - assertThat(matcher.isMatch(BUFFER2, 2, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 3, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 4, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 5, 0, BUFFER2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 0, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 1, 0, INPUT2_LENGTH)).isEqualTo(2); + assertThat(matcher.isMatch(INPUT2, 2, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 3, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 5, 0, INPUT2_LENGTH)).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER2, 0)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 1)).isEqualTo(2); - assertThat(matcher.isMatch(BUFFER2, 2)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 3)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 4)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 5)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 0)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 1)).isEqualTo(2); + assertThat(matcher.isMatch(INPUT2, 2)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 3)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 5)).isEqualTo(0); // assertThat(StringMatcherFactory.INSTANCE.stringMatcher("")) - .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); + .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); assertThat(StringMatcherFactory.INSTANCE.stringMatcher((String) null)) - .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); + .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); } @Test @@ -294,13 +315,13 @@ public class StringMatcherOnCharArrayTest { assertEquals(1, matcher.size()); assertThat(StringMatcherFactory.INSTANCE.tabMatcher()).isSameAs(matcher); // - assertThat(matcher.isMatch(BUFFER1, 2, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 3, 0, BUFFER1.length)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 4, 0, BUFFER1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 2, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 3, 0, INPUT1.length)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 4, 0, INPUT1.length)).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER1, 2)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 3)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 4)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 2)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 3)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 4)).isEqualTo(0); } @Test @@ -309,25 +330,25 @@ public class StringMatcherOnCharArrayTest { assertEquals(1, matcher.size()); assertThat(StringMatcherFactory.INSTANCE.trimMatcher()).isSameAs(matcher); // - assertThat(matcher.isMatch(BUFFER1, 2, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 3, 0, BUFFER1.length)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 4, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 5, 0, BUFFER1.length)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 6, 0, BUFFER1.length)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 7, 0, BUFFER1.length)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 8, 0, BUFFER1.length)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 9, 0, BUFFER1.length)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 10, 0, BUFFER1.length)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 2, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 3, 0, INPUT1.length)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 4, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 5, 0, INPUT1.length)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 6, 0, INPUT1.length)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 7, 0, INPUT1.length)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 8, 0, INPUT1.length)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 9, 0, INPUT1.length)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 10, 0, INPUT1.length)).isEqualTo(1); // - assertThat(matcher.isMatch(BUFFER1, 2)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 3)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 4)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 5)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 6)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 7)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 8)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 9)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 10)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 2)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 3)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 4)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 5)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 6)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 7)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 8)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 9)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 10)).isEqualTo(1); } } diff --git a/src/test/java/org/apache/commons/text/matcher/StringMatcherOnCharSequenceStringTest.java b/src/test/java/org/apache/commons/text/matcher/StringMatcherOnCharSequenceStringTest.java index 31b350f..de89159 100644 --- a/src/test/java/org/apache/commons/text/matcher/StringMatcherOnCharSequenceStringTest.java +++ b/src/test/java/org/apache/commons/text/matcher/StringMatcherOnCharSequenceStringTest.java @@ -26,30 +26,51 @@ import org.junit.jupiter.api.Test; */ public class StringMatcherOnCharSequenceStringTest { - private static final String BUFFER1 = "0,1\t2 3\n\r\f\u0000'\""; + private static final String INPUT1 = "0,1\t2 3\n\r\f\u0000'\""; - private static final String BUFFER2 = "abcdef"; + private static final String INPUT2 = "abcdef"; - private static final int BUFFER2_LENGTH = BUFFER2.length(); + private static final int INPUT2_LENGTH = INPUT2.length(); + + @Test + public void testAndMatcher_char() { + final StringMatcher matcher = StringMatcherFactory.INSTANCE.andMatcher( + StringMatcherFactory.INSTANCE.charMatcher('c'), StringMatcherFactory.INSTANCE.stringMatcher("de")); + assertEquals(3, matcher.size()); + // + assertThat(matcher.isMatch(INPUT2, 0, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 1, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 2, 0, INPUT2_LENGTH)).isEqualTo(3); + assertThat(matcher.isMatch(INPUT2, 3, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 5, 0, INPUT2_LENGTH)).isEqualTo(0); + // + assertThat(matcher.isMatch(INPUT2, 0)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 1)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 2)).isEqualTo(3); + assertThat(matcher.isMatch(INPUT2, 3)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 5)).isEqualTo(0); + } @Test public void testCharMatcher_char() { final StringMatcher matcher = StringMatcherFactory.INSTANCE.charMatcher('c'); assertEquals(1, matcher.size()); // - assertThat(matcher.isMatch(BUFFER2, 0, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 1, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 2, 0, BUFFER2_LENGTH)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 3, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 4, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 5, 0, BUFFER2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 0, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 1, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 2, 0, INPUT2_LENGTH)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 3, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 5, 0, INPUT2_LENGTH)).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER2, 0)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 1)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 2)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 3)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 4)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 5)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 0)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 1)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 2)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 3)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 5)).isEqualTo(0); } @Test @@ -57,26 +78,26 @@ public class StringMatcherOnCharSequenceStringTest { final StringMatcher matcher = StringMatcherFactory.INSTANCE.charSetMatcher("ace".toCharArray()); assertEquals(1, matcher.size()); // - assertThat(matcher.isMatch(BUFFER2, 0, 0, BUFFER2_LENGTH)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 1, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 2, 0, BUFFER2_LENGTH)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 3, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 4, 0, BUFFER2_LENGTH)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 5, 0, BUFFER2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 0, 0, INPUT2_LENGTH)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 1, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 2, 0, INPUT2_LENGTH)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 3, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4, 0, INPUT2_LENGTH)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 5, 0, INPUT2_LENGTH)).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER2, 0)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 1)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 2)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 3)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 4)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 5)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 0)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 1)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 2)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 3)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 5)).isEqualTo(0); // assertThat(StringMatcherFactory.INSTANCE.charSetMatcher()) - .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); + .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); assertThat(StringMatcherFactory.INSTANCE.charSetMatcher((char[]) null)) - .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); + .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); assertThat(StringMatcherFactory.INSTANCE - .charSetMatcher("a".toCharArray()) instanceof AbstractStringMatcher.CharMatcher).isTrue(); + .charSetMatcher("a".toCharArray()) instanceof AbstractStringMatcher.CharMatcher).isTrue(); } @Test @@ -84,26 +105,26 @@ public class StringMatcherOnCharSequenceStringTest { final StringMatcher matcher = StringMatcherFactory.INSTANCE.charSetMatcher("ace"); assertEquals(1, matcher.size()); // - assertThat(matcher.isMatch(BUFFER2, 0, 0, BUFFER2_LENGTH)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 1, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 2, 0, BUFFER2_LENGTH)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 3, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 4, 0, BUFFER2_LENGTH)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 5, 0, BUFFER2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 0, 0, INPUT2_LENGTH)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 1, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 2, 0, INPUT2_LENGTH)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 3, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4, 0, INPUT2_LENGTH)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 5, 0, INPUT2_LENGTH)).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER2, 0)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 1)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 2)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 3)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 4)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER2, 5)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 0)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 1)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 2)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 3)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT2, 5)).isEqualTo(0); // assertThat(StringMatcherFactory.INSTANCE.charSetMatcher("")) - .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); + .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); assertThat(StringMatcherFactory.INSTANCE.charSetMatcher((String) null)) - .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); + .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); assertThat(StringMatcherFactory.INSTANCE.charSetMatcher("a") instanceof AbstractStringMatcher.CharMatcher) - .isTrue(); + .isTrue(); } @Test @@ -112,13 +133,13 @@ public class StringMatcherOnCharSequenceStringTest { assertEquals(1, matcher.size()); assertThat(StringMatcherFactory.INSTANCE.commaMatcher()).isSameAs(matcher); // - assertThat(matcher.isMatch(BUFFER1, 0, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 1, 0, BUFFER1.length())).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 2, 0, BUFFER1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 0, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 1, 0, INPUT1.length())).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 2, 0, INPUT1.length())).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER1, 0)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 1)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 2)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 0)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 1)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 2)).isEqualTo(0); } @Test @@ -127,11 +148,11 @@ public class StringMatcherOnCharSequenceStringTest { assertEquals(1, matcher.size()); assertThat(StringMatcherFactory.INSTANCE.doubleQuoteMatcher()).isSameAs(matcher); // - assertThat(matcher.isMatch(BUFFER1, 11, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 12, 0, BUFFER1.length())).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 11, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 12, 0, INPUT1.length())).isEqualTo(1); // - assertThat(matcher.isMatch(BUFFER1, 11)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 12)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 11)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 12)).isEqualTo(1); } @Test @@ -141,9 +162,9 @@ public class StringMatcherOnCharSequenceStringTest { // the concern of StringMatcher, and are not bugs final StringMatcher matcher = StringMatcherFactory.INSTANCE.stringMatcher("bc"); assertEquals(2, matcher.size()); - assertThat(matcher.isMatch(BUFFER2, 1, 1, BUFFER2_LENGTH)).isEqualTo(2); - assertThat(matcher.isMatch(BUFFER2, 1, 0, 3)).isEqualTo(2); - assertThat(matcher.isMatch(BUFFER2, 1, 0, 2)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 1, 1, INPUT2_LENGTH)).isEqualTo(2); + assertThat(matcher.isMatch(INPUT2, 1, 0, 3)).isEqualTo(2); + assertThat(matcher.isMatch(INPUT2, 1, 0, 2)).isEqualTo(0); } @Test @@ -152,33 +173,33 @@ public class StringMatcherOnCharSequenceStringTest { assertEquals(0, matcher.size()); assertThat(StringMatcherFactory.INSTANCE.noneMatcher()).isSameAs(matcher); // - assertThat(matcher.isMatch(BUFFER1, 0, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 1, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 2, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 3, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 4, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 5, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 6, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 7, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 8, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 9, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 10, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 11, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 12, 0, BUFFER1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 0, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 1, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 2, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 3, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 4, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 5, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 6, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 7, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 8, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 9, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 10, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 11, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 12, 0, INPUT1.length())).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER1, 0)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 1)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 2)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 3)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 4)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 5)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 6)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 7)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 8)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 9)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 10)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 11)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 12)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 0)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 1)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 2)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 3)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 4)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 5)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 6)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 7)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 8)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 9)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 10)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 11)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 12)).isEqualTo(0); } @Test @@ -187,13 +208,13 @@ public class StringMatcherOnCharSequenceStringTest { assertEquals(1, matcher.size()); assertThat(StringMatcherFactory.INSTANCE.quoteMatcher()).isSameAs(matcher); // - assertThat(matcher.isMatch(BUFFER1, 10, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 11, 0, BUFFER1.length())).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 12, 0, BUFFER1.length())).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 10, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 11, 0, INPUT1.length())).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 12, 0, INPUT1.length())).isEqualTo(1); // - assertThat(matcher.isMatch(BUFFER1, 10)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 11)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 12)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 10)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 11)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 12)).isEqualTo(1); } @Test @@ -202,13 +223,13 @@ public class StringMatcherOnCharSequenceStringTest { assertEquals(1, matcher.size()); assertThat(StringMatcherFactory.INSTANCE.singleQuoteMatcher()).isSameAs(matcher); // - assertThat(matcher.isMatch(BUFFER1, 10, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 11, 0, BUFFER1.length())).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 12, 0, BUFFER1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 10, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 11, 0, INPUT1.length())).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 12, 0, INPUT1.length())).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER1, 10)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 11)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 12)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 10)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 11)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 12)).isEqualTo(0); } @Test @@ -217,13 +238,13 @@ public class StringMatcherOnCharSequenceStringTest { assertEquals(1, matcher.size()); assertThat(StringMatcherFactory.INSTANCE.spaceMatcher()).isSameAs(matcher); // - assertThat(matcher.isMatch(BUFFER1, 4, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 5, 0, BUFFER1.length())).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 6, 0, BUFFER1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 4, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 5, 0, INPUT1.length())).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 6, 0, INPUT1.length())).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER1, 4)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 5)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 6)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 4)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 5)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 6)).isEqualTo(0); } @Test @@ -232,25 +253,25 @@ public class StringMatcherOnCharSequenceStringTest { assertEquals(1, matcher.size()); assertThat(StringMatcherFactory.INSTANCE.splitMatcher()).isSameAs(matcher); // - assertThat(matcher.isMatch(BUFFER1, 2, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 3, 0, BUFFER1.length())).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 4, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 5, 0, BUFFER1.length())).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 6, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 7, 0, BUFFER1.length())).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 8, 0, BUFFER1.length())).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 9, 0, BUFFER1.length())).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 10, 0, BUFFER1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 2, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 3, 0, INPUT1.length())).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 4, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 5, 0, INPUT1.length())).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 6, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 7, 0, INPUT1.length())).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 8, 0, INPUT1.length())).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 9, 0, INPUT1.length())).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 10, 0, INPUT1.length())).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER1, 2)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 3)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 4)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 5)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 6)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 7)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 8)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 9)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 10)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 2)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 3)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 4)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 5)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 6)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 7)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 8)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 9)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 10)).isEqualTo(0); } @Test @@ -258,24 +279,24 @@ public class StringMatcherOnCharSequenceStringTest { final StringMatcher matcher = StringMatcherFactory.INSTANCE.stringMatcher("bc"); assertEquals(2, matcher.size()); // - assertThat(matcher.isMatch(BUFFER2, 0, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 1, 0, BUFFER2_LENGTH)).isEqualTo(2); - assertThat(matcher.isMatch(BUFFER2, 2, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 3, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 4, 0, BUFFER2_LENGTH)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 5, 0, BUFFER2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 0, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 1, 0, INPUT2_LENGTH)).isEqualTo(2); + assertThat(matcher.isMatch(INPUT2, 2, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 3, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4, 0, INPUT2_LENGTH)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 5, 0, INPUT2_LENGTH)).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER2, 0)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 1)).isEqualTo(2); - assertThat(matcher.isMatch(BUFFER2, 2)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 3)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 4)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER2, 5)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 0)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 1)).isEqualTo(2); + assertThat(matcher.isMatch(INPUT2, 2)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 3)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 4)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT2, 5)).isEqualTo(0); // assertThat(StringMatcherFactory.INSTANCE.stringMatcher("")) - .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); + .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); assertThat(StringMatcherFactory.INSTANCE.stringMatcher((String) null)) - .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); + .isSameAs(StringMatcherFactory.INSTANCE.noneMatcher()); } // ----------------------------------------------------------------------- @@ -285,13 +306,13 @@ public class StringMatcherOnCharSequenceStringTest { assertEquals(1, matcher.size()); assertThat(StringMatcherFactory.INSTANCE.tabMatcher()).isSameAs(matcher); // - assertThat(matcher.isMatch(BUFFER1, 2, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 3, 0, BUFFER1.length())).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 4, 0, BUFFER1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 2, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 3, 0, INPUT1.length())).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 4, 0, INPUT1.length())).isEqualTo(0); // - assertThat(matcher.isMatch(BUFFER1, 2)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 3)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 4)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 2)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 3)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 4)).isEqualTo(0); } @Test @@ -300,25 +321,25 @@ public class StringMatcherOnCharSequenceStringTest { assertEquals(1, matcher.size()); assertThat(StringMatcherFactory.INSTANCE.trimMatcher()).isSameAs(matcher); // - assertThat(matcher.isMatch(BUFFER1, 2, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 3, 0, BUFFER1.length())).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 4, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 5, 0, BUFFER1.length())).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 6, 0, BUFFER1.length())).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 7, 0, BUFFER1.length())).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 8, 0, BUFFER1.length())).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 9, 0, BUFFER1.length())).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 10, 0, BUFFER1.length())).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 2, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 3, 0, INPUT1.length())).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 4, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 5, 0, INPUT1.length())).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 6, 0, INPUT1.length())).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 7, 0, INPUT1.length())).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 8, 0, INPUT1.length())).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 9, 0, INPUT1.length())).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 10, 0, INPUT1.length())).isEqualTo(1); // - assertThat(matcher.isMatch(BUFFER1, 2)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 3)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 4)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 5)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 6)).isEqualTo(0); - assertThat(matcher.isMatch(BUFFER1, 7)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 8)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 9)).isEqualTo(1); - assertThat(matcher.isMatch(BUFFER1, 10)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 2)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 3)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 4)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 5)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 6)).isEqualTo(0); + assertThat(matcher.isMatch(INPUT1, 7)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 8)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 9)).isEqualTo(1); + assertThat(matcher.isMatch(INPUT1, 10)).isEqualTo(1); } } diff --git a/src/test/java/org/apache/commons/text/matcher/StringSubstitutorGetSetTest.java b/src/test/java/org/apache/commons/text/matcher/StringSubstitutorGetSetTest.java index 2009bdf..7be17e9 100644 --- a/src/test/java/org/apache/commons/text/matcher/StringSubstitutorGetSetTest.java +++ b/src/test/java/org/apache/commons/text/matcher/StringSubstitutorGetSetTest.java @@ -36,14 +36,14 @@ public class StringSubstitutorGetSetTest { @Test public void testGetSetPrefix() { final StringSubstitutor sub = new StringSubstitutor(); - assertTrue(sub.getVariablePrefixMatcher() instanceof AbstractStringMatcher.StringMatcher); + assertTrue(sub.getVariablePrefixMatcher() instanceof AbstractStringMatcher.CharArrayMatcher); sub.setVariablePrefix('<'); assertTrue(sub.getVariablePrefixMatcher() instanceof AbstractStringMatcher.CharMatcher); sub.setVariablePrefix("<<"); - assertTrue(sub.getVariablePrefixMatcher() instanceof AbstractStringMatcher.StringMatcher); + assertTrue(sub.getVariablePrefixMatcher() instanceof AbstractStringMatcher.CharArrayMatcher); assertThrows(IllegalArgumentException.class, () -> sub.setVariablePrefix((String) null)); - assertTrue(sub.getVariablePrefixMatcher() instanceof AbstractStringMatcher.StringMatcher); + assertTrue(sub.getVariablePrefixMatcher() instanceof AbstractStringMatcher.CharArrayMatcher); final StringMatcher matcher = StringMatcherFactory.INSTANCE.commaMatcher(); sub.setVariablePrefixMatcher(matcher); @@ -58,14 +58,14 @@ public class StringSubstitutorGetSetTest { @Test public void testGetSetSuffix() { final StringSubstitutor sub = new StringSubstitutor(); - assertTrue(sub.getVariableSuffixMatcher() instanceof AbstractStringMatcher.StringMatcher); + assertTrue(sub.getVariableSuffixMatcher() instanceof AbstractStringMatcher.CharArrayMatcher); sub.setVariableSuffix('<'); assertTrue(sub.getVariableSuffixMatcher() instanceof AbstractStringMatcher.CharMatcher); sub.setVariableSuffix("<<"); - assertTrue(sub.getVariableSuffixMatcher() instanceof AbstractStringMatcher.StringMatcher); + assertTrue(sub.getVariableSuffixMatcher() instanceof AbstractStringMatcher.CharArrayMatcher); assertThrows(IllegalArgumentException.class, () -> sub.setVariableSuffix((String) null)); - assertTrue(sub.getVariableSuffixMatcher() instanceof AbstractStringMatcher.StringMatcher); + assertTrue(sub.getVariableSuffixMatcher() instanceof AbstractStringMatcher.CharArrayMatcher); final StringMatcher matcher = StringMatcherFactory.INSTANCE.commaMatcher(); sub.setVariableSuffixMatcher(matcher); @@ -80,12 +80,12 @@ public class StringSubstitutorGetSetTest { @Test public void testGetSetValueDelimiter() { final StringSubstitutor sub = new StringSubstitutor(); - assertTrue(sub.getValueDelimiterMatcher() instanceof AbstractStringMatcher.StringMatcher); + assertTrue(sub.getValueDelimiterMatcher() instanceof AbstractStringMatcher.CharArrayMatcher); sub.setValueDelimiter(':'); assertTrue(sub.getValueDelimiterMatcher() instanceof AbstractStringMatcher.CharMatcher); sub.setValueDelimiter("||"); - assertTrue(sub.getValueDelimiterMatcher() instanceof AbstractStringMatcher.StringMatcher); + assertTrue(sub.getValueDelimiterMatcher() instanceof AbstractStringMatcher.CharArrayMatcher); sub.setValueDelimiter((String) null); assertNull(sub.getValueDelimiterMatcher());