public void Remove() { var list1 = new List <string>(); var index1 = new SpeedyListIndex <string>(list1); var indices = TestUtility.GetPrivateField <StringIndex>(index1, "indices"); var nullIndex = TestUtility.GetPrivateField <List <int> >(index1, "nullIndex"); bool catched = false; try { index1.Insert(1, "test 1"); } catch (IndexOutOfRangeException) { catched = true; } Assert.IsTrue(catched); catched = false; try { index1.Insert(-1, "test 1"); } catch (IndexOutOfRangeException) { catched = true; } Assert.IsTrue(catched); list1.Insert(0, "test 1"); index1.Insert(0, "test 1"); list1.Insert(0, "test 2"); index1.Insert(0, "test 2"); list1.Insert(0, "test 3"); index1.Insert(0, "test 3"); list1.Insert(0, null); index1.Insert(0, null); list1.Insert(1, "test 1"); index1.Insert(1, "test 1"); list1.Insert(1, "test 2"); index1.Insert(1, "test 2"); Assert.AreEqual(3, indices.Count); Assert.AreEqual(1, nullIndex.Count); Assert.AreEqual(0, index1.IndexOf(null)); Assert.AreEqual(2, index1.IndexOf("test 1")); Assert.AreEqual(3, index1.IndexOf("test 3")); Assert.AreEqual(1, index1.IndexOf("test 2")); Assert.AreEqual(2, indices["test 1"].Count); Assert.AreEqual(2, indices["test 1"][0]); Assert.AreEqual(5, indices["test 1"][1]); Assert.AreEqual(2, indices["test 2"].Count); Assert.AreEqual(1, indices["test 2"][0]); Assert.AreEqual(4, indices["test 2"][1]); Assert.AreEqual(1, indices["test 3"].Count); Assert.AreEqual(3, indices["test 3"][0]); Assert.AreEqual(1, nullIndex.Count); Assert.AreEqual(0, nullIndex[0]); catched = false; try { index1.Insert(7, "test 1"); } catch (IndexOutOfRangeException) { catched = true; } Assert.IsTrue(catched); index1.Clear(); Assert.AreEqual(0, indices.Count); Assert.AreEqual(0, nullIndex.Count); }
public void IndexOf() { var list1 = new List <string>(); var index1 = new SpeedyListIndex <string>(list1); var indices = TestUtility.GetPrivateField <StringIndex>(index1, "indices"); index1.Add("test 1", 1); index1.Add("test 1", 3); index1.Add("test 1", 5); index1.Add("test 2", 2); index1.Add("test 3", 4); index1.Add(null, 6); Assert.AreEqual(1, index1.IndexOf("test 1")); index1.Remove("test 1"); Assert.IsTrue(index1.Contains("test 1")); Assert.AreEqual(3, index1.IndexOf("test 1")); index1.Remove("test 1"); Assert.IsTrue(index1.Contains("test 1")); Assert.AreEqual(5, index1.IndexOf("test 1")); index1.Remove("test 1"); Assert.IsFalse(index1.Contains("test 1")); Assert.AreEqual(-1, index1.IndexOf("test 1")); index1.Remove("test 1"); Assert.IsFalse(index1.Contains("test 1")); Assert.AreEqual(-1, index1.IndexOf("test 1")); Assert.IsTrue(index1.Contains("test 2")); Assert.IsTrue(index1.Contains("test 3")); Assert.AreEqual(2, index1.IndexOf("test 2")); Assert.AreEqual(4, index1.IndexOf("test 3")); Assert.AreEqual(-1, index1.IndexOf("test 4")); Assert.AreEqual(6, index1.IndexOf(null)); index1.Remove(null); Assert.AreEqual(-1, index1.IndexOf(null)); index1.Remove(null); Assert.AreEqual(-1, index1.IndexOf(null)); }