Esempio n. 1
0
        public void DoubleList_RemoveAt()
        {
            var list = new DoubleList();
            V   v;

            v = new V(0);
            list.AddToFront(v);
            list.RemoveAt(0);
            Assert.AreEqual(0, list.Count);
            list.AddToEnd(v);
            Assert.AreEqual(1, list.Count);
            list.Clear();

            list.AddToFront(new V(2));
            list.AddToFront(new V(1));
            list.AddToFront(new V(0));
            Assert.AreEqual(3, list.Count);
            Assert.AreEqual(0, ((V)list[0]).Value);
            Assert.AreEqual(1, ((V)list[1]).Value);
            Assert.AreEqual(2, ((V)list[2]).Value);

            list.RemoveAt(1);
            Assert.AreEqual(2, list.Count);
            Assert.AreEqual(0, ((V)list[0]).Value);
            Assert.AreEqual(2, ((V)list[1]).Value);
        }
Esempio n. 2
0
        public void DoubleList_RemoveFromEnd()
        {
            var list = new DoubleList();

            list.AddToFront(new V(0));
            list.Remove(list[0]);
            Assert.AreEqual(0, list.Count);

            list.AddToFront(new V(2));
            list.AddToFront(new V(1));
            list.AddToFront(new V(0));
            Assert.AreEqual(3, list.Count);
            Assert.AreEqual(0, ((V)list[0]).Value);
            Assert.AreEqual(1, ((V)list[1]).Value);
            Assert.AreEqual(2, ((V)list[2]).Value);

            list.Remove(list[2]);
            Assert.AreEqual(2, list.Count);
            Assert.AreEqual(0, ((V)list[0]).Value);
            Assert.AreEqual(1, ((V)list[1]).Value);

            list.Remove(list[1]);
            Assert.AreEqual(1, list.Count);
            Assert.AreEqual(0, ((V)list[0]).Value);

            list.Remove(list[0]);
            Assert.AreEqual(0, list.Count);
        }
Esempio n. 3
0
        public void DoubleList_Clear()
        {
            var list = new DoubleList();

            list.AddToFront(new V(2));
            list.AddToFront(new V(1));
            list.AddToFront(new V(0));
            list.Clear();
            Assert.AreEqual(0, list.Count);
        }
Esempio n. 4
0
        public void DoubleList_EnumerateWithModify()
        {
            var list = new DoubleList();

            list.AddToEnd(new V(0));
            list.AddToEnd(new V(1));
            list.AddToEnd(new V(2));

            try
            {
                foreach (V v in list)
                {
                    v.Value = 10;
                    list.AddToEnd(new V(100));
                }

                Assert.Fail();
            }
            catch (InvalidOperationException)
            {
            }
            catch
            {
                Assert.Fail();
            }

            try
            {
                foreach (V v in list)
                {
                    v.Value = 10;
                    list.AddToFront(new V(100));
                }

                Assert.Fail();
            }
            catch (InvalidOperationException)
            {
            }
            catch
            {
                Assert.Fail();
            }

            try
            {
                foreach (V v in list)
                {
                    v.Value = 10;
                    list.RemoveAt(0);
                }

                Assert.Fail();
            }
            catch (InvalidOperationException)
            {
            }
            catch
            {
                Assert.Fail();
            }

            try
            {
                foreach (V v in list)
                {
                    v.Value = 10;
                    list.Clear();
                }

                Assert.Fail();
            }
            catch (InvalidOperationException)
            {
            }
            catch
            {
                Assert.Fail();
            }
        }