@@ -12,10 +12,17 @@ public class CompareInfoIndexOfTests : CompareInfoTestsBase
1212 {
1313 public static IEnumerable < object [ ] > IndexOf_TestData ( )
1414 {
15- // Empty string
15+ // Empty string, invariant
1616 yield return new object [ ] { s_invariantCompare , "foo" , "" , 0 , 3 , CompareOptions . None , 0 , 0 } ;
1717 yield return new object [ ] { s_invariantCompare , "foo" , "" , 2 , 1 , CompareOptions . None , 2 , 0 } ;
1818 yield return new object [ ] { s_invariantCompare , "" , "" , 0 , 0 , CompareOptions . None , 0 , 0 } ;
19+ yield return new object [ ] { s_invariantCompare , "" , "foo" , 0 , 0 , CompareOptions . None , - 1 , 0 } ;
20+
21+ // Empty string, using non-invariant (s_germanCompare) CompareInfo to test the ICU path
22+ yield return new object [ ] { s_germanCompare , "foo" , "" , 0 , 3 , CompareOptions . None , 0 , 0 } ;
23+ yield return new object [ ] { s_germanCompare , "foo" , "" , 2 , 1 , CompareOptions . None , 2 , 0 } ;
24+ yield return new object [ ] { s_germanCompare , "" , "" , 0 , 0 , CompareOptions . None , 0 , 0 } ;
25+ yield return new object [ ] { s_germanCompare , "" , "foo" , 0 , 0 , CompareOptions . None , - 1 , 0 } ;
1926
2027 // OrdinalIgnoreCase
2128 yield return new object [ ] { s_invariantCompare , "Hello" , "l" , 0 , 5 , CompareOptions . OrdinalIgnoreCase , 2 , 1 } ;
@@ -138,8 +145,8 @@ public static IEnumerable<object[]> IndexOf_TestData()
138145 }
139146
140147 // Inputs where matched length does not equal value string length
141- yield return new object [ ] { s_germanCompare , "abc Strasse Strasse xyz" , "stra\u00DF e" , 0 , 23 , CompareOptions . IgnoreCase | CompareOptions . IgnoreNonSpace , 4 , 7 } ;
142- yield return new object [ ] { s_germanCompare , "abc stra\u00DF e stra\u00DF e xyz" , "Strasse" , 0 , 21 , CompareOptions . IgnoreCase | CompareOptions . IgnoreNonSpace , 4 , 6 } ;
148+ yield return new object [ ] { s_germanCompare , "abc Strasse Strasse xyz" , "stra\u00DF e" , 0 , 23 , CompareOptions . IgnoreCase | CompareOptions . IgnoreNonSpace , 4 , 7 } ;
149+ yield return new object [ ] { s_germanCompare , "abc stra\u00DF e stra\u00DF e xyz" , "Strasse" , 0 , 21 , CompareOptions . IgnoreCase | CompareOptions . IgnoreNonSpace , 4 , 6 } ;
143150 if ( PlatformDetection . IsNotHybridGlobalizationOnApplePlatform )
144151 {
145152 yield return new object [ ] { s_invariantCompare , "abcdzxyz" , "\u01F3 " , 0 , 8 , CompareOptions . IgnoreNonSpace , 3 , 2 } ;
@@ -153,7 +160,7 @@ public static IEnumerable<object[]> IndexOf_Aesc_Ligature_TestData()
153160 {
154161 bool useNls = PlatformDetection . IsNlsGlobalization ;
155162 // Searches for the ligature \u00C6
156- string source1 = "Is AE or ae the same as \u00C6 or \u00E6 ?" ; // 3 failures here
163+ string source1 = "Is AE or ae the same as \u00C6 or \u00E6 ?" ;
157164 yield return new object [ ] { s_invariantCompare , source1 , "AE" , 8 , 18 , CompareOptions . None , useNls ? 24 : - 1 , useNls ? 1 : 0 } ;
158165 yield return new object [ ] { s_invariantCompare , source1 , "ae" , 8 , 18 , CompareOptions . None , 9 , 2 } ;
159166 yield return new object [ ] { s_invariantCompare , source1 , "\u00C6 " , 8 , 18 , CompareOptions . None , 24 , 1 } ;
@@ -171,7 +178,7 @@ public static IEnumerable<object[]> IndexOf_Aesc_Ligature_TestData()
171178 public static IEnumerable < object [ ] > IndexOf_U_WithDiaeresis_TestData ( )
172179 {
173180 // Searches for the combining character sequence Latin capital letter U with diaeresis or Latin small letter u with diaeresis.
174- string source = "Is \u0055 \u0308 or \u0075 \u0308 the same as \u00DC or \u00FC ?" ; // 7 failures here
181+ string source = "Is \u0055 \u0308 or \u0075 \u0308 the same as \u00DC or \u00FC ?" ;
175182 yield return new object [ ] { s_invariantCompare , source , "U\u0308 " , 8 , 18 , CompareOptions . None , 24 , 1 } ;
176183 yield return new object [ ] { s_invariantCompare , source , "u\u0308 " , 8 , 18 , CompareOptions . None , 9 , 2 } ;
177184 yield return new object [ ] { s_invariantCompare , source , "\u00DC " , 8 , 18 , CompareOptions . None , 24 , 1 } ;
0 commit comments