using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Azimuth.UnitTests.DataStructures { public class RadixSortTests : UnitTestSharp.TestFixture { public void InOrder() { uint[] list = { 1, 3, 4, 7, 10 }; var result = Azimuth.DataStructures.RadixSort.Sort(list); CheckEqual(list, result); } public void Backwards() { uint[] list = { 10, 7, 4, 3, 1 }; uint[] sorted = { 1, 3, 4, 7, 10 }; var result = Azimuth.DataStructures.RadixSort.Sort(list); CheckEqual(sorted, result); } public void Mixed() { uint[] list = { 1, 10, 3, 4, 7, }; uint[] sorted = { 1, 3, 4, 7, 10 }; var result = Azimuth.DataStructures.RadixSort.Sort(list); CheckEqual(sorted, result); } public void Duplicates() { uint[] list = { 1, 10, 7, 4, 7, }; uint[] sorted = { 1, 4, 7, 7, 10 }; var result = Azimuth.DataStructures.RadixSort.Sort(list); CheckEqual(sorted, result); } public void FullRange() { 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 }; var result = Azimuth.DataStructures.RadixSort.Sort(list); CheckEqual(sorted, result); } public void Empty() { uint[] list = { }; CheckEqual(list, Azimuth.DataStructures.RadixSort.Sort(list)); } } }