public void GetRankTest() { for (var _ = 0; _ < 100; _++) { var num = 100; var list = new SortSet <int, int>(); var lst = new List <int>(); var rand = new System.Random(); for (var i = 0; i < num; i++) { if (rand.NextDouble() < 0.1) { lst.Add(i); } list.Add(i, i); } foreach (var n in lst) { if (list.GetRank(n) != n) { Assert.Fail(); } } Assert.AreEqual(-1, list.GetRank(-1)); } }
public void TestRank() { var n = 100; while (n-- > 0) { var sortSets = new SortSet <int, int>(); sortSets.Add(1000, 85); sortSets.Add(999, 75); sortSets.Add(998, 185); sortSets.Add(997, 85); sortSets.Add(996, 185); sortSets.Add(995, 85); Assert.AreEqual(1, sortSets.GetRank(995)); Assert.AreEqual(995, sortSets.GetElementByRank(1)); Assert.AreEqual(997, sortSets.GetElementByRank(2)); Assert.AreEqual(1000, sortSets.GetElementByRank(3)); Assert.AreEqual(996, sortSets.GetElementByRank(4)); Assert.AreEqual(998, sortSets.GetElementByRank(5)); var i = 100; var faild = 0; while (i-- > 0) { Assert.AreEqual(3, sortSets.GetRangeCount(80, 90)); } Console.WriteLine(faild); } }
public void GetRankOverflowTest() { var master = new SortSet <int, int>(); master.Add(10, 100); Assert.AreEqual(-1, master.GetRank(100)); }
public void TestRank() { var sortSets = new SortSet <int, int>(); sortSets.Add(1000, 85); sortSets.Add(999, 75); sortSets.Add(998, 185); sortSets.Add(997, 85); sortSets.Add(996, 185); sortSets.Add(995, 85); Assert.AreEqual(1, sortSets.GetRank(995)); Assert.AreEqual(995, sortSets.GetElementByRank(1)); Assert.AreEqual(997, sortSets.GetElementByRank(2)); Assert.AreEqual(1000, sortSets.GetElementByRank(3)); Assert.AreEqual(996, sortSets.GetElementByRank(4)); Assert.AreEqual(998, sortSets.GetElementByRank(5)); Assert.AreEqual(3, sortSets.GetRangeCount(80, 90)); }
public void ClearTest() { var master = new SortSet <int, int>(0.25, 32); for (var i = 0; i < 65536; i++) { master.Add(i, i); } master.Clear(); for (var i = 0; i < 65536; i++) { master.Add(i, i); } for (var i = 0; i < 65536; i++) { Assert.AreEqual(i, master.GetRank(i)); } Assert.AreEqual(65536, master.Count); }