namespace Amphora.UnitTests { public class RadixSortTests : UnitTestSharp.TestFixture { public class SortTests : UnitTestSharp.TestFixture { public void AlreadyAscending_IsUnchanged() { uint[] list = { 1, 3, 4, 7, 10 }; CheckEqual(list, RadixSort.Sort(list)); } public void Descending_BecomesAscending() { uint[] list = { 10, 7, 4, 3, 1 }; uint[] sorted = { 1, 3, 4, 7, 10 }; CheckEqual(sorted, RadixSort.Sort(list)); } public void Jumbled_BecomesAscending() { uint[] list = { 1, 10, 3, 4, 7 }; uint[] sorted = { 1, 3, 4, 7, 10 }; CheckEqual(sorted, RadixSort.Sort(list)); } public void Duplicates_AreKept() { uint[] list = { 1, 10, 7, 4, 7 }; uint[] sorted = { 1, 4, 7, 7, 10 }; CheckEqual(sorted, RadixSort.Sort(list)); } public void ValuesSpanningEveryRadixDigit_AreSorted() { uint[] list = { 1 << 31 - 1, 0, 1 << 6, 1 << 9, 1 << 18, 1 << 12, 1 << 15, 1 << 3, 1 << 24, 1 << 27, 1 << 30, 1 << 21 }; uint[] sorted = { 0, 1 << 3, 1 << 6, 1 << 9, 1 << 12, 1 << 15, 1 << 18, 1 << 21, 1 << 24, 1 << 27, 1 << 30, 1 << 31 - 1 }; CheckEqual(sorted, RadixSort.Sort(list)); } public void Empty_ReturnsEmpty() { uint[] list = { }; CheckEqual(list, RadixSort.Sort(list)); } } } }