public static IEnumerable<object[]> AllSubstringsAndComparisons(string source)
{
var comparisons = new StringComparison[]
{
StringComparison.CurrentCulture,
StringComparison.CurrentCultureIgnoreCase,
StringComparison.Ordinal,
StringComparison.OrdinalIgnoreCase
};
foreach (StringComparison comparison in comparisons)
{
for (int i = 0; i <= source.Length; i++)
{
for (int subLen = source.Length - i; subLen > 0; subLen--)
{
yield return new object[] { source, source.Substring(i, subLen), i, comparison };
}
}
}
}