This is an automated email from the ASF dual-hosted git repository.

garydgregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git


The following commit(s) were added to refs/heads/master by this push:
     new 4d91b28fc Sort members.
4d91b28fc is described below

commit 4d91b28fce7317132360aa9f3bbf31cc6e479f00
Author: Gary Gregory <[email protected]>
AuthorDate: Sat Aug 22 15:53:54 2026 -0400

    Sort members.
---
 .../commons/lang3/StringUtilsSubstringTest.java    | 180 ++++++++++-----------
 1 file changed, 90 insertions(+), 90 deletions(-)

diff --git 
a/src/test/java/org/apache/commons/lang3/StringUtilsSubstringTest.java 
b/src/test/java/org/apache/commons/lang3/StringUtilsSubstringTest.java
index 605ff8bc6..55ee377ea 100644
--- a/src/test/java/org/apache/commons/lang3/StringUtilsSubstringTest.java
+++ b/src/test/java/org/apache/commons/lang3/StringUtilsSubstringTest.java
@@ -84,6 +84,35 @@ void testLeft_String() {
         assertSame(FOOBAR, StringUtils.left(FOOBAR, 80));
     }
 
+    @Test
+    void testLeftSurrogatePair() {
+        // U+1F600 GRINNING FACE is a supplementary code point stored as a 
surrogate pair
+        final String grin = "😀";
+        assertEquals("", StringUtils.left(grin, 0));
+        assertEquals("", StringUtils.left(grin, 1));
+        assertEquals(grin, StringUtils.left(grin, 2));
+        assertEquals(grin, StringUtils.left(grin, 3));
+
+        assertEquals("a", StringUtils.left("a" + grin, 1));
+        assertEquals("a", StringUtils.left("a" + grin, 2));
+        assertEquals("a" + grin, StringUtils.left("a" + grin, 3));
+
+        final String source = "a" + grin + "b" + grin + "cd" + grin + "ef";
+        for (int len = 0; len <= source.length(); len++) {
+            final String result = StringUtils.left(source, len);
+            assertTrue(result.length() <= len, () -> "result longer than len: 
" + result);
+            for (int i = 0; i < result.length(); i++) {
+                final char ch = result.charAt(i);
+                if (Character.isHighSurrogate(ch)) {
+                    assertTrue(i + 1 < result.length() && 
Character.isLowSurrogate(result.charAt(i + 1)), "lone high surrogate in: " + 
result);
+                    i++; // skip the paired low surrogate
+                } else {
+                    assertFalse(Character.isLowSurrogate(ch), "lone low 
surrogate in: " + result);
+                }
+            }
+        }
+    }
+
     @Test
     void testMid_String() {
         assertSame(null, StringUtils.mid(null, -1, 0));
@@ -109,6 +138,38 @@ void testMid_String() {
         assertEquals(FOOBAR, StringUtils.mid(FOOBAR, 0, Integer.MAX_VALUE));
     }
 
+    @Test
+    void testMidSurrogatePair() {
+        // U+1F600 GRINNING FACE is a supplementary code point stored as a 
surrogate pair
+        final String grin = "😀";
+        assertEquals("", StringUtils.mid(grin, 0, 0));
+        assertEquals("", StringUtils.mid(grin, 0, 1));
+        assertEquals(grin, StringUtils.mid(grin, 0, 2));
+        assertEquals(grin, StringUtils.mid(grin, 0, 3));
+        assertEquals("", StringUtils.mid(grin, 1, 1));
+        assertEquals("", StringUtils.mid(grin, 1, 2));
+
+        assertEquals("a", StringUtils.mid("a" + grin + "b", 0, 2));
+        assertEquals(grin, StringUtils.mid("a" + grin + "b", 1, 2));
+        assertEquals("b", StringUtils.mid("a" + grin + "b", 2, 2));
+
+        final String source = "a" + grin + "b" + grin + "cd" + grin + "ef";
+        for (int pos = 0; pos <= source.length(); pos++) {
+            for (int len = 0; len <= source.length(); len++) {
+                final String result = StringUtils.mid(source, pos, len);
+                for (int i = 0; i < result.length(); i++) {
+                    final char ch = result.charAt(i);
+                    if (Character.isHighSurrogate(ch)) {
+                        assertTrue(i + 1 < result.length() && 
Character.isLowSurrogate(result.charAt(i + 1)), "lone high surrogate in: " + 
result);
+                        i++; // skip the paired low surrogate
+                    } else {
+                        assertFalse(Character.isLowSurrogate(ch), "lone low 
surrogate in: " + result);
+                    }
+                }
+            }
+        }
+    }
+
     @Test
     void testRight_String() {
         assertSame(null, StringUtils.right(null, -1));
@@ -125,6 +186,35 @@ void testRight_String() {
         assertSame(FOOBAR, StringUtils.right(FOOBAR, 80));
     }
 
+    @Test
+    void testRightSurrogatePair() {
+        // U+1F600 GRINNING FACE is a supplementary code point stored as a 
surrogate pair
+        final String grin = "😀";
+        assertEquals("", StringUtils.right(grin, 0));
+        assertEquals("", StringUtils.right(grin, 1));
+        assertEquals(grin, StringUtils.right(grin, 2));
+        assertEquals(grin, StringUtils.right(grin, 3));
+
+        assertEquals("a", StringUtils.right(grin + "a", 1));
+        assertEquals("a", StringUtils.right(grin + "a", 2));
+        assertEquals(grin + "a", StringUtils.right(grin + "a", 3));
+
+        final String source = "a" + grin + "b" + grin + "cd" + grin + "ef";
+        for (int len = 0; len <= source.length(); len++) {
+            final String result = StringUtils.right(source, len);
+            assertTrue(result.length() <= len, () -> "result longer than len: 
" + result);
+            for (int i = 0; i < result.length(); i++) {
+                final char ch = result.charAt(i);
+                if (Character.isHighSurrogate(ch)) {
+                    assertTrue(i + 1 < result.length() && 
Character.isLowSurrogate(result.charAt(i + 1)), "lone high surrogate in: " + 
result);
+                    i++; // skip the paired low surrogate
+                } else {
+                    assertFalse(Character.isLowSurrogate(ch), "lone low 
surrogate in: " + result);
+                }
+            }
+        }
+    }
+
     @Test
     void testSubstring_StringInt() {
         assertNull(StringUtils.substring(null, 0));
@@ -401,94 +491,4 @@ void testSubstringsBetween_StringStringString() {
             assertEquals(0, results.length);
         }
 
-    @Test
-    void testLeftSurrogatePair() {
-        // U+1F600 GRINNING FACE is a supplementary code point stored as a 
surrogate pair
-        final String grin = "😀";
-        assertEquals("", StringUtils.left(grin, 0));
-        assertEquals("", StringUtils.left(grin, 1));
-        assertEquals(grin, StringUtils.left(grin, 2));
-        assertEquals(grin, StringUtils.left(grin, 3));
-
-        assertEquals("a", StringUtils.left("a" + grin, 1));
-        assertEquals("a", StringUtils.left("a" + grin, 2));
-        assertEquals("a" + grin, StringUtils.left("a" + grin, 3));
-
-        final String source = "a" + grin + "b" + grin + "cd" + grin + "ef";
-        for (int len = 0; len <= source.length(); len++) {
-            final String result = StringUtils.left(source, len);
-            assertTrue(result.length() <= len, () -> "result longer than len: 
" + result);
-            for (int i = 0; i < result.length(); i++) {
-                final char ch = result.charAt(i);
-                if (Character.isHighSurrogate(ch)) {
-                    assertTrue(i + 1 < result.length() && 
Character.isLowSurrogate(result.charAt(i + 1)), "lone high surrogate in: " + 
result);
-                    i++; // skip the paired low surrogate
-                } else {
-                    assertFalse(Character.isLowSurrogate(ch), "lone low 
surrogate in: " + result);
-                }
-            }
-        }
-    }
-
-    @Test
-    void testMidSurrogatePair() {
-        // U+1F600 GRINNING FACE is a supplementary code point stored as a 
surrogate pair
-        final String grin = "😀";
-        assertEquals("", StringUtils.mid(grin, 0, 0));
-        assertEquals("", StringUtils.mid(grin, 0, 1));
-        assertEquals(grin, StringUtils.mid(grin, 0, 2));
-        assertEquals(grin, StringUtils.mid(grin, 0, 3));
-        assertEquals("", StringUtils.mid(grin, 1, 1));
-        assertEquals("", StringUtils.mid(grin, 1, 2));
-
-        assertEquals("a", StringUtils.mid("a" + grin + "b", 0, 2));
-        assertEquals(grin, StringUtils.mid("a" + grin + "b", 1, 2));
-        assertEquals("b", StringUtils.mid("a" + grin + "b", 2, 2));
-
-        final String source = "a" + grin + "b" + grin + "cd" + grin + "ef";
-        for (int pos = 0; pos <= source.length(); pos++) {
-            for (int len = 0; len <= source.length(); len++) {
-                final String result = StringUtils.mid(source, pos, len);
-                for (int i = 0; i < result.length(); i++) {
-                    final char ch = result.charAt(i);
-                    if (Character.isHighSurrogate(ch)) {
-                        assertTrue(i + 1 < result.length() && 
Character.isLowSurrogate(result.charAt(i + 1)), "lone high surrogate in: " + 
result);
-                        i++; // skip the paired low surrogate
-                    } else {
-                        assertFalse(Character.isLowSurrogate(ch), "lone low 
surrogate in: " + result);
-                    }
-                }
-            }
-        }
-    }
-
-    @Test
-    void testRightSurrogatePair() {
-        // U+1F600 GRINNING FACE is a supplementary code point stored as a 
surrogate pair
-        final String grin = "😀";
-        assertEquals("", StringUtils.right(grin, 0));
-        assertEquals("", StringUtils.right(grin, 1));
-        assertEquals(grin, StringUtils.right(grin, 2));
-        assertEquals(grin, StringUtils.right(grin, 3));
-
-        assertEquals("a", StringUtils.right(grin + "a", 1));
-        assertEquals("a", StringUtils.right(grin + "a", 2));
-        assertEquals(grin + "a", StringUtils.right(grin + "a", 3));
-
-        final String source = "a" + grin + "b" + grin + "cd" + grin + "ef";
-        for (int len = 0; len <= source.length(); len++) {
-            final String result = StringUtils.right(source, len);
-            assertTrue(result.length() <= len, () -> "result longer than len: 
" + result);
-            for (int i = 0; i < result.length(); i++) {
-                final char ch = result.charAt(i);
-                if (Character.isHighSurrogate(ch)) {
-                    assertTrue(i + 1 < result.length() && 
Character.isLowSurrogate(result.charAt(i + 1)), "lone high surrogate in: " + 
result);
-                    i++; // skip the paired low surrogate
-                } else {
-                    assertFalse(Character.isLowSurrogate(ch), "lone low 
surrogate in: " + result);
-                }
-            }
-        }
-    }
-
 }

Reply via email to