public void ContainsClass() { const int LoopCount = 1000; var list = new List <TestUserClass>(); var speedyList = new SpeedyList <TestUserClass>(); var random = new Random(); for (int i = 0; i < LoopCount; i++) { var value = new TestUserClass(); value.Name = i.ToString(); value.Value = i; list.Insert(list.Count, value); speedyList.Insert(speedyList.Count, value); } Assert.AreEqual(LoopCount, list.Count); Assert.AreEqual(list.Count, speedyList.Count); for (int i = 0; i < LoopCount; i++) { Assert.AreEqual(list[i], speedyList[i]); } int total1 = 0; int total2 = 0; for (int i = 0; i < LoopCount; i++) { var value = new TestUserClass(); value.Name = i.ToString(); value.Value = i; if (list.Contains(value)) { total1++; } if (speedyList.Contains(value)) { total2++; } } Console.WriteLine("total: " + total1); /* * for (int i = 0; i < speedyList.Count; i++) { * Console.WriteLine(speedyList[i]); * } * //*/ Assert.AreEqual(total1, total2); }
public void AddClass() { const int LoopCount = 10000; var list = new List <TestUserClass>(); var speedyList = new SpeedyList <TestUserClass>(); var random = new Random(); for (int i = 0; i < LoopCount; i++) { var value = new TestUserClass(); value.Name = i.ToString(); value.Value = random.Next(LoopCount); list.Add(value); speedyList.Add(value); } Assert.AreEqual(LoopCount, list.Count); Assert.AreEqual(list.Count, speedyList.Count); for (int i = 0; i < LoopCount; i++) { Assert.AreEqual(list[i], speedyList[i]); } }
public void ComplexTestClass() { const int TestCount = 20; var random = new Random(); for (int n = 0; n < TestCount; n++) { int loopCount = 500 + random.Next(1000); var list = new List <TestUserClass>(); var speedyList = new SpeedyList <TestUserClass>(); for (int i = 0; i < loopCount + 1; i++) { var value = new TestUserClass(); value.Name = i.ToString(); value.Value = random.Next(loopCount); list.Add(value); speedyList.Add(value); } Assert.AreNotEqual(0, list.Count); Assert.AreEqual(list.Count, speedyList.Count); for (int i = 0; i < loopCount; i++) { int method = random.Next(6); int index = random.Next(list.Count); var value = new TestUserClass(); value.Name = i.ToString(); value.Value = random.Next(loopCount); switch (method) { case 0: list.Add(value); speedyList.Add(value); break; case 1: list.Insert(index, value); speedyList.Insert(index, value); break; case 2: list.Remove(value); speedyList.Remove(value); break; case 3: list.RemoveAt(index); speedyList.RemoveAt(index); break; case 4: list.Insert(index, null); speedyList.Insert(index, null); break; case 5: list.Remove(null); speedyList.Remove(null); break; default: Assert.IsTrue(false); break; } } Assert.AreNotEqual(0, list.Count); Assert.AreEqual(list.Count, speedyList.Count); for (int i = 0; i < list.Count; i++) { Assert.AreEqual(list[i], speedyList[i]); var value = new TestUserClass(); value.Name = i.ToString(); value.Value = random.Next(loopCount); int index1 = list.IndexOf(value); int index2 = speedyList.IndexOf(value); Assert.AreEqual(index1, index2); bool contains1 = list.Contains(value); bool contains2 = speedyList.Contains(value); Assert.AreEqual(contains1, contains2); } } }