public static void IndexOf_SingleLetter(string s, char target, int startIndex, int count, int expected)
{
bool safeForCurrentCulture =
IsSafeForCurrentCultureComparisons(s)
&& IsSafeForCurrentCultureComparisons(target.ToString());
if (count + startIndex == s.Length)
{
if (startIndex == 0)
{
Assert.Equal(expected, s.IndexOf(target));
Assert.Equal(expected, s.IndexOf(target.ToString(), StringComparison.Ordinal));
Assert.Equal(expected, s.IndexOf(target.ToString(), StringComparison.OrdinalIgnoreCase));
// To be safe we only want to run CurrentCulture comparisons if
// we know the results will not vary depending on location
if (safeForCurrentCulture)
{
Assert.Equal(expected, s.IndexOf(target.ToString()));
Assert.Equal(expected, s.IndexOf(target.ToString(), StringComparison.CurrentCulture));
}
}
Assert.Equal(expected, s.IndexOf(target, startIndex));
Assert.Equal(expected, s.IndexOf(target.ToString(), startIndex, StringComparison.Ordinal));
Assert.Equal(expected, s.IndexOf(target.ToString(), startIndex, StringComparison.OrdinalIgnoreCase));
if (safeForCurrentCulture)
{
Assert.Equal(expected, s.IndexOf(target.ToString(), startIndex));
Assert.Equal(expected, s.IndexOf(target.ToString(), startIndex, StringComparison.CurrentCulture));
}
}
Assert.Equal(expected, s.IndexOf(target, startIndex, count));
Assert.Equal(expected, s.IndexOf(target.ToString(), startIndex, count, StringComparison.Ordinal));
Assert.Equal(expected, s.IndexOf(target.ToString(), startIndex, count, StringComparison.OrdinalIgnoreCase));
if (safeForCurrentCulture)
{
Assert.Equal(expected, s.IndexOf(target.ToString(), startIndex, count));
Assert.Equal(expected, s.IndexOf(target.ToString(), startIndex, count, StringComparison.CurrentCulture));
}
}