Esempio n. 1
0
        [Test] public void testDeepPeek()
        {
            GenericStack <string> stringStack = new GenericStack <string>();

            stringStack.Push("value 1");
            stringStack.Push("value 2");

            Assert.AreEqual("value 1", stringStack.DeepPeek(0)); // deepest stack
            Assert.AreEqual(2, stringStack.Count);
            Assert.AreEqual("value 2", stringStack.Top());
            Assert.AreEqual(2, stringStack.Count);
            Assert.AreEqual("value 2", stringStack.DeepPeek(1));
        }
Esempio n. 2
0
        [Test] public void testShove()
        {
            GenericStack <string> stringStack = new GenericStack <string>();

            stringStack.Shove("value 1", 0);
            Assert.AreEqual(1, stringStack.Count);
            Assert.AreEqual("value 1", stringStack.DeepPeek(0));
            Assert.AreEqual("value 1", stringStack.Peek(0));
            stringStack.Shove("value 4", 0);
            Assert.AreEqual(2, stringStack.Count);
            Assert.AreEqual("value 1", stringStack.DeepPeek(0));
            Assert.AreEqual("value 4", stringStack.Peek(0));
            stringStack.Pop();

            stringStack.Shove("value 2", 1);
            Assert.AreEqual(2, stringStack.Count);
            // Assert.AreEqual("value 2", stringStack.DeepPeek(0));
            // Assert.AreEqual("value 1", stringStack.DeepPeek(1));
            // Assert.AreEqual("[value 1 value 2]", stringStack.ToString());
            Assert.AreEqual("value 2", stringStack.DeepPeek(1));
            Assert.AreEqual("value 1", stringStack.DeepPeek(0));

            Assert.AreEqual(2, stringStack.Count);
            stringStack.Shove("value 3", 1);
            Assert.AreEqual(3, stringStack.Count);
            // Assert.AreEqual("[value 1 value 3 value 2]", stringStack.ToString());
            Assert.AreEqual("value 2", stringStack.DeepPeek(2));
            Assert.AreEqual("value 3", stringStack.DeepPeek(1));
            Assert.AreEqual("value 1", stringStack.DeepPeek(0));
            Assert.AreEqual("value 2", stringStack.Peek(0));
            Assert.AreEqual("value 3", stringStack.Peek(1));
            Assert.AreEqual("value 1", stringStack.Peek(2));
        }
Esempio n. 3
0
        [Test] public void testRot()
        {
            GenericStack <string> stringStack = new GenericStack <string>();

            stringStack.Push("value 1");
            stringStack.Push("value 2");
            stringStack.Rot();

            Assert.AreEqual(2, stringStack.Count);
            Assert.AreEqual("value 2", stringStack.DeepPeek(1));
            Assert.AreEqual("value 1", stringStack.DeepPeek(0));

            stringStack.Push("value 3");
            stringStack.Push("value 4");
            stringStack.Rot();
            Assert.AreEqual(4, stringStack.Count);
            Assert.AreEqual("value 2", stringStack.DeepPeek(3));
            Assert.AreEqual("value 4", stringStack.DeepPeek(2));
            Assert.AreEqual("value 3", stringStack.DeepPeek(1));
            Assert.AreEqual("value 1", stringStack.DeepPeek(0));
        }