@@ -388,11 +388,9 @@ void testIndexOfAny_StringCharArray() {
388388 assertEquals (-1 , StringUtils .indexOfAny (null , (char []) null ));
389389 assertEquals (-1 , StringUtils .indexOfAny (null , new char [0 ]));
390390 assertEquals (-1 , StringUtils .indexOfAny (null , 'a' , 'b' ));
391-
392391 assertEquals (-1 , StringUtils .indexOfAny ("" , (char []) null ));
393392 assertEquals (-1 , StringUtils .indexOfAny ("" , new char [0 ]));
394393 assertEquals (-1 , StringUtils .indexOfAny ("" , 'a' , 'b' ));
395-
396394 assertEquals (-1 , StringUtils .indexOfAny ("zzabyycdxx" , (char []) null ));
397395 assertEquals (-1 , StringUtils .indexOfAny ("zzabyycdxx" , new char [0 ]));
398396 assertEquals (0 , StringUtils .indexOfAny ("zzabyycdxx" , 'z' , 'a' ));
@@ -404,6 +402,42 @@ void testIndexOfAny_StringCharArray() {
404402 assertEquals (0 , StringUtils .indexOfAny ("cbda" , 'a' , 'b' , 'c' , 'd' ));
405403 }
406404
405+ @ Test
406+ void testIndexOfAny_StringIntCharArray () {
407+ // default cases
408+ assertEquals (-1 , StringUtils .indexOfAny (null , 0 , (char []) null ));
409+ assertEquals (-1 , StringUtils .indexOfAny (null , 0 , new char [0 ]));
410+ assertEquals (-1 , StringUtils .indexOfAny (null , 0 , 'a' , 'b' ));
411+ assertEquals (-1 , StringUtils .indexOfAny ("" , 0 , (char []) null ));
412+ assertEquals (-1 , StringUtils .indexOfAny ("" , 0 , new char [0 ]));
413+ assertEquals (-1 , StringUtils .indexOfAny ("" , 0 , 'a' , 'b' ));
414+ assertEquals (-1 , StringUtils .indexOfAny ("zzabyycdxx" , 0 , (char []) null ));
415+ assertEquals (-1 , StringUtils .indexOfAny ("zzabyycdxx" , 0 , new char [0 ]));
416+ assertEquals (0 , StringUtils .indexOfAny ("zzabyycdxx" , 0 , 'z' , 'a' ));
417+ assertEquals (3 , StringUtils .indexOfAny ("zzabyycdxx" , 0 , 'b' , 'y' ));
418+ assertEquals (-1 , StringUtils .indexOfAny ("ab" , 0 , 'z' ));
419+ // if more than one search char is present, the order of the search chars matters:
420+ assertEquals (0 , StringUtils .indexOfAny ("abcd" , 0 , 'a' , 'b' , 'c' , 'd' ));
421+ assertEquals (0 , StringUtils .indexOfAny ("bcda" , 0 , 'a' , 'b' , 'c' , 'd' ));
422+ assertEquals (0 , StringUtils .indexOfAny ("cbda" , 0 , 'a' , 'b' , 'c' , 'd' ));
423+ // Actually use the index
424+ assertEquals (-1 , StringUtils .indexOfAny (null , 1 , (char []) null ));
425+ assertEquals (-1 , StringUtils .indexOfAny (null , 1 , new char [0 ]));
426+ assertEquals (-1 , StringUtils .indexOfAny (null , 1 , 'a' , 'b' ));
427+ assertEquals (-1 , StringUtils .indexOfAny ("" , 1 , (char []) null ));
428+ assertEquals (-1 , StringUtils .indexOfAny ("" , 1 , new char [0 ]));
429+ assertEquals (-1 , StringUtils .indexOfAny ("" , 1 , 'a' , 'b' ));
430+ assertEquals (-1 , StringUtils .indexOfAny ("zzabyycdxx" , 1 , (char []) null ));
431+ assertEquals (-1 , StringUtils .indexOfAny ("zzabyycdxx" , 1 , new char [0 ]));
432+ assertEquals (1 , StringUtils .indexOfAny ("zzabyycdxx" , 1 , 'z' , 'a' ));
433+ assertEquals (3 , StringUtils .indexOfAny ("zzabyycdxx" , 1 , 'b' , 'y' ));
434+ assertEquals (-1 , StringUtils .indexOfAny ("ab" , 1 , 'z' ));
435+ // if more than one search char is present, the order of the search chars matters:
436+ assertEquals (1 , StringUtils .indexOfAny ("abcd" , 1 , 'a' , 'b' , 'c' , 'd' ));
437+ assertEquals (1 , StringUtils .indexOfAny ("bcda" , 1 , 'a' , 'b' , 'c' , 'd' ));
438+ assertEquals (1 , StringUtils .indexOfAny ("cbda" , 1 , 'a' , 'b' , 'c' , 'd' ));
439+ }
440+
407441 /**
408442 * See https://www.oracle.com/technical-resources/articles/javase/supplementary.html
409443 */
0 commit comments