blob: d3857293a78b4502824744c2c17ab1d4f66e47f0 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.commons.lang;
import java.util.Locale;
import junit.framework.TestCase;
/**
* Unit tests {@link org.apache.commons.lang.StringUtils} - Substring methods
*
* @author Apache Software Foundation
* @author <a href="mailto:ridesmet@users.sourceforge.net">Ringo De Smet</a>
* @author Phil Steitz
* @version $Id$
*/
public class StringUtilsEqualsIndexOfTest extends TestCase {
/**
* Supplementary character U+20000
* See http://java.sun.com/developer/technicalArticles/Intl/Supplementary/
*/
private static final String CharU20000 = "\uD840\uDC00";
/**
* Supplementary character U+20001
* See http://java.sun.com/developer/technicalArticles/Intl/Supplementary/
*/
private static final String CharU20001 = "\uD840\uDC01";
/**
* Incomplete supplementary character U+20000, high surrogate only.
* See http://java.sun.com/developer/technicalArticles/Intl/Supplementary/
*/
private static final String CharUSuppCharHigh = "\uDC00";
/**
* Incomplete supplementary character U+20000, low surrogate only.
* See http://java.sun.com/developer/technicalArticles/Intl/Supplementary/
*/
private static final String CharUSuppCharLow = "\uD840";
private static final String FOO = "foo";
private static final String BAR = "bar";
private static final String FOOBAR = "foobar";
private static final String[] FOOBAR_SUB_ARRAY = new String[] {"ob", "ba"};
public StringUtilsEqualsIndexOfTest(String name) {
super(name);
}
public void testContains_Char() {
assertEquals(false, StringUtils.contains(null, ' '));
assertEquals(false, StringUtils.contains("", ' '));
assertEquals(false, StringUtils.contains("", null));
assertEquals(false, StringUtils.contains(null, null));
assertEquals(true, StringUtils.contains("abc", 'a'));
assertEquals(true, StringUtils.contains("abc", 'b'));
assertEquals(true, StringUtils.contains("abc", 'c'));
assertEquals(false, StringUtils.contains("abc", 'z'));
}
public void testContains_String() {
assertEquals(false, StringUtils.contains(null, null));
assertEquals(false, StringUtils.contains(null, ""));
assertEquals(false, StringUtils.contains(null, "a"));
assertEquals(false, StringUtils.contains("", null));
assertEquals(true, StringUtils.contains("", ""));
assertEquals(false, StringUtils.contains("", "a"));
assertEquals(true, StringUtils.contains("abc", "a"));
assertEquals(true, StringUtils.contains("abc", "b"));
assertEquals(true, StringUtils.contains("abc", "c"));
assertEquals(true, StringUtils.contains("abc", "abc"));
assertEquals(false, StringUtils.contains("abc", "z"));
}
/**
* See http://java.sun.com/developer/technicalArticles/Intl/Supplementary/
*/
public void testContains_StringWithBadSupplementaryChars() {
// Test edge case: 1/2 of a (broken) supplementary char
assertEquals(false, StringUtils.contains(CharUSuppCharHigh, CharU20001));
assertEquals(false, StringUtils.contains(CharUSuppCharLow, CharU20001));
assertEquals(false, StringUtils.contains(CharU20001, CharUSuppCharHigh));
assertEquals(0, CharU20001.indexOf(CharUSuppCharLow));
assertEquals(true, StringUtils.contains(CharU20001, CharUSuppCharLow));
assertEquals(true, StringUtils.contains(CharU20001 + CharUSuppCharLow + "a", "a"));
assertEquals(true, StringUtils.contains(CharU20001 + CharUSuppCharHigh + "a", "a"));
}
/**
* See http://java.sun.com/developer/technicalArticles/Intl/Supplementary/
*/
public void testContains_StringWithSupplementaryChars() {
assertEquals(true, StringUtils.contains(CharU20000 + CharU20001, CharU20000));
assertEquals(true, StringUtils.contains(CharU20000 + CharU20001, CharU20001));
assertEquals(true, StringUtils.contains(CharU20000, CharU20000));
assertEquals(false, StringUtils.contains(CharU20000, CharU20001));
}
public void testContainsAny_StringCharArray() {
assertFalse(StringUtils.containsAny(null, (char[]) null));
assertFalse(StringUtils.containsAny(null, new char[0]));
assertFalse(StringUtils.containsAny(null, new char[] { 'a', 'b' }));
assertFalse(StringUtils.containsAny("", (char[]) null));
assertFalse(StringUtils.containsAny("", new char[0]));
assertFalse(StringUtils.containsAny("", new char[] { 'a', 'b' }));
assertFalse(StringUtils.containsAny("zzabyycdxx", (char[]) null));
assertFalse(StringUtils.containsAny("zzabyycdxx", new char[0]));
assertTrue(StringUtils.containsAny("zzabyycdxx", new char[] { 'z', 'a' }));
assertTrue(StringUtils.containsAny("zzabyycdxx", new char[] { 'b', 'y' }));
assertFalse(StringUtils.containsAny("ab", new char[] { 'z' }));
}
/**
* See http://java.sun.com/developer/technicalArticles/Intl/Supplementary/
*/
public void testContainsAny_StringCharArrayWithBadSupplementaryChars() {
// Test edge case: 1/2 of a (broken) supplementary char
assertEquals(false, StringUtils.containsAny(CharUSuppCharHigh, CharU20001.toCharArray()));
assertEquals(false, StringUtils.containsAny("abc" + CharUSuppCharHigh + "xyz", CharU20001.toCharArray()));
assertEquals(-1, CharUSuppCharLow.indexOf(CharU20001));
assertEquals(false, StringUtils.containsAny(CharUSuppCharLow, CharU20001.toCharArray()));
assertEquals(false, StringUtils.containsAny(CharU20001, CharUSuppCharHigh.toCharArray()));
assertEquals(0, CharU20001.indexOf(CharUSuppCharLow));
assertEquals(true, StringUtils.containsAny(CharU20001, CharUSuppCharLow.toCharArray()));
}
/**
* See http://java.sun.com/developer/technicalArticles/Intl/Supplementary/
*/
public void testContainsAny_StringCharArrayWithSupplementaryChars() {
assertEquals(true, StringUtils.containsAny(CharU20000 + CharU20001, CharU20000.toCharArray()));
assertEquals(true, StringUtils.containsAny("a" + CharU20000 + CharU20001, "a".toCharArray()));
assertEquals(true, StringUtils.containsAny(CharU20000 + "a" + CharU20001, "a".toCharArray()));
assertEquals(true, StringUtils.containsAny(CharU20000 + CharU20001 + "a", "a".toCharArray()));
assertEquals(true, StringUtils.containsAny(CharU20000 + CharU20001, CharU20001.toCharArray()));
assertEquals(true, StringUtils.containsAny(CharU20000, CharU20000.toCharArray()));
// Sanity check:
assertEquals(-1, CharU20000.indexOf(CharU20001));
assertEquals(0, CharU20000.indexOf(CharU20001.charAt(0)));
assertEquals(-1, CharU20000.indexOf(CharU20001.charAt(1)));
// Test:
assertEquals(false, StringUtils.containsAny(CharU20000, CharU20001.toCharArray()));
assertEquals(false, StringUtils.containsAny(CharU20001, CharU20000.toCharArray()));
}
public void testContainsAny_StringString() {
assertFalse(StringUtils.containsAny(null, (String) null));
assertFalse(StringUtils.containsAny(null, ""));
assertFalse(StringUtils.containsAny(null, "ab"));
assertFalse(StringUtils.containsAny("", (String) null));
assertFalse(StringUtils.containsAny("", ""));
assertFalse(StringUtils.containsAny("", "ab"));
assertFalse(StringUtils.containsAny("zzabyycdxx", (String) null));
assertFalse(StringUtils.containsAny("zzabyycdxx", ""));
assertTrue(StringUtils.containsAny("zzabyycdxx", "za"));
assertTrue(StringUtils.containsAny("zzabyycdxx", "by"));
assertFalse(StringUtils.containsAny("ab", "z"));
}
/**
* See http://java.sun.com/developer/technicalArticles/Intl/Supplementary/
*/
public void testContainsAny_StringWithBadSupplementaryChars() {
// Test edge case: 1/2 of a (broken) supplementary char
assertEquals(false, StringUtils.containsAny(CharUSuppCharHigh, CharU20001));
assertEquals(-1, CharUSuppCharLow.indexOf(CharU20001));
assertEquals(false, StringUtils.containsAny(CharUSuppCharLow, CharU20001));
assertEquals(false, StringUtils.containsAny(CharU20001, CharUSuppCharHigh));
assertEquals(0, CharU20001.indexOf(CharUSuppCharLow));
assertEquals(true, StringUtils.containsAny(CharU20001, CharUSuppCharLow));
}
/**
* See http://java.sun.com/developer/technicalArticles/Intl/Supplementary/
*/
public void testContainsAny_StringWithSupplementaryChars() {
assertEquals(true, StringUtils.containsAny(CharU20000 + CharU20001, CharU20000));
assertEquals(true, StringUtils.containsAny(CharU20000 + CharU20001, CharU20001));
assertEquals(true, StringUtils.containsAny(CharU20000, CharU20000));
// Sanity check:
assertEquals(-1, CharU20000.indexOf(CharU20001));
assertEquals(0, CharU20000.indexOf(CharU20001.charAt(0)));
assertEquals(-1, CharU20000.indexOf(CharU20001.charAt(1)));
// Test:
assertEquals(false, StringUtils.containsAny(CharU20000, CharU20001));
assertEquals(false, StringUtils.containsAny(CharU20001, CharU20000));
}
public void testContainsIgnoreCase_LocaleIndependence() {
Locale orig = Locale.getDefault();
Locale[] locales = { Locale.ENGLISH, new Locale("tr", "", ""), Locale.getDefault() };
String[][] tdata = {
{ "i", "I" },
{ "I", "i" },
{ "\u03C2", "\u03C3" },
{ "\u03A3", "\u03C2" },
{ "\u03A3", "\u03C3" },
};
String[][] fdata = {
{ "\u00DF", "SS" },
};
try {
for (int i = 0; i < locales.length; i++) {
Locale.setDefault(locales[i]);
for (int j = 0; j < tdata.length; j++) {
assertTrue(Locale.getDefault() + ": " + j + " " + tdata[j][0] + " " + tdata[j][1], StringUtils
.containsIgnoreCase(tdata[j][0], tdata[j][1]));
}
for (int j = 0; j < fdata.length; j++) {
assertFalse(Locale.getDefault() + ": " + j + " " + fdata[j][0] + " " + fdata[j][1], StringUtils
.containsIgnoreCase(fdata[j][0], fdata[j][1]));
}
}
} finally {
Locale.setDefault(orig);
}
}
public void testContainsIgnoreCase_StringString() {
assertFalse(StringUtils.containsIgnoreCase(null, null));
// Null tests
assertFalse(StringUtils.containsIgnoreCase(null, ""));
assertFalse(StringUtils.containsIgnoreCase(null, "a"));
assertFalse(StringUtils.containsIgnoreCase(null, "abc"));
assertFalse(StringUtils.containsIgnoreCase("", null));
assertFalse(StringUtils.containsIgnoreCase("a", null));
assertFalse(StringUtils.containsIgnoreCase("abc", null));
// Match len = 0
assertTrue(StringUtils.containsIgnoreCase("", ""));
assertTrue(StringUtils.containsIgnoreCase("a", ""));
assertTrue(StringUtils.containsIgnoreCase("abc", ""));
// Match len = 1
assertFalse(StringUtils.containsIgnoreCase("", "a"));
assertTrue(StringUtils.containsIgnoreCase("a", "a"));
assertTrue(StringUtils.containsIgnoreCase("abc", "a"));
assertFalse(StringUtils.containsIgnoreCase("", "A"));
assertTrue(StringUtils.containsIgnoreCase("a", "A"));
assertTrue(StringUtils.containsIgnoreCase("abc", "A"));
// Match len > 1
assertFalse(StringUtils.containsIgnoreCase("", "abc"));
assertFalse(StringUtils.containsIgnoreCase("a", "abc"));
assertTrue(StringUtils.containsIgnoreCase("xabcz", "abc"));
assertFalse(StringUtils.containsIgnoreCase("", "ABC"));
assertFalse(StringUtils.containsIgnoreCase("a", "ABC"));
assertTrue(StringUtils.containsIgnoreCase("xabcz", "ABC"));
}
public void testContainsNone_CharArray() {
String str1 = "a";
String str2 = "b";
String str3 = "ab.";
char[] chars1= {'b'};
char[] chars2= {'.'};
char[] chars3= {'c', 'd'};
char[] emptyChars = new char[0];
assertEquals(true, StringUtils.containsNone(null, (char[]) null));
assertEquals(true, StringUtils.containsNone("", (char[]) null));
assertEquals(true, StringUtils.containsNone(null, emptyChars));
assertEquals(true, StringUtils.containsNone(str1, emptyChars));
assertEquals(true, StringUtils.containsNone("", emptyChars));
assertEquals(true, StringUtils.containsNone("", chars1));
assertEquals(true, StringUtils.containsNone(str1, chars1));
assertEquals(true, StringUtils.containsNone(str1, chars2));
assertEquals(true, StringUtils.containsNone(str1, chars3));
assertEquals(false, StringUtils.containsNone(str2, chars1));
assertEquals(true, StringUtils.containsNone(str2, chars2));
assertEquals(true, StringUtils.containsNone(str2, chars3));
assertEquals(false, StringUtils.containsNone(str3, chars1));
assertEquals(false, StringUtils.containsNone(str3, chars2));
assertEquals(true, StringUtils.containsNone(str3, chars3));
}
/**
* See http://java.sun.com/developer/technicalArticles/Intl/Supplementary/
*/
public void testContainsNone_CharArrayWithBadSupplementaryChars() {
// Test edge case: 1/2 of a (broken) supplementary char
assertEquals(true, StringUtils.containsNone(CharUSuppCharHigh, CharU20001.toCharArray()));
assertEquals(-1, CharUSuppCharLow.indexOf(CharU20001));
assertEquals(true, StringUtils.containsNone(CharUSuppCharLow, CharU20001.toCharArray()));
assertEquals(-1, CharU20001.indexOf(CharUSuppCharHigh));
assertEquals(true, StringUtils.containsNone(CharU20001, CharUSuppCharHigh.toCharArray()));
assertEquals(0, CharU20001.indexOf(CharUSuppCharLow));
assertEquals(false, StringUtils.containsNone(CharU20001, CharUSuppCharLow.toCharArray()));
}
/**
* See http://java.sun.com/developer/technicalArticles/Intl/Supplementary/
*/
public void testContainsNone_CharArrayWithSupplementaryChars() {
assertEquals(false, StringUtils.containsNone(CharU20000 + CharU20001, CharU20000.toCharArray()));
assertEquals(false, StringUtils.containsNone(CharU20000 + CharU20001, CharU20001.toCharArray()));
assertEquals(false, StringUtils.containsNone(CharU20000, CharU20000.toCharArray()));
// Sanity check:
assertEquals(-1, CharU20000.indexOf(CharU20001));
assertEquals(0, CharU20000.indexOf(CharU20001.charAt(0)));
assertEquals(-1, CharU20000.indexOf(CharU20001.charAt(1)));
// Test:
assertEquals(true, StringUtils.containsNone(CharU20000, CharU20001.toCharArray()));
assertEquals(true, StringUtils.containsNone(CharU20001, CharU20000.toCharArray()));
}
public void testContainsNone_String() {
String str1 = "a";
String str2 = "b";
String str3 = "ab.";
String chars1= "b";
String chars2= ".";
String chars3= "cd";
assertEquals(true, StringUtils.containsNone(null, (String) null));
assertEquals(true, StringUtils.containsNone("", (String) null));
assertEquals(true, StringUtils.containsNone(null, ""));
assertEquals(true, StringUtils.containsNone(str1, ""));
assertEquals(true, StringUtils.containsNone("", ""));
assertEquals(true, StringUtils.containsNone("", chars1));
assertEquals(true, StringUtils.containsNone(str1, chars1));
assertEquals(true, StringUtils.containsNone(str1, chars2));
assertEquals(true, StringUtils.containsNone(str1, chars3));
assertEquals(false, StringUtils.containsNone(str2, chars1));
assertEquals(true, StringUtils.containsNone(str2, chars2));
assertEquals(true, StringUtils.containsNone(str2, chars3));
assertEquals(false, StringUtils.containsNone(str3, chars1));
assertEquals(false, StringUtils.containsNone(str3, chars2));
assertEquals(true, StringUtils.containsNone(str3, chars3));
}
/**
* See http://java.sun.com/developer/technicalArticles/Intl/Supplementary/
*/
public void testContainsNone_StringWithBadSupplementaryChars() {
// Test edge case: 1/2 of a (broken) supplementary char
assertEquals(true, StringUtils.containsNone(CharUSuppCharHigh, CharU20001));
assertEquals(-1, CharUSuppCharLow.indexOf(CharU20001));
assertEquals(true, StringUtils.containsNone(CharUSuppCharLow, CharU20001));
assertEquals(-1, CharU20001.indexOf(CharUSuppCharHigh));
assertEquals(true, StringUtils.containsNone(CharU20001, CharUSuppCharHigh));
assertEquals(0, CharU20001.indexOf(CharUSuppCharLow));
assertEquals(false, StringUtils.containsNone(CharU20001, CharUSuppCharLow));
}
/**
* See http://java.sun.com/developer/technicalArticles/Intl/Supplementary/
*/
public void testContainsNone_StringWithSupplementaryChars() {
assertEquals(false, StringUtils.containsNone(CharU20000 + CharU20001, CharU20000));
assertEquals(false, StringUtils.containsNone(CharU20000 + CharU20001, CharU20001));
assertEquals(false, StringUtils.containsNone(CharU20000, CharU20000));
// Sanity check:
assertEquals(-1, CharU20000.indexOf(CharU20001));
assertEquals(0, CharU20000.indexOf(CharU20001.charAt(0)));
assertEquals(-1, CharU20000.indexOf(CharU20001.charAt(1)));
// Test:
assertEquals(true, StringUtils.containsNone(CharU20000, CharU20001));
assertEquals(true, StringUtils.containsNone(CharU20001, CharU20000));
}
public void testContainsOnly_CharArray() {
String str1 = "a";
String str2 = "b";
String str3 = "ab";
char[] chars1= {'b'};
char[] chars2= {'a'};
char[] chars3= {'a', 'b'};
char[] emptyChars = new char[0];
assertEquals(false, StringUtils.containsOnly(null, (char[]) null));
assertEquals(false, StringUtils.containsOnly("", (char[]) null));
assertEquals(false, StringUtils.containsOnly(null, emptyChars));
assertEquals(false, StringUtils.containsOnly(str1, emptyChars));
assertEquals(true, StringUtils.containsOnly("", emptyChars));
assertEquals(true, StringUtils.containsOnly("", chars1));
assertEquals(false, StringUtils.containsOnly(str1, chars1));
assertEquals(true, StringUtils.containsOnly(str1, chars2));
assertEquals(true, StringUtils.containsOnly(str1, chars3));
assertEquals(true, StringUtils.containsOnly(str2, chars1));
assertEquals(false, StringUtils.containsOnly(str2, chars2));
assertEquals(true, StringUtils.containsOnly(str2, chars3));
assertEquals(false, StringUtils.containsOnly(str3, chars1));
assertEquals(false, StringUtils.containsOnly(str3, chars2));
assertEquals(true, StringUtils.containsOnly(str3, chars3));
}
public void testContainsOnly_String() {
String str1 = "a";
String str2 = "b";
String str3 = "ab";
String chars1= "b";
String chars2= "a";
String chars3= "ab";
assertEquals(false, StringUtils.containsOnly(null, (String) null));
assertEquals(false, StringUtils.containsOnly("", (String) null));
assertEquals(false, StringUtils.containsOnly(null, ""));
assertEquals(false, StringUtils.containsOnly(str1, ""));
assertEquals(true, StringUtils.containsOnly("", ""));
assertEquals(true, StringUtils.containsOnly("", chars1));
assertEquals(false, StringUtils.containsOnly(str1, chars1));
assertEquals(true, StringUtils.containsOnly(str1, chars2));
assertEquals(true, StringUtils.containsOnly(str1, chars3));
assertEquals(true, StringUtils.containsOnly(str2, chars1));
assertEquals(false, StringUtils.containsOnly(str2, chars2));
assertEquals(true, StringUtils.containsOnly(str2, chars3));
assertEquals(false, StringUtils.containsOnly(str3, chars1));
assertEquals(false, StringUtils.containsOnly(str3, chars2));
assertEquals(true, StringUtils.containsOnly(str3, chars3));
}
public void testEquals() {
assertEquals(true, StringUtils.equals(null, null));
assertEquals(true, StringUtils.equals(FOO, FOO));
assertEquals(true, StringUtils.equals(FOO, new String(new char[] { 'f', 'o', 'o' })));
assertEquals(false, StringUtils.equals(FOO, new String(new char[] { 'f', 'O', 'O' })));
assertEquals(false, StringUtils.equals(FOO, BAR));
assertEquals(false, StringUtils.equals(FOO, null));
assertEquals(false, StringUtils.equals(null, FOO));
}
public void testEqualsIgnoreCase() {
assertEquals(true, StringUtils.equalsIgnoreCase(null, null));
assertEquals(true, StringUtils.equalsIgnoreCase(FOO, FOO));
assertEquals(true, StringUtils.equalsIgnoreCase(FOO, new String(new char[] { 'f', 'o', 'o' })));
assertEquals(true, StringUtils.equalsIgnoreCase(FOO, new String(new char[] { 'f', 'O', 'O' })));
assertEquals(false, StringUtils.equalsIgnoreCase(FOO, BAR));
assertEquals(false, StringUtils.equalsIgnoreCase(FOO, null));
assertEquals(false, StringUtils.equalsIgnoreCase(null, FOO));
}
//-----------------------------------------------------------------------
public void testIndexOf_char() {
assertEquals(-1, StringUtils.indexOf(null, ' '));
assertEquals(-1, StringUtils.indexOf("", ' '));
assertEquals(0, StringUtils.indexOf("aabaabaa", 'a'));
assertEquals(2, StringUtils.indexOf("aabaabaa", 'b'));
}
public void testIndexOf_charInt() {
assertEquals(-1, StringUtils.indexOf(null, ' ', 0));
assertEquals(-1, StringUtils.indexOf(null, ' ', -1));
assertEquals(-1, StringUtils.indexOf("", ' ', 0));
assertEquals(-1, StringUtils.indexOf("", ' ', -1));
assertEquals(0, StringUtils.indexOf("aabaabaa", 'a', 0));
assertEquals(2, StringUtils.indexOf("aabaabaa", 'b', 0));
assertEquals(5, StringUtils.indexOf("aabaabaa", 'b', 3));
assertEquals(-1, StringUtils.indexOf("aabaabaa", 'b', 9));
assertEquals(2, StringUtils.indexOf("aabaabaa", 'b', -1));
}
public void testIndexOf_String() {
assertEquals(-1, StringUtils.indexOf(null, null));
assertEquals(-1, StringUtils.indexOf("", null));
assertEquals(0, StringUtils.indexOf("", ""));
assertEquals(0, StringUtils.indexOf("aabaabaa", "a"));
assertEquals(2, StringUtils.indexOf("aabaabaa", "b"));
assertEquals(1, StringUtils.indexOf("aabaabaa", "ab"));
assertEquals(0, StringUtils.indexOf("aabaabaa", ""));
}
public void testIndexOf_StringInt() {
assertEquals(-1, StringUtils.indexOf(null, null, 0));
assertEquals(-1, StringUtils.indexOf(null, null, -1));
assertEquals(-1, StringUtils.indexOf(null, "", 0));
assertEquals(-1, StringUtils.indexOf(null, "", -1));
assertEquals(-1, StringUtils.indexOf("", null, 0));
assertEquals(-1, StringUtils.indexOf("", null, -1));
assertEquals(0, StringUtils.indexOf("", "", 0));
assertEquals(0, StringUtils.indexOf("", "", -1));
assertEquals(0, StringUtils.indexOf("", "", 9));
assertEquals(0, StringUtils.indexOf("abc", "", 0));
assertEquals(0, StringUtils.indexOf("abc", "", -1));
assertEquals(3, StringUtils.indexOf("abc", "", 9));
assertEquals(3, StringUtils.indexOf("abc", "", 3));
assertEquals(0, StringUtils.indexOf("aabaabaa", "a", 0));
assertEquals(2, StringUtils.indexOf("aabaabaa", "b", 0));
assertEquals(1, StringUtils.indexOf("aabaabaa", "ab", 0));
assertEquals(5, StringUtils.indexOf("aabaabaa", "b", 3));
assertEquals(-1, StringUtils.indexOf("aabaabaa", "b", 9));
assertEquals(2, StringUtils.indexOf("aabaabaa", "b", -1));
assertEquals(2,StringUtils.indexOf("aabaabaa", "", 2));
}
public void testIndexOfAny_StringCharArray() {
assertEquals(-1, StringUtils.indexOfAny(null, (char[]) null));
assertEquals(-1, StringUtils.indexOfAny(null, new char[0]));
assertEquals(-1, StringUtils.indexOfAny(null, new char[] {'a','b'}));
assertEquals(-1, StringUtils.indexOfAny("", (char[]) null));
assertEquals(-1, StringUtils.indexOfAny("", new char[0]));
assertEquals(-1, StringUtils.indexOfAny("", new char[] {'a','b'}));
assertEquals(-1, StringUtils.indexOfAny("zzabyycdxx", (char[]) null));
assertEquals(-1, StringUtils.indexOfAny("zzabyycdxx", new char[0]));
assertEquals(0, StringUtils.indexOfAny("zzabyycdxx", new char[] {'z','a'}));
assertEquals(3, StringUtils.indexOfAny("zzabyycdxx", new char[] {'b','y'}));
assertEquals(-1, StringUtils.indexOfAny("ab", new char[] {'z'}));
}
/**
* See http://java.sun.com/developer/technicalArticles/Intl/Supplementary/
*/
public void testIndexOfAny_StringCharArrayWithSupplementaryChars() {
assertEquals(0, StringUtils.indexOfAny(CharU20000 + CharU20001, CharU20000.toCharArray()));
assertEquals(2, StringUtils.indexOfAny(CharU20000 + CharU20001, CharU20001.toCharArray()));
assertEquals(0, StringUtils.indexOfAny(CharU20000, CharU20000.toCharArray()));
assertEquals(-1, StringUtils.indexOfAny(CharU20000, CharU20001.toCharArray()));
}
public void testIndexOfAny_StringString() {
assertEquals(-1, StringUtils.indexOfAny(null, (String) null));
assertEquals(-1, StringUtils.indexOfAny(null, ""));
assertEquals(-1, StringUtils.indexOfAny(null, "ab"));
assertEquals(-1, StringUtils.indexOfAny("", (String) null));
assertEquals(-1, StringUtils.indexOfAny("", ""));
assertEquals(-1, StringUtils.indexOfAny("", "ab"));
assertEquals(-1, StringUtils.indexOfAny("zzabyycdxx", (String) null));
assertEquals(-1, StringUtils.indexOfAny("zzabyycdxx", ""));
assertEquals(0, StringUtils.indexOfAny("zzabyycdxx", "za"));
assertEquals(3, StringUtils.indexOfAny("zzabyycdxx", "by"));
assertEquals(-1, StringUtils.indexOfAny("ab", "z"));
}
public void testIndexOfAny_StringStringArray() {
assertEquals(-1, StringUtils.indexOfAny(null, (String[]) null));
assertEquals(-1, StringUtils.indexOfAny(null, FOOBAR_SUB_ARRAY));
assertEquals(-1, StringUtils.indexOfAny(FOOBAR, (String[]) null));
assertEquals(2, StringUtils.indexOfAny(FOOBAR, FOOBAR_SUB_ARRAY));
assertEquals(-1, StringUtils.indexOfAny(FOOBAR, new String[0]));
assertEquals(-1, StringUtils.indexOfAny(null, new String[0]));
assertEquals(-1, StringUtils.indexOfAny("", new String[0]));
assertEquals(-1, StringUtils.indexOfAny(FOOBAR, new String[] {"llll"}));
assertEquals(0, StringUtils.indexOfAny(FOOBAR, new String[] {""}));
assertEquals(0, StringUtils.indexOfAny("", new String[] {""}));
assertEquals(-1, StringUtils.indexOfAny("", new String[] {"a"}));
assertEquals(-1, StringUtils.indexOfAny("", new String[] {null}));
assertEquals(-1, StringUtils.indexOfAny(FOOBAR, new String[] {null}));
assertEquals(-1, StringUtils.indexOfAny(null, new String[] {null}));
}
/**
* See http://java.sun.com/developer/technicalArticles/Intl/Supplementary/
*/
public void testIndexOfAny_StringStringWithSupplementaryChars() {
assertEquals(0, StringUtils.indexOfAny(CharU20000 + CharU20001, CharU20000));
assertEquals(2, StringUtils.indexOfAny(CharU20000 + CharU20001, CharU20001));
assertEquals(0, StringUtils.indexOfAny(CharU20000, CharU20000));
assertEquals(-1, StringUtils.indexOfAny(CharU20000, CharU20001));
}
public void testIndexOfAnyBut_StringCharArray() {
assertEquals(-1, StringUtils.indexOfAnyBut(null, (char[]) null));
assertEquals(-1, StringUtils.indexOfAnyBut(null, new char[0]));
assertEquals(-1, StringUtils.indexOfAnyBut(null, new char[] {'a','b'}));
assertEquals(-1, StringUtils.indexOfAnyBut("", (char[]) null));
assertEquals(-1, StringUtils.indexOfAnyBut("", new char[0]));
assertEquals(-1, StringUtils.indexOfAnyBut("", new char[] {'a','b'}));
assertEquals(-1, StringUtils.indexOfAnyBut("zzabyycdxx", (char[]) null));
assertEquals(-1, StringUtils.indexOfAnyBut("zzabyycdxx", new char[0]));
assertEquals(3, StringUtils.indexOfAnyBut("zzabyycdxx", new char[] {'z','a'}));
assertEquals(0, StringUtils.indexOfAnyBut("zzabyycdxx", new char[] {'b','y'}));
assertEquals(-1, StringUtils.indexOfAnyBut("aba", new char[] {'a', 'b'}));
assertEquals(0, StringUtils.indexOfAnyBut("aba", new char[] {'z'}));
}
public void testIndexOfAnyBut_StringCharArrayWithSupplementaryChars() {
assertEquals(2, StringUtils.indexOfAnyBut(CharU20000 + CharU20001, CharU20000.toCharArray()));
assertEquals(0, StringUtils.indexOfAnyBut(CharU20000 + CharU20001, CharU20001.toCharArray()));
assertEquals(-1, StringUtils.indexOfAnyBut(CharU20000, CharU20000.toCharArray()));
assertEquals(0, StringUtils.indexOfAnyBut(CharU20000, CharU20001.toCharArray()));
}
public void testIndexOfAnyBut_StringString() {
assertEquals(-1, StringUtils.indexOfAnyBut(null, (String) null));
assertEquals(-1, StringUtils.indexOfAnyBut(null, ""));
assertEquals(-1, StringUtils.indexOfAnyBut(null, "ab"));
assertEquals(-1, StringUtils.indexOfAnyBut("", (String) null));
assertEquals(-1, StringUtils.indexOfAnyBut("", ""));
assertEquals(-1, StringUtils.indexOfAnyBut("", "ab"));
assertEquals(-1, StringUtils.indexOfAnyBut("zzabyycdxx", (String) null));
assertEquals(-1, StringUtils.indexOfAnyBut("zzabyycdxx", ""));
assertEquals(3, StringUtils.indexOfAnyBut("zzabyycdxx", "za"));
assertEquals(0, StringUtils.indexOfAnyBut("zzabyycdxx", "by"));
assertEquals(0, StringUtils.indexOfAnyBut("ab", "z"));
}
public void testIndexOfAnyBut_StringStringWithSupplementaryChars() {
assertEquals(2, StringUtils.indexOfAnyBut(CharU20000 + CharU20001, CharU20000));
assertEquals(0, StringUtils.indexOfAnyBut(CharU20000 + CharU20001, CharU20001));
assertEquals(-1, StringUtils.indexOfAnyBut(CharU20000, CharU20000));
assertEquals(0, StringUtils.indexOfAnyBut(CharU20000, CharU20001));
}
public void testIndexOfIgnoreCase_String() {
assertEquals(-1, StringUtils.indexOfIgnoreCase(null, null));
assertEquals(-1, StringUtils.indexOfIgnoreCase(null, ""));
assertEquals(-1, StringUtils.indexOfIgnoreCase("", null));
assertEquals(0, StringUtils.indexOfIgnoreCase("", ""));
assertEquals(0, StringUtils.indexOfIgnoreCase("aabaabaa", "a"));
assertEquals(0, StringUtils.indexOfIgnoreCase("aabaabaa", "A"));
assertEquals(2, StringUtils.indexOfIgnoreCase("aabaabaa", "b"));
assertEquals(2, StringUtils.indexOfIgnoreCase("aabaabaa", "B"));
assertEquals(1, StringUtils.indexOfIgnoreCase("aabaabaa", "ab"));
assertEquals(1, StringUtils.indexOfIgnoreCase("aabaabaa", "AB"));
assertEquals(0, StringUtils.indexOfIgnoreCase("aabaabaa", ""));
}
public void testIndexOfIgnoreCase_StringInt() {
assertEquals(1, StringUtils.indexOfIgnoreCase("aabaabaa", "AB", -1));
assertEquals(1, StringUtils.indexOfIgnoreCase("aabaabaa", "AB", 0));
assertEquals(1, StringUtils.indexOfIgnoreCase("aabaabaa", "AB", 1));
assertEquals(4, StringUtils.indexOfIgnoreCase("aabaabaa", "AB", 2));
assertEquals(4, StringUtils.indexOfIgnoreCase("aabaabaa", "AB", 3));
assertEquals(4, StringUtils.indexOfIgnoreCase("aabaabaa", "AB", 4));
assertEquals(-1, StringUtils.indexOfIgnoreCase("aabaabaa", "AB", 5));
assertEquals(-1, StringUtils.indexOfIgnoreCase("aabaabaa", "AB", 6));
assertEquals(-1, StringUtils.indexOfIgnoreCase("aabaabaa", "AB", 7));
assertEquals(-1, StringUtils.indexOfIgnoreCase("aabaabaa", "AB", 8));
assertEquals(1, StringUtils.indexOfIgnoreCase("aab", "AB", 1));
assertEquals(5, StringUtils.indexOfIgnoreCase("aabaabaa", "", 5));
assertEquals(-1, StringUtils.indexOfIgnoreCase("ab", "AAB", 0));
assertEquals(-1, StringUtils.indexOfIgnoreCase("aab", "AAB", 1));
}
public void testLastIndexOf_char() {
assertEquals(-1, StringUtils.lastIndexOf(null, ' '));
assertEquals(-1, StringUtils.lastIndexOf("", ' '));
assertEquals(7, StringUtils.lastIndexOf("aabaabaa", 'a'));
assertEquals(5, StringUtils.lastIndexOf("aabaabaa", 'b'));
}
public void testLastIndexOf_charInt() {
assertEquals(-1, StringUtils.lastIndexOf(null, ' ', 0));
assertEquals(-1, StringUtils.lastIndexOf(null, ' ', -1));
assertEquals(-1, StringUtils.lastIndexOf("", ' ', 0));
assertEquals(-1, StringUtils.lastIndexOf("", ' ', -1));
assertEquals(7, StringUtils.lastIndexOf("aabaabaa", 'a', 8));
assertEquals(5, StringUtils.lastIndexOf("aabaabaa", 'b', 8));
assertEquals(2, StringUtils.lastIndexOf("aabaabaa", 'b', 3));
assertEquals(5, StringUtils.lastIndexOf("aabaabaa", 'b', 9));
assertEquals(-1, StringUtils.lastIndexOf("aabaabaa", 'b', -1));
assertEquals(0, StringUtils.lastIndexOf("aabaabaa", 'a', 0));
}
public void testLastIndexOf_String() {
assertEquals(-1, StringUtils.lastIndexOf(null, null));
assertEquals(-1, StringUtils.lastIndexOf("", null));
assertEquals(-1, StringUtils.lastIndexOf("", "a"));
assertEquals(0, StringUtils.lastIndexOf("", ""));
assertEquals(8, StringUtils.lastIndexOf("aabaabaa", ""));
assertEquals(7, StringUtils.lastIndexOf("aabaabaa", "a"));
assertEquals(5, StringUtils.lastIndexOf("aabaabaa", "b"));
assertEquals(4, StringUtils.lastIndexOf("aabaabaa", "ab"));
}
public void testLastIndexOf_StringInt() {
assertEquals(-1, StringUtils.lastIndexOf(null, null, 0));
assertEquals(-1, StringUtils.lastIndexOf(null, null, -1));
assertEquals(-1, StringUtils.lastIndexOf(null, "", 0));
assertEquals(-1, StringUtils.lastIndexOf(null, "", -1));
assertEquals(-1, StringUtils.lastIndexOf("", null, 0));
assertEquals(-1, StringUtils.lastIndexOf("", null, -1));
assertEquals(0, StringUtils.lastIndexOf("", "", 0));
assertEquals(-1, StringUtils.lastIndexOf("", "", -1));
assertEquals(0, StringUtils.lastIndexOf("", "", 9));
assertEquals(0, StringUtils.lastIndexOf("abc", "", 0));
assertEquals(-1, StringUtils.lastIndexOf("abc", "", -1));
assertEquals(3, StringUtils.lastIndexOf("abc", "", 9));
assertEquals(7, StringUtils.lastIndexOf("aabaabaa", "a", 8));
assertEquals(5, StringUtils.lastIndexOf("aabaabaa", "b", 8));
assertEquals(4, StringUtils.lastIndexOf("aabaabaa", "ab", 8));
assertEquals(2, StringUtils.lastIndexOf("aabaabaa", "b", 3));
assertEquals(5, StringUtils.lastIndexOf("aabaabaa", "b", 9));
assertEquals(-1, StringUtils.lastIndexOf("aabaabaa", "b", -1));
assertEquals(-1, StringUtils.lastIndexOf("aabaabaa", "b", 0));
assertEquals(0, StringUtils.lastIndexOf("aabaabaa", "a", 0));
}
public void testLastIndexOfAny_StringStringArray() {
assertEquals(-1, StringUtils.lastIndexOfAny(null, null));
assertEquals(-1, StringUtils.lastIndexOfAny(null, FOOBAR_SUB_ARRAY));
assertEquals(-1, StringUtils.lastIndexOfAny(FOOBAR, null));
assertEquals(3, StringUtils.lastIndexOfAny(FOOBAR, FOOBAR_SUB_ARRAY));
assertEquals(-1, StringUtils.lastIndexOfAny(FOOBAR, new String[0]));
assertEquals(-1, StringUtils.lastIndexOfAny(null, new String[0]));
assertEquals(-1, StringUtils.lastIndexOfAny("", new String[0]));
assertEquals(-1, StringUtils.lastIndexOfAny(FOOBAR, new String[] {"llll"}));
assertEquals(6, StringUtils.lastIndexOfAny(FOOBAR, new String[] {""}));
assertEquals(0, StringUtils.lastIndexOfAny("", new String[] {""}));
assertEquals(-1, StringUtils.lastIndexOfAny("", new String[] {"a"}));
assertEquals(-1, StringUtils.lastIndexOfAny("", new String[] {null}));
assertEquals(-1, StringUtils.lastIndexOfAny(FOOBAR, new String[] {null}));
assertEquals(-1, StringUtils.lastIndexOfAny(null, new String[] {null}));
}
public void testLastIndexOfIgnoreCase_String() {
assertEquals(-1, StringUtils.lastIndexOfIgnoreCase(null, null));
assertEquals(-1, StringUtils.lastIndexOfIgnoreCase("", null));
assertEquals(-1, StringUtils.lastIndexOfIgnoreCase(null, ""));
assertEquals(-1, StringUtils.lastIndexOfIgnoreCase("", "a"));
assertEquals(0, StringUtils.lastIndexOfIgnoreCase("", ""));
assertEquals(8, StringUtils.lastIndexOfIgnoreCase("aabaabaa", ""));
assertEquals(7, StringUtils.lastIndexOfIgnoreCase("aabaabaa", "a"));
assertEquals(7, StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A"));
assertEquals(5, StringUtils.lastIndexOfIgnoreCase("aabaabaa", "b"));
assertEquals(5, StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B"));
assertEquals(4, StringUtils.lastIndexOfIgnoreCase("aabaabaa", "ab"));
assertEquals(4, StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB"));
assertEquals(-1, StringUtils.lastIndexOfIgnoreCase("ab", "AAB"));
assertEquals(0, StringUtils.lastIndexOfIgnoreCase("aab", "AAB"));
}
public void testLastIndexOfIgnoreCase_StringInt() {
assertEquals(-1, StringUtils.lastIndexOfIgnoreCase(null, null, 0));
assertEquals(-1, StringUtils.lastIndexOfIgnoreCase(null, null, -1));
assertEquals(-1, StringUtils.lastIndexOfIgnoreCase(null, "", 0));
assertEquals(-1, StringUtils.lastIndexOfIgnoreCase(null, "", -1));
assertEquals(-1, StringUtils.lastIndexOfIgnoreCase("", null, 0));
assertEquals(-1, StringUtils.lastIndexOfIgnoreCase("", null, -1));
assertEquals(0, StringUtils.lastIndexOfIgnoreCase("", "", 0));
assertEquals(-1, StringUtils.lastIndexOfIgnoreCase("", "", -1));
assertEquals(0, StringUtils.lastIndexOfIgnoreCase("", "", 9));
assertEquals(0, StringUtils.lastIndexOfIgnoreCase("abc", "", 0));
assertEquals(-1, StringUtils.lastIndexOfIgnoreCase("abc", "", -1));
assertEquals(3, StringUtils.lastIndexOfIgnoreCase("abc", "", 9));
assertEquals(7, StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 8));
assertEquals(5, StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 8));
assertEquals(4, StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB", 8));
assertEquals(2, StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 3));
assertEquals(5, StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 9));
assertEquals(-1, StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", -1));
assertEquals(-1, StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 0));
assertEquals(0, StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 0));
assertEquals(1, StringUtils.lastIndexOfIgnoreCase("aab", "AB", 1));
}
public void testLastOrdinalIndexOf() {
assertEquals(-1, StringUtils.lastOrdinalIndexOf(null, "*", 42) );
assertEquals(-1, StringUtils.lastOrdinalIndexOf("*", null, 42) );
assertEquals(0, StringUtils.lastOrdinalIndexOf("", "", 42) );
assertEquals(7, StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 1) );
assertEquals(6, StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 2) );
assertEquals(5, StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 1) );
assertEquals(2, StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 2) );
assertEquals(4, StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 1) );
assertEquals(1, StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 2) );
assertEquals(8, StringUtils.lastOrdinalIndexOf("aabaabaa", "", 1) );
assertEquals(8, StringUtils.lastOrdinalIndexOf("aabaabaa", "", 2) );
}
public void testOrdinalIndexOf() {
assertEquals(-1, StringUtils.ordinalIndexOf(null, null, Integer.MIN_VALUE));
assertEquals(-1, StringUtils.ordinalIndexOf("", null, Integer.MIN_VALUE));
assertEquals(-1, StringUtils.ordinalIndexOf("", "", Integer.MIN_VALUE));
assertEquals(-1, StringUtils.ordinalIndexOf("aabaabaa", "a", Integer.MIN_VALUE));
assertEquals(-1, StringUtils.ordinalIndexOf("aabaabaa", "b", Integer.MIN_VALUE));
assertEquals(-1, StringUtils.ordinalIndexOf("aabaabaa", "ab", Integer.MIN_VALUE));
assertEquals(-1, StringUtils.ordinalIndexOf("aabaabaa", "", Integer.MIN_VALUE));
assertEquals(-1, StringUtils.ordinalIndexOf(null, null, -1));
assertEquals(-1, StringUtils.ordinalIndexOf("", null, -1));
assertEquals(-1, StringUtils.ordinalIndexOf("", "", -1));
assertEquals(-1, StringUtils.ordinalIndexOf("aabaabaa", "a", -1));
assertEquals(-1, StringUtils.ordinalIndexOf("aabaabaa", "b", -1));
assertEquals(-1, StringUtils.ordinalIndexOf("aabaabaa", "ab", -1));
assertEquals(-1, StringUtils.ordinalIndexOf("aabaabaa", "", -1));
assertEquals(-1, StringUtils.ordinalIndexOf(null, null, 0));
assertEquals(-1, StringUtils.ordinalIndexOf("", null, 0));
assertEquals(-1, StringUtils.ordinalIndexOf("", "", 0));
assertEquals(-1, StringUtils.ordinalIndexOf("aabaabaa", "a", 0));
assertEquals(-1, StringUtils.ordinalIndexOf("aabaabaa", "b", 0));
assertEquals(-1, StringUtils.ordinalIndexOf("aabaabaa", "ab", 0));
assertEquals(-1, StringUtils.ordinalIndexOf("aabaabaa", "", 0));
assertEquals(-1, StringUtils.ordinalIndexOf(null, null, 1));
assertEquals(-1, StringUtils.ordinalIndexOf("", null, 1));
assertEquals(0, StringUtils.ordinalIndexOf("", "", 1));
assertEquals(0, StringUtils.ordinalIndexOf("aabaabaa", "a", 1));
assertEquals(2, StringUtils.ordinalIndexOf("aabaabaa", "b", 1));
assertEquals(1, StringUtils.ordinalIndexOf("aabaabaa", "ab", 1));
assertEquals(0, StringUtils.ordinalIndexOf("aabaabaa", "", 1));
assertEquals(-1, StringUtils.ordinalIndexOf(null, null, 2));
assertEquals(-1, StringUtils.ordinalIndexOf("", null, 2));
assertEquals(0, StringUtils.ordinalIndexOf("", "", 2));
assertEquals(1, StringUtils.ordinalIndexOf("aabaabaa", "a", 2));
assertEquals(5, StringUtils.ordinalIndexOf("aabaabaa", "b", 2));
assertEquals(4, StringUtils.ordinalIndexOf("aabaabaa", "ab", 2));
assertEquals(0, StringUtils.ordinalIndexOf("aabaabaa", "", 2));
assertEquals(-1, StringUtils.ordinalIndexOf(null, null, Integer.MAX_VALUE));
assertEquals(-1, StringUtils.ordinalIndexOf("", null, Integer.MAX_VALUE));
assertEquals(0, StringUtils.ordinalIndexOf("", "", Integer.MAX_VALUE));
assertEquals(-1, StringUtils.ordinalIndexOf("aabaabaa", "a", Integer.MAX_VALUE));
assertEquals(-1, StringUtils.ordinalIndexOf("aabaabaa", "b", Integer.MAX_VALUE));
assertEquals(-1, StringUtils.ordinalIndexOf("aabaabaa", "ab", Integer.MAX_VALUE));
assertEquals(0, StringUtils.ordinalIndexOf("aabaabaa", "", Integer.MAX_VALUE));
assertEquals(-1, StringUtils.ordinalIndexOf("aaaaaaaaa", "a", 0));
assertEquals(0, StringUtils.ordinalIndexOf("aaaaaaaaa", "a", 1));
assertEquals(1, StringUtils.ordinalIndexOf("aaaaaaaaa", "a", 2));
assertEquals(2, StringUtils.ordinalIndexOf("aaaaaaaaa", "a", 3));
assertEquals(3, StringUtils.ordinalIndexOf("aaaaaaaaa", "a", 4));
assertEquals(4, StringUtils.ordinalIndexOf("aaaaaaaaa", "a", 5));
assertEquals(5, StringUtils.ordinalIndexOf("aaaaaaaaa", "a", 6));
assertEquals(6, StringUtils.ordinalIndexOf("aaaaaaaaa", "a", 7));
assertEquals(7, StringUtils.ordinalIndexOf("aaaaaaaaa", "a", 8));
assertEquals(8, StringUtils.ordinalIndexOf("aaaaaaaaa", "a", 9));
assertEquals(-1, StringUtils.ordinalIndexOf("aaaaaaaaa", "a", 10));
}
}