コード例 #1
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));
        }