Esempio n. 1
0
 public UndoRedoHistory(int capacity, MapForm s)
 {
     this.capacity = capacity;
     this.undoStack = new CircularStack<Action>(this.capacity);
     this.redoStack = new CircularStack<Action>(this.capacity);
     this.subject = s;
 }
        public void CircularStack_Should_BeInitializedWithProvidedCapacity()
        {
            int capacity = 100;

            var obj = new CircularStack(capacity);

            Assert.AreEqual(capacity, obj.Capacity);
        }
        public void Push_ShouldNot_ChangeCapacity()
        {
            var obj = new CircularStack();

            obj.Push(1);

            Assert.AreEqual(CircularStack.DefaultCapacity, obj.Capacity);
        }
        public void Count_Should_ReturnItemCount()
        {
            var arr = new List <string> {
                "a", "b"
            };
            var obj = new CircularStack(arr);

            Assert.AreEqual(2, obj.Count);
        }
        public void IsFull_Should_ReturnTrue_WhenStackIsFull()
        {
            var arr = new List <string> {
                "a", "b"
            };
            var obj = new CircularStack(arr);

            Assert.IsTrue(obj.IsFull);
        }
        public void Push_Should_AddItem_WhenStackIsEmpty()
        {
            var obj = new CircularStack();

            obj.Push(1);

            Assert.AreEqual(1, obj.Count);
            obj.ShouldContainElement(1);
        }
        public void Constructor()
        {
            var stack = new CircularStack <int>();

            for (int i = 0; i < 4; i++)
            {
                stack.Add(i);
            }
            Assert.AreEqual(stack.Count, 4);
        }
Esempio n. 8
0
        public void IsEmpty01()
        {
            var cq = new CircularStack <int>(1);

            Assert.IsTrue(cq.IsEmpty());
            cq.Push(1);
            Assert.IsFalse(cq.IsEmpty());
            cq.Pop();
            Assert.IsTrue(cq.IsEmpty());
        }
        public void Push_Should_AddItem_When_ThereIsOnlyOneSpaceLeft()
        {
            var obj = new CircularStack <int>(2);

            obj.Push(1);
            obj.Push(2);

            Assert.AreEqual(2, obj.Count);
            obj.ShouldContainElementsInOrder(2, 1);
        }
Esempio n. 10
0
        public void Push01()
        {
            var capacity = 4;
            var cq       = new CircularStack <int>(capacity);

            for (int i = 0; i < 6; i++)
            {
                cq.Push(i);
            }
            Assert.AreEqual(capacity, cq.Count());
        }
        public void Pop_ShouldNot_ChangeCapacity()
        {
            var arr = new List <object> {
                new { }, new { }
            };
            var obj = new CircularStack(arr);

            obj.Pop();

            Assert.AreEqual(2, obj.Capacity);
        }
        public void Pop_Should_RemoveItem_When_ThereIsOnlyOne()
        {
            var arr = new List <string> {
                "a"
            };
            var obj = new CircularStack(arr);

            obj.Pop();

            Assert.AreEqual(0, obj.Count);
        }
        public void Pop_Should_RespectCapacity()
        {
            var arr = new List <object> {
                new { }
            };
            var obj = new CircularStack(arr);

            obj.Pop();

            Assert.Throws <InvalidOperationException>(() => obj.Pop());
        }
        public void Push_Should_AddItem()
        {
            var arr = new List <string> {
                "a", "b"
            };
            var obj = new CircularStack <string>(arr, 4);

            obj.Push("c");

            Assert.AreEqual(3, obj.Count);
            obj.ShouldContainElementsInOrder("c", "b", "a");
        }
        public void Peek_ShouldNot_RemoveItem()
        {
            var arr = new List <string> {
                "a", "b"
            };
            var obj = new CircularStack <string>(arr);

            obj.Peek();

            Assert.AreEqual(2, obj.Count);
            obj.ShouldContainElementsReversed(arr);
        }
        public void Pop_Should_ReturnItem()
        {
            var expected = "b";
            var arr      = new List <string> {
                "a", "b"
            };
            var obj = new CircularStack(arr);

            var actual = obj.Pop();

            Assert.AreSame(expected, actual);
        }
        public void Pop_Should_ReturnItem_When_ThereIsOnlyOne()
        {
            var expected = "a";
            var arr      = new List <string> {
                "a"
            };
            var obj = new CircularStack(arr);

            var actual = obj.Pop();

            Assert.AreSame(expected, actual);
        }
        public void CircularStack_Should_BeInitializedWithCollectionAndCapacity()
        {
            var items = new List <string> {
                "a", "b"
            };

            var obj = new CircularStack <string>(items, 4);

            Assert.AreEqual(2, obj.Count);
            Assert.AreEqual(4, obj.Capacity);
            obj.ShouldContainElementsReversed(items);
        }
        public void Push_Should_DropLastItem_When_StackIsFull()
        {
            var expected = "b";
            var arr      = new List <string> {
                "a", expected
            };
            var obj = new CircularStack <string>(arr);

            obj.Push("c");

            obj.ShouldContainElementsInOrder("c", "b");
        }
        public void Pop_Should_Work_When_ItemDropped()
        {
            var obj = new CircularStack(2);

            obj.Push("a");
            obj.Push("b");
            obj.Push("c");

            Assert.AreEqual("c", obj.Pop());
            Assert.AreEqual("b", obj.Pop());
            Assert.Throws <InvalidOperationException>(() => obj.Pop());
        }
        public void Pop_Should_Work_When_StackIsInitializedFromCollection()
        {
            var arr = new List <string> {
                "a", "b", "c", "d"
            };
            var obj = new CircularStack(arr);

            Assert.AreEqual("d", obj.Pop());
            Assert.AreEqual("c", obj.Pop());
            Assert.AreEqual("b", obj.Pop());
            Assert.AreEqual("a", obj.Pop());
        }
        public void Pop_Should_RemoveItem()
        {
            var arr = new List <string> {
                "a", "b"
            };
            var obj = new CircularStack <string>(arr);

            obj.Pop();

            Assert.AreEqual(1, obj.Count);
            obj.ShouldContainElementsInOrder("a");
        }
        public void EnumeratorTest()
        {
            var stack = new CircularStack <int>(new[] { 1, 2, 3, 4, 5 });
            var i     = 2;

            foreach (var sElent in stack[1].Take(4))
            {
                Assert.AreEqual(sElent, i);
                i++;
            }
            Assert.AreEqual(stack[1].Last(), 1);
        }
        public void Push_Should_Work_When_StackIsInitializedFromCollection()
        {
            var arr = new List <string> {
                "a", "b", "c"
            };
            var obj = new CircularStack <string>(arr, 5);

            var expected = "d";

            obj.Push(expected);
            obj.ShouldContainElementsInOrder("d", "c", "b", "a");
        }
Esempio n. 25
0
        public void Count01()
        {
            var cq = new CircularStack <int>(4);

            Assert.AreEqual(0, cq.Count());
            cq.Push(1);
            cq.Push(1);
            Assert.AreEqual(2, cq.Count());
            cq.Pop();
            Assert.AreEqual(1, cq.Count());
            cq.Pop();
            Assert.AreEqual(0, cq.Count());
        }
        public void Push_Should_WorkAfterPop()
        {
            var expected = "c";
            var arr      = new List <string> {
                "a", "b", "d"
            };
            var obj = new CircularStack <string>(arr);

            obj.Pop();
            obj.Push(expected);

            Assert.AreSame(expected, obj.Peek());
            obj.ShouldContainElementsInOrder("c", "b", "a");
        }
        public void Pop_Should_WorkAfterPush()
        {
            var expected = "k";
            var arr      = new List <string> {
                "a", "b", "d"
            };
            var obj = new CircularStack <string>(arr);

            obj.Push(expected);
            var actual = obj.Pop();

            Assert.AreSame(expected, actual);
            obj.ShouldContainElementsInOrder("d", "b");
        }
        public static void ShouldContainElement <T>(this CircularStack <T> stack, T element)
        {
            bool found = false;

            foreach (var item in stack)
            {
                if (item.Equals(element))
                {
                    found = true;
                    break;
                }
            }

            Assert.IsTrue(found);
        }
        public static void ShouldContainElementsInOrder <T>(this CircularStack <T> stack, params T[] elements)
        {
            Assert.AreEqual(elements.Length, stack.Count);

            int idx = 0;

            foreach (var item in stack)
            {
                if (item != null)
                {
                    Assert.AreEqual(elements[idx], item);
                    idx++;
                }
            }
        }
        public void EqualityForClassType()
        {
            var stack1 = new CircularStack <TestClass>();

            for (int i = 0; i < 20; i++)
            {
                stack1.Add(new TestClass(i * 20.1));
            }
            var stack2 = new CircularStack <TestClass>();

            for (int i = 0; i < 20; i++)
            {
                stack2.Add(new TestClass(i * 20.1));
            }
            Assert.AreEqual(stack1, stack2);
        }
Esempio n. 31
0
        public void Pop01()
        {
            var capacity = 4;
            var cq       = new CircularStack <int>(capacity);

            for (int i = 0; i < capacity; i++)
            {
                cq.Push(i);
            }
            for (int i = 0; i < capacity; i++)
            {
                Assert.AreEqual(capacity - (i + 1), cq.Pop());
                Assert.AreEqual(capacity - (i + 1), cq.Count());
            }
            Assert.Throws <InvalidOperationException>(() => cq.Pop());
        }