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 2b1f1a2 Add isMatch(CharSequence, int)
2b1f1a2 is described below
commit 2b1f1a2c2de194d127deb1ce0ce1047f22316d55
Author: Gary Gregory <[email protected]>
AuthorDate: Fri Jun 26 15:53:27 2020 -0400
Add isMatch(CharSequence, int)
Add isMatch(CharSequence, int, int, int)
---
src/changes/changes.xml | 2 +
.../text/matcher/AbstractStringMatcher.java | 102 +++++++++++++-
.../apache/commons/text/matcher/StringMatcher.java | 81 +++++++++--
.../apache/commons/text/StringTokenizerTest.java | 6 +
...Test.java => StringMatcherOnCharArrayTest.java} | 2 +-
... => StringMatcherOnCharSequenceStringTest.java} | 152 ++++++++++-----------
6 files changed, 253 insertions(+), 92 deletions(-)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index b11df51..434c7f6 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -53,6 +53,8 @@ The <action> type attribute can be add,update,fix,remove.
<action type="add" dev="ggregory" due-to="Gary
Gregory">Add StringMatcher.size().</action>
<action type="add" dev="ggregory" due-to="Gary
Gregory">Refactor TextStringBuilder.readFrom(Readable), extracting
readFrom(CharBuffer) and readFrom(Reader).</action>
<action issue="TEXT-177" type="update" dev="ggregory" due-to="Gary
Gregory">Update from Apache Commons Lang 3.9 to 3.10.</action>
+ <action type="add" dev="ggregory">Add
org.apache.commons.text.matcher.StringMatcher.isMatch(CharSequence,
int).</action>
+ <action type="add" dev="ggregory">Add
org.apache.commons.text.matcher.StringMatcher.isMatch(CharSequence, int, int,
int).</action>
<action type="update" dev="ggregory" due-to="Gary
Gregory">[test] junit-jupiter 5.5.1 -> 5.5.2.</action>
<action type="update" dev="ggregory" due-to="Gary
Gregory">[test] org.assertj:assertj-core 3.13.2 -> 3.16.1.</action>
<action type="update" dev="ggregory" due-to="Gary
Gregory">[build] com.puppycrawl.tools:checkstyle 8.23 -> 8.27.</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 043a0d8..a9e62a4 100644
--- a/src/main/java/org/apache/commons/text/matcher/AbstractStringMatcher.java
+++ b/src/main/java/org/apache/commons/text/matcher/AbstractStringMatcher.java
@@ -63,6 +63,20 @@ abstract class AbstractStringMatcher implements
StringMatcher {
}
/**
+ * Returns {@code 1} if there is a match, or {@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 unused
+ * @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) {
+ return ch == buffer.charAt(start) ? 1 : 0;
+ }
+
+ /**
* Returns 1.
*
* @since 1.9
@@ -107,6 +121,20 @@ abstract class AbstractStringMatcher implements
StringMatcher {
}
/**
+ * Returns {@code 1} if there is a match, or {@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 unused
+ * @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) {
+ return Arrays.binarySearch(chars, buffer.charAt(start)) >= 0 ? 1 :
0;
+ }
+
+ /**
* Returns 1.
*
* @since 1.9
@@ -145,6 +173,20 @@ abstract class AbstractStringMatcher implements
StringMatcher {
}
/**
+ * Always returns {@code 0}.
+ *
+ * @param buffer unused
+ * @param start unused
+ * @param bufferStart unused
+ * @param bufferEnd unused
+ * @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) {
+ return 0;
+ }
+
+ /**
* Returns 0.
*
* @since 1.9
@@ -198,9 +240,28 @@ abstract class AbstractStringMatcher implements
StringMatcher {
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 String toString() {
- return super.toString() + ' ' + Arrays.toString(chars);
+ 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;
}
/**
@@ -213,6 +274,11 @@ abstract class AbstractStringMatcher implements
StringMatcher {
return chars.length;
}
+ @Override
+ public String toString() {
+ return super.toString() + ' ' + Arrays.toString(chars);
+ }
+
}
/**
@@ -247,6 +313,20 @@ abstract class AbstractStringMatcher implements
StringMatcher {
}
/**
+ * Returns {@code 1} if there is a match, or {@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 unused
+ * @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) {
+ return buffer.charAt(start) <= SPACE_INT ? 1 : 0;
+ }
+
+ /**
* Returns 1.
*
* @since 1.9
@@ -258,6 +338,24 @@ abstract class AbstractStringMatcher implements
StringMatcher {
}
/**
+ * Green implementation of toCharArray. TODO Reuse Apache Commons Lang
3.11 when released.
+ *
+ * @param cs the {@code CharSequence} to be processed
+ * @return the resulting char array
+ */
+ static char[] toCharArray(final CharSequence cs) {
+ if (cs instanceof String) {
+ return ((String) cs).toCharArray();
+ }
+ final int sz = cs.length();
+ final char[] array = new char[cs.length()];
+ for (int i = 0; i < sz; i++) {
+ array[i] = cs.charAt(i);
+ }
+ return array;
+ }
+
+ /**
* Constructor.
*/
protected AbstractStringMatcher() {
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 9d14ffd..5cecf0f 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,56 @@ package org.apache.commons.text.matcher;
public interface 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
+ * checked in the string {@code buffer} (a character array which must not
be changed). The API guarantees that
+ * {@code pos} is a valid index for {@code buffer}.
+ * </p>
+ * <p>
+ * The matching code may check one character or many. It may check
characters preceding {@code pos} as well as those
+ * after.
+ * </p>
+ * <p>
+ * It must return zero for no match, or a positive number if a match was
found. The number indicates the number of
+ * characters that matched.
+ * </p>
+ *
+ * @param buffer the text content to match against, do not change
+ * @param pos the starting position for the match, valid for buffer
+ * @return The number of matching characters, zero for no match
+ * @since 1.9
+ */
+ default int isMatch(final char[] buffer, final int pos) {
+ return isMatch(buffer, pos, 0, buffer.length);
+ }
+
+ /**
+ * 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
+ * checked in the string {@code buffer} (a character array which must not
be changed). The API guarantees that
+ * {@code pos} is a valid index for {@code buffer}.
+ * </p>
+ * <p>
+ * The matching code may check one character or many. It may check
characters preceding {@code pos} as well as those
+ * after.
+ * </p>
+ * <p>
+ * It must return zero for no match, or a positive number if a match was
found. The number indicates the number of
+ * characters that matched.
+ * </p>
+ *
+ * @param buffer the text content to match against, do not change
+ * @param pos the starting position for the match, valid for buffer
+ * @return The number of matching characters, zero for no match
+ * @since 1.9
+ */
+ default int isMatch(final CharSequence buffer, final int pos) {
+ return isMatch(buffer, pos, 0, buffer.length());
+ }
+
+ /**
* 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}
@@ -53,30 +103,35 @@ public interface StringMatcher {
int isMatch(char[] buffer, int start, int bufferStart, int bufferEnd);
/**
- * Returns the number of matching characters, zero for no match.
+ * Returns the number of matching characters, {@code 0} if there is no
match.
* <p>
- * This method is called to check for a match. The parameter {@code pos}
represents the current position to be
- * checked in the string {@code buffer} (a character array which must not
be changed). The API guarantees that
- * {@code pos} is a valid index for {@code buffer}.
+ * 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 array {@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 matching code may check one character or many. It may check
characters preceding {@code pos} as well as those
- * after.
+ * The character array may be larger than the active area to be matched.
Only values in the buffer between the
+ * specified indices may be accessed, in other words: {@code bufferStart
<= start < bufferEnd}.
+ * </p>
+ * <p>
+ * The matching code may check one character or many. It may check
characters preceding {@code start} as well as
+ * those after, so long as no checks exceed the bounds specified.
* </p>
* <p>
* It must return zero for no match, or a positive number if a match was
found. The number indicates the number of
* characters that matched.
* </p>
*
- * @param buffer the text content to match against, do not change
- * @param pos the starting position for the match, valid for buffer
- * @return The number of matching characters, zero for no match
- * @since 1.9
+ * @param buffer the source text to search, do not change.
+ * @param start the starting position for the match, valid in {@code
buffer}.
+ * @param bufferStart the first active index in the buffer, valid in
{@code buffer}.
+ * @param bufferEnd the end index (exclusive) of the active buffer, valid
in {@code buffer}.
+ * @return The number of matching characters, zero if there is no match.
*/
- default int isMatch(final char[] buffer, final int pos) {
- return isMatch(buffer, pos, 0, buffer.length);
+ default int isMatch(final CharSequence buffer, final int start, final int
bufferStart, final int bufferEnd) {
+ return isMatch(AbstractStringMatcher.toCharArray(buffer), start,
bufferEnd, bufferEnd);
}
-
+
/**
* Returns the size of the matching string. Defaults to 0.
*
diff --git a/src/test/java/org/apache/commons/text/StringTokenizerTest.java
b/src/test/java/org/apache/commons/text/StringTokenizerTest.java
index b4ec07a..819ec89 100644
--- a/src/test/java/org/apache/commons/text/StringTokenizerTest.java
+++ b/src/test/java/org/apache/commons/text/StringTokenizerTest.java
@@ -673,6 +673,7 @@ public class StringTokenizerTest {
public void testConstructor_String_char() {
StringTokenizer tok = new StringTokenizer("a b", ' ');
assertEquals(1, tok.getDelimiterMatcher().isMatch(" ".toCharArray(),
0, 0, 1));
+ assertEquals(1, tok.getDelimiterMatcher().isMatch(" ", 0, 0, 1));
assertEquals("a", tok.next());
assertEquals("b", tok.next());
assertFalse(tok.hasNext());
@@ -689,7 +690,9 @@ public class StringTokenizerTest {
public void testConstructor_String_char_char() {
StringTokenizer tok = new StringTokenizer("a b", ' ', '"');
assertEquals(1, tok.getDelimiterMatcher().isMatch(" ".toCharArray(),
0, 0, 1));
+ assertEquals(1, tok.getDelimiterMatcher().isMatch(" ", 0, 0, 1));
assertEquals(1, tok.getQuoteMatcher().isMatch("\"".toCharArray(), 0,
0, 1));
+ assertEquals(1, tok.getQuoteMatcher().isMatch("\"", 0, 0, 1));
assertEquals("a", tok.next());
assertEquals("b", tok.next());
assertFalse(tok.hasNext());
@@ -721,6 +724,7 @@ public class StringTokenizerTest {
public void testConstructor_charArray_char() {
StringTokenizer tok = new StringTokenizer("a b".toCharArray(), ' ');
assertEquals(1, tok.getDelimiterMatcher().isMatch(" ".toCharArray(),
0, 0, 1));
+ assertEquals(1, tok.getDelimiterMatcher().isMatch(" ", 0, 0, 1));
assertEquals("a", tok.next());
assertEquals("b", tok.next());
assertFalse(tok.hasNext());
@@ -737,7 +741,9 @@ public class StringTokenizerTest {
public void testConstructor_charArray_char_char() {
StringTokenizer tok = new StringTokenizer("a b".toCharArray(), ' ',
'"');
assertEquals(1, tok.getDelimiterMatcher().isMatch(" ".toCharArray(),
0, 0, 1));
+ assertEquals(1, tok.getDelimiterMatcher().isMatch(" ", 0, 0, 1));
assertEquals(1, tok.getQuoteMatcher().isMatch("\"".toCharArray(), 0,
0, 1));
+ assertEquals(1, tok.getQuoteMatcher().isMatch("\"", 0, 0, 1));
assertEquals("a", tok.next());
assertEquals("b", tok.next());
assertFalse(tok.hasNext());
diff --git
a/src/test/java/org/apache/commons/text/matcher/StringMatcherTest.java
b/src/test/java/org/apache/commons/text/matcher/StringMatcherOnCharArrayTest.java
similarity index 99%
copy from src/test/java/org/apache/commons/text/matcher/StringMatcherTest.java
copy to
src/test/java/org/apache/commons/text/matcher/StringMatcherOnCharArrayTest.java
index c96aa75..0a441cb 100644
--- a/src/test/java/org/apache/commons/text/matcher/StringMatcherTest.java
+++
b/src/test/java/org/apache/commons/text/matcher/StringMatcherOnCharArrayTest.java
@@ -24,7 +24,7 @@ import org.junit.jupiter.api.Test;
/**
* Unit tests for {@link StringMatcher}.
*/
-public class StringMatcherTest {
+public class StringMatcherOnCharArrayTest {
private static final char[] BUFFER1 = "0,1\t2
3\n\r\f\u0000'\"".toCharArray();
diff --git
a/src/test/java/org/apache/commons/text/matcher/StringMatcherTest.java
b/src/test/java/org/apache/commons/text/matcher/StringMatcherOnCharSequenceStringTest.java
similarity index 87%
rename from src/test/java/org/apache/commons/text/matcher/StringMatcherTest.java
rename to
src/test/java/org/apache/commons/text/matcher/StringMatcherOnCharSequenceStringTest.java
index c96aa75..af1f995 100644
--- a/src/test/java/org/apache/commons/text/matcher/StringMatcherTest.java
+++
b/src/test/java/org/apache/commons/text/matcher/StringMatcherOnCharSequenceStringTest.java
@@ -24,22 +24,22 @@ import org.junit.jupiter.api.Test;
/**
* Unit tests for {@link StringMatcher}.
*/
-public class StringMatcherTest {
+public class StringMatcherOnCharSequenceStringTest {
- private static final char[] BUFFER1 = "0,1\t2
3\n\r\f\u0000'\"".toCharArray();
+ private static final String BUFFER1 = "0,1\t2 3\n\r\f\u0000'\"";
- private static final char[] BUFFER2 = "abcdef".toCharArray();
+ private static final String BUFFER2 = "abcdef";
@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(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(BUFFER2, 0)).isEqualTo(0);
assertThat(matcher.isMatch(BUFFER2, 1)).isEqualTo(0);
@@ -53,12 +53,12 @@ public class StringMatcherTest {
public void testCharSetMatcher_charArray() {
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(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(StringMatcherFactory.INSTANCE.charSetMatcher())
.isSameAs(StringMatcherFactory.INSTANCE.noneMatcher());
assertThat(StringMatcherFactory.INSTANCE.charSetMatcher((char[]) null))
@@ -71,12 +71,12 @@ public class StringMatcherTest {
public void testCharSetMatcher_String() {
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(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(StringMatcherFactory.INSTANCE.charSetMatcher(""))
.isSameAs(StringMatcherFactory.INSTANCE.noneMatcher());
assertThat(StringMatcherFactory.INSTANCE.charSetMatcher((String) null))
@@ -90,9 +90,9 @@ public class StringMatcherTest {
final StringMatcher matcher =
StringMatcherFactory.INSTANCE.commaMatcher();
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(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);
}
@Test
@@ -100,8 +100,8 @@ public class StringMatcherTest {
final StringMatcher matcher =
StringMatcherFactory.INSTANCE.doubleQuoteMatcher();
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(BUFFER1, 11, 0,
BUFFER1.length())).isEqualTo(0);
+ assertThat(matcher.isMatch(BUFFER1, 12, 0,
BUFFER1.length())).isEqualTo(1);
}
@Test
@@ -111,7 +111,7 @@ public class StringMatcherTest {
// 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, 1,
BUFFER2.length())).isEqualTo(2);
assertThat(matcher.isMatch(BUFFER2, 1, 0, 3)).isEqualTo(2);
assertThat(matcher.isMatch(BUFFER2, 1, 0, 2)).isEqualTo(0);
}
@@ -121,19 +121,19 @@ public class StringMatcherTest {
final StringMatcher matcher =
StringMatcherFactory.INSTANCE.noneMatcher();
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(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);
}
@Test
@@ -141,9 +141,9 @@ public class StringMatcherTest {
final StringMatcher matcher =
StringMatcherFactory.INSTANCE.quoteMatcher();
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(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);
}
@Test
@@ -151,9 +151,9 @@ public class StringMatcherTest {
final StringMatcher matcher =
StringMatcherFactory.INSTANCE.singleQuoteMatcher();
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(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);
}
@Test
@@ -161,9 +161,9 @@ public class StringMatcherTest {
final StringMatcher matcher =
StringMatcherFactory.INSTANCE.spaceMatcher();
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(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);
}
@Test
@@ -171,27 +171,27 @@ public class StringMatcherTest {
final StringMatcher matcher =
StringMatcherFactory.INSTANCE.splitMatcher();
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(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);
}
@Test
public void testStringMatcher_String() {
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(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(StringMatcherFactory.INSTANCE.stringMatcher(""))
.isSameAs(StringMatcherFactory.INSTANCE.noneMatcher());
assertThat(StringMatcherFactory.INSTANCE.stringMatcher((String) null))
@@ -204,9 +204,9 @@ public class StringMatcherTest {
final StringMatcher matcher =
StringMatcherFactory.INSTANCE.tabMatcher();
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(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);
}
@Test
@@ -214,15 +214,15 @@ public class StringMatcherTest {
final StringMatcher matcher =
StringMatcherFactory.INSTANCE.trimMatcher();
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(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);
}
}