public void PooledList_GetInstance() { for (var i = 0; i < 100; i++) { var lst = PooledList <string> .GetInstance(); Assert.AreEqual(0, lst.Count); lst.Add("qux"); lst.Add("foo"); lst.Add("bar"); lst.Add("baz"); Assert.IsTrue(exp.SequenceEqual(lst)); lst.Free(); } }
public void PooledList_AsReadOnlyCopy() { for (var i = 0; i < 100; i++) { var lst = PooledList <string> .GetInstance(); Assert.AreEqual(0, lst.Count); lst.Add("qux"); lst.Add("foo"); lst.Add("bar"); var res = lst.AsReadOnlyCopy(); lst.Add("baz"); Assert.IsTrue(exp.Take(3).SequenceEqual(res)); } }
public void PooledList_AsReadOnlyCopyAndFree() { for (var i = 0; i < 100; i++) { var lst = PooledList <string> .GetInstance(); Assert.AreEqual(0, lst.Count); lst.Add("qux"); lst.Add("foo"); lst.Add("bar"); lst.Add("baz"); var res = lst.AsReadOnlyCopyAndFree(); Assert.IsTrue(exp.SequenceEqual(res)); Assert.AreEqual(0, lst.Count); // Relies on implementation detail of timing of Free } }
public void PooledList_AsReadOnly() { for (var i = 0; i < 100; i++) { var lst = PooledList <string> .GetInstance(); Assert.AreEqual(0, lst.Count); lst.Add("qux"); lst.Add("foo"); lst.Add("bar"); #pragma warning disable 618 _ = lst.AsReadOnly(); #pragma warning restore 618 lst.Add("baz"); Assert.IsTrue(exp.SequenceEqual(lst)); } }