public void TestTrackableCollection_LastOrDefault(bool track) { var acc = new Accumulator("test"); var a = new Simple("a"); var b = new Simple("b"); var c = new Simple("c"); var coll = new TrackableCollection <Simple>(acc, track) { a, b, c, b, c, b, b }; var last = coll.LastOrDefault(); Assert.AreEqual(b, last); coll.Clear(); last = coll.LastOrDefault(); Assert.IsNull(last); var coll2 = new TrackableCollection <int>(acc, track) { -1, 1, 2 }; var f = coll2.LastOrDefault(); Assert.AreEqual(2, f); coll2.Clear(); f = coll2.LastOrDefault(); Assert.AreEqual(default(int), f); if (track) { Assert.AreEqual(12, acc.Records.Count); } else { Assert.AreEqual(0, acc.Records.Count); } }