public virtual void TestBasicIterator() { TwoDimensionalMap <string, string, string> map = new TwoDimensionalMap <string, string, string>(); IEnumerator <TwoDimensionalMap.Entry <string, string, string> > mapIterator = map.GetEnumerator(); NUnit.Framework.Assert.IsFalse(mapIterator.MoveNext()); map.Put("A", "B", "C"); mapIterator = map.GetEnumerator(); NUnit.Framework.Assert.IsTrue(mapIterator.MoveNext()); TwoDimensionalMap.Entry <string, string, string> entry = mapIterator.Current; NUnit.Framework.Assert.AreEqual("A", entry.GetFirstKey()); NUnit.Framework.Assert.AreEqual("B", entry.GetSecondKey()); NUnit.Framework.Assert.AreEqual("C", entry.GetValue()); NUnit.Framework.Assert.IsFalse(mapIterator.MoveNext()); map.Put("A", "E", "F"); map.Put("D", "E", "F"); map.Put("G", "H", "I"); map.Put("J", "K", "L"); NUnit.Framework.Assert.AreEqual(5, map.Size()); int count = 0; ICollection <string> firstKeys = new HashSet <string>(); ICollection <string> values = new HashSet <string>(); foreach (TwoDimensionalMap.Entry <string, string, string> e in map) { ++count; firstKeys.Add(e.GetFirstKey()); values.Add(e.GetValue()); } NUnit.Framework.Assert.IsTrue(firstKeys.Contains("A")); NUnit.Framework.Assert.IsTrue(firstKeys.Contains("D")); NUnit.Framework.Assert.IsTrue(firstKeys.Contains("G")); NUnit.Framework.Assert.IsTrue(firstKeys.Contains("J")); NUnit.Framework.Assert.IsTrue(values.Contains("C")); NUnit.Framework.Assert.IsTrue(values.Contains("F")); NUnit.Framework.Assert.IsTrue(values.Contains("I")); NUnit.Framework.Assert.IsTrue(values.Contains("L")); NUnit.Framework.Assert.AreEqual(5, count); NUnit.Framework.Assert.AreEqual(4, firstKeys.Count); NUnit.Framework.Assert.AreEqual(4, values.Count); }
public virtual void TestTreeMapIterator() { TwoDimensionalMap <string, string, string> map = new TwoDimensionalMap <string, string, string>(MapFactory.TreeMapFactory <string, IDictionary <string, string> >(), MapFactory.TreeMapFactory <string, string>()); map.Put("A", "B", "C"); map.Put("Z", "Y", "X"); map.Put("Z", "B", "C"); map.Put("A", "Y", "X"); map.Put("D", "D", "D"); map.Put("D", "F", "E"); map.Put("K", "G", "B"); map.Put("G", "F", "E"); map.Put("D", "D", "E"); // sneaky overwritten entry NUnit.Framework.Assert.AreEqual(8, map.Size()); IEnumerator <TwoDimensionalMap.Entry <string, string, string> > mapIterator = map.GetEnumerator(); TwoDimensionalMap.Entry <string, string, string> entry = mapIterator.Current; NUnit.Framework.Assert.AreEqual("A", entry.GetFirstKey()); NUnit.Framework.Assert.AreEqual("B", entry.GetSecondKey()); NUnit.Framework.Assert.AreEqual("C", entry.GetValue()); entry = mapIterator.Current; NUnit.Framework.Assert.AreEqual("A", entry.GetFirstKey()); NUnit.Framework.Assert.AreEqual("Y", entry.GetSecondKey()); NUnit.Framework.Assert.AreEqual("X", entry.GetValue()); entry = mapIterator.Current; NUnit.Framework.Assert.AreEqual("D", entry.GetFirstKey()); NUnit.Framework.Assert.AreEqual("D", entry.GetSecondKey()); NUnit.Framework.Assert.AreEqual("E", entry.GetValue()); entry = mapIterator.Current; NUnit.Framework.Assert.AreEqual("D", entry.GetFirstKey()); NUnit.Framework.Assert.AreEqual("F", entry.GetSecondKey()); NUnit.Framework.Assert.AreEqual("E", entry.GetValue()); entry = mapIterator.Current; NUnit.Framework.Assert.AreEqual("G", entry.GetFirstKey()); NUnit.Framework.Assert.AreEqual("F", entry.GetSecondKey()); NUnit.Framework.Assert.AreEqual("E", entry.GetValue()); entry = mapIterator.Current; NUnit.Framework.Assert.AreEqual("K", entry.GetFirstKey()); NUnit.Framework.Assert.AreEqual("G", entry.GetSecondKey()); NUnit.Framework.Assert.AreEqual("B", entry.GetValue()); entry = mapIterator.Current; NUnit.Framework.Assert.AreEqual("Z", entry.GetFirstKey()); NUnit.Framework.Assert.AreEqual("B", entry.GetSecondKey()); NUnit.Framework.Assert.AreEqual("C", entry.GetValue()); entry = mapIterator.Current; NUnit.Framework.Assert.AreEqual("Z", entry.GetFirstKey()); NUnit.Framework.Assert.AreEqual("Y", entry.GetSecondKey()); NUnit.Framework.Assert.AreEqual("X", entry.GetValue()); NUnit.Framework.Assert.IsFalse(mapIterator.MoveNext()); IEnumerator <string> valueIterator = map.ValueIterator(); NUnit.Framework.Assert.IsTrue(valueIterator.MoveNext()); NUnit.Framework.Assert.AreEqual("C", valueIterator.Current); NUnit.Framework.Assert.AreEqual("X", valueIterator.Current); NUnit.Framework.Assert.AreEqual("E", valueIterator.Current); NUnit.Framework.Assert.AreEqual("E", valueIterator.Current); NUnit.Framework.Assert.AreEqual("E", valueIterator.Current); NUnit.Framework.Assert.AreEqual("B", valueIterator.Current); NUnit.Framework.Assert.AreEqual("C", valueIterator.Current); NUnit.Framework.Assert.AreEqual("X", valueIterator.Current); NUnit.Framework.Assert.IsFalse(valueIterator.MoveNext()); }