public void TestTrackableCollection_TryPop(bool track) { var acc = new Accumulator("test"); IStack <Simple> coll = new TrackableCollection <Simple>(acc, track); Assert.AreEqual(0, coll.Count()); var a = new Simple("a"); var b = new Simple("b"); coll.Push(a); coll.Push(b); Assert.IsTrue(coll.TryPop(out var b1)); Assert.AreEqual(b, b1); Assert.AreEqual(1, coll.Count()); Assert.IsTrue(coll.TryPop(out var a1)); Assert.AreEqual(a, a1); Assert.AreEqual(0, coll.Count()); Assert.IsFalse(coll.TryPop(out var c1)); if (track) { Assert.AreEqual(4, acc.Records.Count); } else { Assert.AreEqual(0, acc.Records.Count); } }
public void TestTrackableCollection_Dequeue(bool track) { var acc = new Accumulator("test"); IQueue <Simple> coll = new TrackableCollection <Simple>(acc, track); Assert.AreEqual(0, coll.Count()); var a = new Simple("a"); var b = new Simple("b"); coll.Enqueue(a); coll.Enqueue(b); var a1 = coll.Dequeue(); Assert.AreEqual(a, a1); Assert.AreEqual(1, coll.Count()); var b1 = coll.Dequeue(); Assert.AreEqual(b, b1); Assert.AreEqual(0, coll.Count()); if (track) { Assert.AreEqual(4, acc.Records.Count); } else { Assert.AreEqual(0, acc.Records.Count); } }
public void TestTrackableCollection_Pop_Empty() { IStack <Simple> coll = new TrackableCollection <Simple>(); Assert.AreEqual(0, coll.Count()); coll.Pop(); }
public void TestTrackableCollection_Dequeue_Empty() { IQueue <Simple> coll = new TrackableCollection <Simple>(); Assert.AreEqual(0, coll.Count()); coll.Dequeue(); }
public void TestTrackableCollection_Push(bool track) { var acc = new Accumulator("test"); IStack <Simple> coll = new TrackableCollection <Simple>(acc, track); Assert.AreEqual(0, coll.Count()); coll.Push(new Simple("a")); Assert.AreEqual(1, coll.Count()); coll.Push(new Simple("b")); Assert.AreEqual(2, coll.Count()); if (track) { Assert.AreEqual(2, acc.Records.Count); } else { Assert.AreEqual(0, acc.Records.Count); } }