public void TestOrderedValues() { int i; int sz = 100; LinkedHashMap <Object, Object> lhm = new LinkedHashMap <Object, Object>(); for (i = 0; i < sz; i++) { lhm.Put(i, (i * 2)); } Collection <Object> s1 = lhm.Values(); Iterator <Object> it1 = s1.Iterator(); Assert.IsTrue(lhm.Size() == s1.Size(), "Returned set of incorrect Size 1"); for (i = 0; it1.HasNext; i++) { int jj = (int)it1.Next(); Assert.IsTrue(jj == i * 2, "Returned incorrect entry set 1"); } LinkedHashMap <Object, Object> lruhm = new LinkedHashMap <Object, Object>(200, .75f, true); for (i = 0; i < sz; i++) { lruhm.Put(i, (i * 2)); } Collection <Object> s3 = lruhm.Values(); Iterator <Object> it3 = s3.Iterator(); Assert.IsTrue(lruhm.Size() == s3.Size(), "Returned set of incorrect Size"); for (i = 0; i < sz && it3.HasNext; i++) { int jj = (int)it3.Next(); Assert.IsTrue(jj == i * 2, "Returned incorrect entry set"); } // fetch the even numbered entries to affect traversal order int p = 0; for (i = 0; i < sz; i += 2) { int ii = (int)lruhm.Get(i); p = p + ii; } Assert.IsTrue(p == 2450 * 2, "invalid sum of even numbers"); Collection <Object> s2 = lruhm.Values(); Iterator <Object> it2 = s2.Iterator(); Assert.IsTrue(lruhm.Size() == s2.Size(), "Returned set of incorrect Size"); for (i = 1; i < sz && it2.HasNext; i += 2) { int jj = (int)it2.Next(); Assert.IsTrue(jj == i * 2, "Returned incorrect entry set"); } for (i = 0; i < sz && it2.HasNext; i += 2) { int jj = (int)it2.Next(); Assert.IsTrue(jj == i * 2, "Returned incorrect entry set"); } Assert.IsTrue(!it2.HasNext, "Entries left to iterate on"); }
public void TestConstructor() { LinkedHashMap <Object, Object> hm2 = new LinkedHashMap <Object, Object>(); Assert.AreEqual(0, hm2.Size(), "Created incorrect LinkedHashMap"); }
public void TestOrderedKeySet() { int i; int sz = 100; LinkedHashMap <Object, Object> lhm = new LinkedHashMap <Object, Object>(); for (i = 0; i < sz; i++) { lhm.Put(i, i.ToString()); } Set <Object> s1 = lhm.KeySet(); Iterator <Object> it1 = s1.Iterator(); Assert.IsTrue(lhm.Size() == s1.Size(), "Returned set of incorrect Size"); for (i = 0; it1.HasNext; i++) { int jj = (int)it1.Next(); Assert.IsTrue(jj == i, "Returned incorrect entry set"); } LinkedHashMap <Object, Object> lruhm = new LinkedHashMap <Object, Object>(200, .75f, true); for (i = 0; i < sz; i++) { lruhm.Put(i, i.ToString()); } Set <Object> s3 = lruhm.KeySet(); Iterator <Object> it3 = s3.Iterator(); Assert.IsTrue(lruhm.Size() == s3.Size(), "Returned set of incorrect Size"); for (i = 0; i < sz && it3.HasNext; i++) { int jj = (int)it3.Next(); Assert.IsTrue(jj == i, "Returned incorrect entry set"); } /* fetch the even numbered entries to affect traversal order */ int p = 0; for (i = 0; i < sz; i += 2) { String ii = (String)lruhm.Get(i); p = p + Int32.Parse(ii); } Assert.AreEqual(2450, p, "invalid sum of even numbers"); Set <Object> s2 = lruhm.KeySet(); Iterator <Object> it2 = s2.Iterator(); Assert.IsTrue(lruhm.Size() == s2.Size(), "Returned set of incorrect Size"); for (i = 1; i < sz && it2.HasNext; i += 2) { int jj = (int)it2.Next(); Assert.IsTrue(jj == i, "Returned incorrect entry set"); } for (i = 0; i < sz && it2.HasNext; i += 2) { int jj = (int)it2.Next(); Assert.IsTrue(jj == i, "Returned incorrect entry set"); } Assert.IsTrue(!it2.HasNext, "Entries left to iterate on"); }