Skip to content

Commit 288f950

Browse files
committed
Precompile patterns.
1 parent a107b4b commit 288f950

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

src/test/java/org/apache/commons/codec/language/bm/BeiderMorseEncoderTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import static org.junit.jupiter.api.Assertions.assertTrue;
2626

2727
import java.time.Duration;
28+
import java.util.regex.Pattern;
2829

2930
import org.apache.commons.codec.AbstractStringEncoderTest;
3031
import org.apache.commons.codec.EncoderException;
@@ -35,6 +36,9 @@
3536
* Tests BeiderMorseEncoder.
3637
*/
3738
class BeiderMorseEncoderTest extends AbstractStringEncoderTest<StringEncoder> {
39+
40+
private static final Pattern PIPE_PATTERN = Pattern.compile("\\|");
41+
3842
private static final char[] TEST_CHARS = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'o', 'u' };
3943

4044
private void assertNotEmpty(final BeiderMorseEncoder bmpm, final String value) throws EncoderException {
@@ -151,7 +155,7 @@ void testOOM() throws EncoderException {
151155
final String phonemes = encoder.encode(phrase);
152156
assertFalse(phonemes.isEmpty());
153157

154-
final String[] phonemeArr = phonemes.split("\\|");
158+
final String[] phonemeArr = PIPE_PATTERN.split(phonemes);
155159
assertTrue(phonemeArr.length <= 10);
156160
}
157161

src/test/java/org/apache/commons/codec/language/bm/PhoneticEngineRegressionTest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.util.HashSet;
2424
import java.util.Map;
2525
import java.util.TreeMap;
26+
import java.util.regex.Pattern;
2627

2728
import org.junit.jupiter.api.Test;
2829

@@ -31,6 +32,8 @@
3132
*/
3233
class PhoneticEngineRegressionTest {
3334

35+
private static final Pattern COMMA_PATTERN = Pattern.compile(",");
36+
3437
/**
3538
* This code is similar in style to code found in Solr:
3639
* solr/core/src/java/org/apache/solr/analysis/BeiderMorseFilterFactory.java
@@ -57,7 +60,7 @@ private static String encode(final Map<String, String> args, final boolean conca
5760
if (languageSetArg == null || languageSetArg.equals("auto")) {
5861
languageSet = null;
5962
} else {
60-
languageSet = Languages.LanguageSet.from(new HashSet<>(Arrays.asList(languageSetArg.split(","))));
63+
languageSet = Languages.LanguageSet.from(new HashSet<>(Arrays.asList(COMMA_PATTERN.split(languageSetArg))));
6164
}
6265

6366
/*

src/test/java/org/apache/commons/codec/language/bm/PhoneticEngineTest.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import static org.junit.jupiter.api.Assertions.assertEquals;
2121
import static org.junit.jupiter.api.Assertions.assertTrue;
2222

23+
import java.util.regex.Pattern;
2324
import java.util.stream.Stream;
2425

2526
import org.junit.jupiter.params.ParameterizedTest;
@@ -33,6 +34,9 @@ class PhoneticEngineTest {
3334

3435
private static final Integer TEN = Integer.valueOf(10);
3536

37+
private static final Pattern PIPE_PATTERN = Pattern.compile("\\|");
38+
private static final Pattern MINUS_PATTERN = Pattern.compile("-");
39+
3640
public static Stream<Arguments> data() {
3741
// @formatter:off
3842
return Stream.of(
@@ -73,12 +77,12 @@ void testEncode(final String name, final String phoneticExpected, final NameType
7377
assertEquals(phoneticExpected, phoneticActual, "phoneme incorrect");
7478

7579
if (concat) {
76-
final String[] split = phoneticActual.split("\\|");
80+
final String[] split = PIPE_PATTERN.split(phoneticActual);
7781
assertTrue(split.length <= maxPhonemes);
7882
} else {
79-
final String[] words = phoneticActual.split("-");
83+
final String[] words = MINUS_PATTERN.split(phoneticActual);
8084
for (final String word : words) {
81-
final String[] split = word.split("\\|");
85+
final String[] split = PIPE_PATTERN.split(word);
8286
assertTrue(split.length <= maxPhonemes);
8387
}
8488
}

0 commit comments

Comments
 (0)