示例#1
0
        public void TestAddIndex()
        {
            CopyOnWriteArrayList <Object> full = PopulatedArray(3);

            full.Add(0, m1);
            Assert.AreEqual(4, full.Size());
            Assert.AreEqual(m1, full.Get(0));
            Assert.AreEqual(zero, full.Get(1).ToString());

            full.Add(2, m2);
            Assert.AreEqual(5, full.Size());
            Assert.AreEqual(m2, full.Get(2));
            Assert.AreEqual(two, full.Get(4).ToString());
        }
示例#2
0
        public void TestSubList()
        {
            CopyOnWriteArrayList <Object> a = PopulatedArray(10);

            Assert.IsTrue(a.SubList(1, 1).IsEmpty());

            for (int j = 0; j < 9; ++j)
            {
                for (int i = j; i < 10; ++i)
                {
                    List <Object> b = a.SubList(j, i);
                    for (int k = j; k < i; ++k)
                    {
                        Assert.AreEqual(k, b.Get(k - j));
                    }
                }
            }

            List <Object> s = a.SubList(2, 5);

            Assert.AreEqual(s.Size(), 3);
            s.Set(2, m1);
            Assert.AreEqual(a.Get(4), m1);
            s.Clear();
            Assert.AreEqual(a.Size(), 7);
        }
示例#3
0
        public void TestRemove()
        {
            CopyOnWriteArrayList <Object> full = PopulatedArray(3);

            Assert.AreEqual(two, full.Remove(2).ToString());
            Assert.AreEqual(2, full.Size());
        }
示例#4
0
        public void TestClear()
        {
            CopyOnWriteArrayList <Object> full = PopulatedArray(SIZE);

            full.Clear();
            Assert.AreEqual(0, full.Size());
        }
示例#5
0
        public void TestAddIfAbsent()
        {
            CopyOnWriteArrayList <Object> full = PopulatedArray(SIZE);

            full.AddIfAbsent(1);
            Assert.AreEqual(SIZE, full.Size());
        }
示例#6
0
        public void TestSize()
        {
            CopyOnWriteArrayList <Object> empty = new CopyOnWriteArrayList <Object>();
            CopyOnWriteArrayList <Object> full  = PopulatedArray(SIZE);

            Assert.AreEqual(SIZE, full.Size());
            Assert.AreEqual(0, empty.Size());
        }
示例#7
0
        public void TestRemoveAll()
        {
            CopyOnWriteArrayList <Object> full = PopulatedArray(3);
            ArrayList <Object>            v    = new ArrayList <Object>();

            v.Add(1);
            v.Add(2);
            full.RemoveAll(v);
            Assert.AreEqual(1, full.Size());
        }
示例#8
0
        public void TestAddAllAbsent()
        {
            CopyOnWriteArrayList <Object> full = PopulatedArray(3);
            ArrayList <Object>            v    = new ArrayList <Object>();

            v.Add(3);
            v.Add(4);
            v.Add(1); // will not Add this element
            full.AddAllAbsent(v);
            Assert.AreEqual(5, full.Size());
        }
示例#9
0
        public void TestAddAll()
        {
            CopyOnWriteArrayList <Object> full = PopulatedArray(3);
            ArrayList <Object>            v    = new ArrayList <Object>();

            v.Add(three);
            v.Add(four);
            v.Add(five);
            full.AddAll(v);
            Assert.AreEqual(6, full.Size());
        }
示例#10
0
        static CopyOnWriteArrayList <Object> PopulatedArray(int n)
        {
            CopyOnWriteArrayList <Object> a = new CopyOnWriteArrayList <Object>();

            Assert.IsTrue(a.IsEmpty());
            for (int i = 0; i < n; ++i)
            {
                a.Add(i);
            }
            Assert.IsFalse(a.IsEmpty());
            Assert.AreEqual(n, a.Size());
            return(a);
        }
示例#11
0
 public override int Size()
 {
     return(list.Size());
 }