예제 #1
0
        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();
            }
        }
예제 #2
0
        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));
            }
        }
예제 #3
0
        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
            }
        }
예제 #4
0
        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));
            }
        }