You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by gg...@apache.org on 2005/08/02 05:55:01 UTC

svn commit: r226934 - in /jakarta/commons/proper/lang/trunk/src: java/org/apache/commons/lang/text/StrBuilder.java test/org/apache/commons/lang/text/StrBuilderTest.java

Author: ggregory
Date: Mon Aug  1 20:54:55 2005
New Revision: 226934

URL: http://svn.apache.org/viewcvs?rev=226934&view=rev
Log:
Fixes and better unit test code coverage from Nathan Beyer [nbeyer@kc.rr.com].

Modified:
    jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrBuilder.java
    jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrBuilderTest.java

Modified: jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrBuilder.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrBuilder.java?rev=226934&r1=226933&r2=226934&view=diff
==============================================================================
--- jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrBuilder.java (original)
+++ jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrBuilder.java Mon Aug  1 20:54:55 2005
@@ -1383,7 +1383,7 @@
      * @return the last index of the character, or -1 if not found
      */
     public int lastIndexOf(char ch) {
-        return lastIndexOf(ch, 0);
+        return lastIndexOf(ch, size - 1);
     }
 
     /**
@@ -1398,9 +1398,8 @@
         if (startIndex < 0) {
             return -1;
         }
-        char[] thisBuf = buf;
         for (int i = startIndex; i >= 0; i--) {
-            if (thisBuf[i] == ch) {
+            if (buf[i] == ch) {
                 return i;
             }
         }
@@ -1416,7 +1415,7 @@
      * @return the last index of the string, or -1 if not found
      */
     public int lastIndexOf(String str) {
-        return lastIndexOf(str, size);
+        return lastIndexOf(str, size - 1);
     }
 
     /**
@@ -1439,11 +1438,11 @@
             if (strLen == 1) {
                 return lastIndexOf(str.charAt(0), startIndex);
             }
-            char[] thisBuf = buf;
+
             outer:
-            for (int i = startIndex - strLen; i >= 0; i--) {
+            for (int i = startIndex - strLen + 1; i >= 0; i--) {
                 for (int j = 0; j < strLen; j++) {
-                    if (str.charAt(j) != thisBuf[i + j]) {
+                    if (str.charAt(j) != buf[i + j]) {
                         continue outer;
                     }
                 }

Modified: jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrBuilderTest.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrBuilderTest.java?rev=226934&r1=226933&r2=226934&view=diff
==============================================================================
--- jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrBuilderTest.java (original)
+++ jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrBuilderTest.java Mon Aug  1 20:54:55 2005
@@ -1345,4 +1345,152 @@
         actual = sb.reverse().toString();
         assertEquals("true", actual);
     }
+    
+    public void testIndexOfChar() {
+        StrBuilder sb = new StrBuilder("abab");
+        
+        assertEquals (0, sb.indexOf('a'));
+        //should work like String#indexOf
+        assertEquals ("abab".indexOf('a'), sb.indexOf('a'));
+        
+        assertEquals(1, sb.indexOf('b'));
+        assertEquals ("abab".indexOf('b'), sb.indexOf('b'));
+        
+        assertEquals (-1, sb.indexOf('z'));
+    }
+    
+    public void testLastIndexOfChar() {
+        StrBuilder sb = new StrBuilder("abab");
+        
+        assertEquals (2, sb.lastIndexOf('a'));
+        //should work like String#lastIndexOf
+        assertEquals ("abab".lastIndexOf('a'), sb.lastIndexOf('a'));
+        
+        assertEquals(3, sb.lastIndexOf('b'));
+        assertEquals ("abab".lastIndexOf('b'), sb.lastIndexOf('b'));
+        
+        assertEquals (-1, sb.lastIndexOf('z'));
+    }
+    
+    public void testIndexOfCharInt() {
+        StrBuilder sb = new StrBuilder("abab");
+        
+        assertEquals (2, sb.indexOf('a', 1));
+        //should work like String#indexOf
+        assertEquals ("abab".indexOf('a', 1), sb.indexOf('a', 1));
+        
+        assertEquals(3, sb.indexOf('b', 2));
+        assertEquals ("abab".indexOf('b', 2), sb.indexOf('b', 2));
+        
+        assertEquals (-1, sb.indexOf('z', 2));
+        
+        sb = new StrBuilder("xyzabc");
+        assertEquals (2, sb.indexOf('z', 0));
+        assertEquals (-1, sb.indexOf('z', 3));
+    }
+    
+    public void testLastIndexOfCharInt() {
+        StrBuilder sb = new StrBuilder("abab");
+        
+        assertEquals (0, sb.lastIndexOf('a', 1));
+        //should work like String#lastIndexOf
+        assertEquals ("abab".lastIndexOf('a', 1), sb.lastIndexOf('a', 1));
+        
+        assertEquals(1, sb.lastIndexOf('b', 2));
+        assertEquals ("abab".lastIndexOf('b', 2), sb.lastIndexOf('b', 2));
+        
+        assertEquals (-1, sb.lastIndexOf('z', 2));
+        
+        sb = new StrBuilder("xyzabc");
+        assertEquals (2, sb.lastIndexOf('z', sb.length()));
+        assertEquals (-1, sb.lastIndexOf('z', 1));
+    }
+    
+    public void testIndexOfString() {
+        StrBuilder sb = new StrBuilder("abab");
+        
+        assertEquals (0, sb.indexOf("a"));
+        //should work like String#indexOf
+        assertEquals ("abab".indexOf("a"), sb.indexOf("a"));
+        
+        assertEquals (0, sb.indexOf("ab"));
+        //should work like String#indexOf
+        assertEquals ("abab".indexOf("ab"), sb.indexOf("ab"));
+        
+        assertEquals(1, sb.indexOf("b"));
+        assertEquals ("abab".indexOf("b"), sb.indexOf("b"));
+        
+        assertEquals(1, sb.indexOf("ba"));
+        assertEquals ("abab".indexOf("ba"), sb.indexOf("ba"));
+        
+        assertEquals (-1, sb.indexOf("z"));
+    }
+    
+    public void testLastIndexOfString() {
+        StrBuilder sb = new StrBuilder("abab");
+        
+        assertEquals (2, sb.lastIndexOf("a"));
+        //should work like String#lastIndexOf
+        assertEquals ("abab".lastIndexOf("a"), sb.lastIndexOf("a"));
+        
+        assertEquals (2, sb.lastIndexOf("ab"));
+        //should work like String#lastIndexOf
+        assertEquals ("abab".lastIndexOf("ab"), sb.lastIndexOf("ab"));
+        
+        assertEquals(3, sb.lastIndexOf("b"));
+        assertEquals ("abab".lastIndexOf("b"), sb.lastIndexOf("b"));
+        
+        assertEquals(1, sb.lastIndexOf("ba"));
+        assertEquals ("abab".lastIndexOf("ba"), sb.lastIndexOf("ba"));
+        
+        assertEquals (-1, sb.lastIndexOf("z"));
+    }
+    
+    public void testIndexOfStringInt() {
+        StrBuilder sb = new StrBuilder("abab");
+        
+        assertEquals (2, sb.indexOf("a", 1));
+        //should work like String#indexOf
+        assertEquals ("abab".indexOf("a", 1), sb.indexOf("a", 1));
+        
+        assertEquals (2, sb.indexOf("ab", 1));
+        //should work like String#indexOf
+        assertEquals ("abab".indexOf("ab", 1), sb.indexOf("ab", 1));
+        
+        assertEquals(3, sb.indexOf("b", 2));
+        assertEquals ("abab".indexOf("b", 2), sb.indexOf("b", 2));
+        
+        assertEquals(1, sb.indexOf("ba", 1));
+        assertEquals ("abab".indexOf("ba", 2), sb.indexOf("ba", 2));
+        
+        assertEquals (-1, sb.indexOf("z", 2));
+        
+        sb = new StrBuilder("xyzabc");
+        assertEquals (2, sb.indexOf("za", 0));
+        assertEquals (-1, sb.indexOf("za", 3));
+    }
+    
+    public void testLastIndexOfStringInt() {
+        StrBuilder sb = new StrBuilder("abab");
+        
+        assertEquals (0, sb.lastIndexOf("a", 1));
+        //should work like String#lastIndexOf
+        assertEquals ("abab".lastIndexOf("a", 1), sb.lastIndexOf("a", 1));
+        
+        assertEquals (0, sb.lastIndexOf("ab", 1));
+        //should work like String#lastIndexOf
+        assertEquals ("abab".lastIndexOf("ab", 1), sb.lastIndexOf("ab", 1));
+        
+        assertEquals(1, sb.lastIndexOf("b", 2));
+        assertEquals ("abab".lastIndexOf("b", 2), sb.lastIndexOf("b", 2));
+        
+        assertEquals(1, sb.lastIndexOf("ba", 2));
+        assertEquals ("abab".lastIndexOf("ba", 2), sb.lastIndexOf("ba", 2));
+        
+        assertEquals (-1, sb.lastIndexOf("z", 2));
+        
+        sb = new StrBuilder("xyzabc");
+        assertEquals (2, sb.lastIndexOf("za", sb.length()));
+        assertEquals (-1, sb.lastIndexOf("za", 1));
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org