public void NextKeyTest() { var c = CyclingObjectArray.CreateUsingByteKey <string>(); var i = c.NextFreeKey(); var j = c.NextFreeKey(); Assert.AreEqual(i, j - 1); }
public void NextFreeKeyTest() { var c = CyclingObjectArray.CreateUsingByteKey <string>(); for (var i = 5; i < 10; i++) { c[(byte)i] = i.ToString(); } for (var i = 0; i < 20; i++) { var key = c.Add(i.ToString()); Assert.IsTrue(key < 5 || key >= 10, "key: " + key); Assert.AreEqual(c[key], i.ToString()); } }
public void RotateTest() { var c = CyclingObjectArray.CreateUsingByteKey <string>(); int start = c.NextFreeKey(); var expected = start + 1; int curr; while ((curr = c.NextFreeKey()) != start) { Assert.AreEqual(expected, curr); expected++; if (expected > c.MaxIndex) { expected = c.MinIndex; } } }
public void SkipUsedTest() { var c = CyclingObjectArray.CreateUsingByteKey <string>(); for (var i = 0; i < 10; i++) { c.Add(i.ToString()); } var usedKeys = c.Keys.ToImmutable(); for (var i = c.MinIndex; i < c.MaxIndex; i++) { var key = c.NextFreeKey(); Assert.IsFalse(c.IsSet(key)); Assert.IsNull(c[key]); } foreach (var k in usedKeys) { Assert.IsTrue(c.IsSet(k)); Assert.IsNotNull(c[k]); } }