public void TestSmartCompare()
{
List<string> strings = new List<string>();
strings.Add("Test1");
strings.Add("Test01");
strings.Add("Test2");
strings.Add("Test4");
strings.Add("Test20");
strings.Add("Test3Z");
strings.Add("Test10");
strings.Add("Test4");
strings.Add("Test3");
strings.Add("Test4");
strings.Add("Test3.12");
strings.Add("Test15");
strings.Add("Test3.101");
string[] expected = {
"Test01",
"Test1",
"Test2",
"Test3",
"Test3Z",
"Test3.101",
"Test3.12",
"Test4",
"Test4",
"Test4",
"Test10",
"Test15",
"Test20"
};
strings.Sort(StringHelper.SmartComparer.Instance);
Assert.AreEqual(expected.Length, strings.Count, "Sorted length didn't match expected, bug in test?");
for (int x = 0; x < expected.Length; x++)
{
Assert.AreEqual(expected[x], strings[x], "Sorted list was incorrect at index " + x);
}
}