@@ -967,6 +967,81 @@ public static void EndsWithNoMatchNonOrdinal_StringComparison()
967
967
Assert . IsFalse ( s . EndsWith ( value ) ) ;
968
968
}
969
969
970
+ [ TestMethod ]
971
+ public void IndexOf_should_return_first_index_of_value ( )
972
+ {
973
+ // TODO: Check docs to confirm constraints on "count". Currently ArgumentOutOfRangeException is thrown if start + count exceeds string.Length
974
+ var source = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz" ;
975
+
976
+ Assert . AreEqual ( 0 , source . IndexOf ( 'a' ) , "Case 1" ) ;
977
+ Assert . AreEqual ( 26 , source . IndexOf ( 'a' , 1 ) , "Case 2" ) ;
978
+ Assert . AreEqual ( 26 , source . IndexOf ( 'a' , 1 , source . Length - 1 ) , "Case 3" ) ;
979
+ Assert . AreEqual ( 0 , source . IndexOf ( "a" ) , "Case 4" ) ;
980
+ Assert . AreEqual ( 26 , source . IndexOf ( "a" , 1 ) , "Case 5" ) ;
981
+ Assert . AreEqual ( 26 , source . IndexOf ( "a" , 1 , source . Length - 1 ) , "Case 6" ) ;
982
+ }
983
+
984
+ [ TestMethod ]
985
+ public void IndexOf_should_return_negative_one_if_source_is_empty_string ( )
986
+ {
987
+ Assert . AreEqual ( - 1 , string . Empty . IndexOf ( '.' ) , "Case 1" ) ;
988
+ Assert . AreEqual ( - 1 , string . Empty . IndexOf ( '.' , 1 ) , "Case 2" ) ;
989
+ Assert . AreEqual ( - 1 , string . Empty . IndexOf ( '.' , 1 , 2 ) , "Case 3" ) ;
990
+ Assert . AreEqual ( - 1 , string . Empty . IndexOf ( "." ) , "Case 4" ) ;
991
+ Assert . AreEqual ( - 1 , string . Empty . IndexOf ( "." , 1 ) , "Case 5" ) ;
992
+ Assert . AreEqual ( - 1 , string . Empty . IndexOf ( "." , 1 , 2 ) , "Case 6" ) ;
993
+ }
994
+
995
+ [ TestMethod ]
996
+ public void IndexOf_should_return_negative_one_if_value_is_not_found ( )
997
+ {
998
+ var source = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz" ;
999
+
1000
+ Assert . AreEqual ( - 1 , source . IndexOf ( '.' ) , "Case 1" ) ;
1001
+ Assert . AreEqual ( - 1 , source . IndexOf ( '.' , 1 ) , "Case 2" ) ;
1002
+ Assert . AreEqual ( - 1 , source . IndexOf ( '.' , 1 , 2 ) , "Case 3" ) ;
1003
+ Assert . AreEqual ( - 1 , source . IndexOf ( "." ) , "Case 4" ) ;
1004
+ Assert . AreEqual ( - 1 , source . IndexOf ( "." , 1 ) , "Case 5" ) ;
1005
+ Assert . AreEqual ( - 1 , source . IndexOf ( "." , 1 , 2 ) , "Case 6" ) ;
1006
+ }
1007
+
1008
+ [ TestMethod ]
1009
+ public void LastIndexOf_should_return_last_index_of_value ( )
1010
+ {
1011
+ var source = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz" ;
1012
+
1013
+ Assert . AreEqual ( 26 , source . LastIndexOf ( 'a' ) , "Case 1" ) ;
1014
+ Assert . AreEqual ( 0 , source . LastIndexOf ( 'a' , 1 ) , "Case 2" ) ;
1015
+ Assert . AreEqual ( 0 , source . LastIndexOf ( 'a' , 1 , 2 ) , "Case 3" ) ;
1016
+ Assert . AreEqual ( 26 , source . LastIndexOf ( "a" ) , "Case 4" ) ;
1017
+ Assert . AreEqual ( 0 , source . LastIndexOf ( "a" , 1 ) , "Case 5" ) ;
1018
+ Assert . AreEqual ( 0 , source . LastIndexOf ( "a" , 1 , 2 ) , "Case 6" ) ;
1019
+ }
1020
+
1021
+ [ TestMethod ]
1022
+ public void LastIndexOf_should_return_negative_one_if_source_is_empty_string ( )
1023
+ {
1024
+ Assert . AreEqual ( - 1 , string . Empty . LastIndexOf ( '.' ) , "Case 1" ) ;
1025
+ Assert . AreEqual ( - 1 , string . Empty . LastIndexOf ( '.' , 1 ) , "Case 2" ) ;
1026
+ Assert . AreEqual ( - 1 , string . Empty . LastIndexOf ( '.' , 1 , 2 ) , "Case 3" ) ;
1027
+ Assert . AreEqual ( - 1 , string . Empty . LastIndexOf ( "." ) , "Case 4" ) ;
1028
+ Assert . AreEqual ( - 1 , string . Empty . LastIndexOf ( "." , 1 ) , "Case 5" ) ;
1029
+ Assert . AreEqual ( - 1 , string . Empty . LastIndexOf ( "." , 1 , 2 ) , "Case 6" ) ;
1030
+ }
1031
+
1032
+ [ TestMethod ]
1033
+ public void LastIndexOf_should_return_negative_one_if_value_is_not_found ( )
1034
+ {
1035
+ var source = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz" ;
1036
+
1037
+ Assert . AreEqual ( - 1 , source . LastIndexOf ( '.' ) , "Case 1" ) ;
1038
+ Assert . AreEqual ( - 1 , source . LastIndexOf ( '.' , 1 ) , "Case 2" ) ;
1039
+ Assert . AreEqual ( - 1 , source . LastIndexOf ( '.' , 1 , 2 ) , "Case 3" ) ;
1040
+ Assert . AreEqual ( - 1 , source . LastIndexOf ( "." ) , "Case 4" ) ;
1041
+ Assert . AreEqual ( - 1 , source . LastIndexOf ( "." , 1 ) , "Case 5" ) ;
1042
+ Assert . AreEqual ( - 1 , source . LastIndexOf ( "." , 1 , 2 ) , "Case 6" ) ;
1043
+ }
1044
+
970
1045
/// <summary>
971
1046
/// A class whose ToString method return null
972
1047
/// </summary>
0 commit comments