|
24 | 24 | import static com.google.common.base.CharMatcher.isNot; |
25 | 25 | import static com.google.common.base.CharMatcher.noneOf; |
26 | 26 | import static com.google.common.base.CharMatcher.whitespace; |
| 27 | +import static com.google.common.truth.Truth.assertThat; |
27 | 28 |
|
28 | 29 | import com.google.common.annotations.GwtCompatible; |
29 | 30 | import com.google.common.annotations.GwtIncompatible; |
@@ -768,19 +769,46 @@ static char[] randomChars(Random rand, int size) { |
768 | 769 | } |
769 | 770 |
|
770 | 771 | public void testToString() { |
771 | | - assertToStringWorks("CharMatcher.none()", CharMatcher.anyOf("")); |
772 | | - assertToStringWorks("CharMatcher.is('\\u0031')", CharMatcher.anyOf("1")); |
773 | | - assertToStringWorks("CharMatcher.isNot('\\u0031')", CharMatcher.isNot('1')); |
774 | | - assertToStringWorks("CharMatcher.anyOf(\"\\u0031\\u0032\")", CharMatcher.anyOf("12")); |
775 | | - assertToStringWorks("CharMatcher.anyOf(\"\\u0031\\u0032\\u0033\")", CharMatcher.anyOf("321")); |
776 | | - assertToStringWorks("CharMatcher.inRange('\\u0031', '\\u0033')", CharMatcher.inRange('1', '3')); |
777 | | - } |
778 | | - |
779 | | - private static void assertToStringWorks(String expected, CharMatcher matcher) { |
780 | | - assertEquals(expected, matcher.toString()); |
781 | | - assertEquals(expected, matcher.precomputed().toString()); |
782 | | - assertEquals(expected, matcher.negate().negate().toString()); |
783 | | - assertEquals(expected, matcher.negate().precomputed().negate().toString()); |
784 | | - assertEquals(expected, matcher.negate().precomputed().negate().precomputed().toString()); |
| 772 | + assertToStringWorks(CharMatcher.anyOf(""), "CharMatcher.none()"); |
| 773 | + assertToStringWorks(CharMatcher.anyOf("1"), "CharMatcher.is('\\u0031')"); |
| 774 | + assertToStringWorks(CharMatcher.isNot('1'), "CharMatcher.isNot('\\u0031')"); |
| 775 | + assertToStringWorks(CharMatcher.anyOf("12"), "CharMatcher.anyOf(\"\\u0031\\u0032\")"); |
| 776 | + assertToStringWorks(CharMatcher.anyOf("321"), "CharMatcher.anyOf(\"\\u0031\\u0032\\u0033\")"); |
| 777 | + assertToStringWorks(CharMatcher.inRange('1', '3'), "CharMatcher.inRange('\\u0031', '\\u0033')"); |
| 778 | + assertToStringWorks( |
| 779 | + CharMatcher.is('0').or(is('1')), |
| 780 | + /* expectedNormal= */ "CharMatcher.is('\\u0030').or(CharMatcher.is('\\u0031'))", |
| 781 | + // .precomputed() optimizes |
| 782 | + /* expectedPrecomputed= */ "CharMatcher.anyOf(\"\\u0030\\u0031\")"); |
| 783 | + assertToStringWorks( |
| 784 | + CharMatcher.digit().and(CharMatcher.ascii()), |
| 785 | + "CharMatcher.digit().and(CharMatcher.ascii())"); |
| 786 | + assertToStringWorks( |
| 787 | + CharMatcher.inRange('a', 'z') |
| 788 | + .or(CharMatcher.inRange('A', 'Z')) |
| 789 | + .or(CharMatcher.inRange('0', '9')) |
| 790 | + .or(CharMatcher.is('_')), |
| 791 | + "CharMatcher.inRange('\\u0061', '\\u007A')" |
| 792 | + + ".or(CharMatcher.inRange('\\u0041', '\\u005A'))" |
| 793 | + + ".or(CharMatcher.inRange('\\u0030', '\\u0039'))" |
| 794 | + + ".or(CharMatcher.is('\\u005F'))"); |
| 795 | + } |
| 796 | + |
| 797 | + private static void assertToStringWorks(CharMatcher matcher, String expected) { |
| 798 | + assertToStringWorks(matcher, expected, expected); |
| 799 | + } |
| 800 | + |
| 801 | + private static void assertToStringWorks( |
| 802 | + CharMatcher matcher, String expectedNormal, String expectedPrecomputed) { |
| 803 | + assertThat(matcher.toString()).isEqualTo(expectedNormal); |
| 804 | + assertThat(matcher.negate().negate().toString()).isEqualTo(expectedNormal); |
| 805 | + |
| 806 | + // The precomputed form is different on regular platforms but the same on j2cl and j2kt. |
| 807 | + // Hence isAnyOf here. |
| 808 | + assertThat(matcher.precomputed().toString()).isAnyOf(expectedNormal, expectedPrecomputed); |
| 809 | + assertThat(matcher.negate().precomputed().negate().toString()) |
| 810 | + .isAnyOf(expectedNormal, expectedPrecomputed); |
| 811 | + assertThat(matcher.negate().precomputed().negate().precomputed().toString()) |
| 812 | + .isAnyOf(expectedNormal, expectedPrecomputed); |
785 | 813 | } |
786 | 814 | } |
0 commit comments