Beispiel #1
0
        public void CanPopOffItem()
        {
            var stack = new MyGenericStack <string>();

            stack.Push("foo");
            Assert.AreEqual("foo", stack.Pop());
        }
Beispiel #2
0
        public void ShouldReturnItem()
        {
            var stack = new MyGenericStack <string>();

            stack.Push("foo");
            Assert.Equal("foo", stack.Pop());
        }
Beispiel #3
0
        public void ShouldReturnNull()
        {
            var stack = new MyGenericStack <string>();

            stack.Push(null);

            Assert.Equal(default, stack.Pop());
Beispiel #4
0
        public void CanPopOffMultipleItems()
        {
            var stack = new MyGenericStack <string>()
                        .Push("foo")
                        .Push("bar");

            Assert.AreEqual("bar", stack.Pop());
            Assert.AreEqual("foo", stack.Pop());
        }
Beispiel #5
0
        public void ShouldReturnMultipleItemsLastInFirstOut()
        {
            var stack = new MyGenericStack <string>();

            stack.Push("foo").Push("Hello");

            Assert.Equal("Hello", stack.Pop());
            Assert.Equal("foo", stack.Pop());
        }
        public static bool CheckParenthesis(string s)
        {
            List <Tuple <char, char> > validCombinaisons = new List <Tuple <char, char> >()
            {
                new Tuple <char, char>('(', ')'),
                new Tuple <char, char>('{', '}'),
                new Tuple <char, char>('[', ']')
            };

            List <char> openingParenthesis = new List <char>()
            {
                '(', '{', '['
            };

            var stack = new MyGenericStack <char>();

            foreach (var c in s)
            {
                if (openingParenthesis.Contains(c))
                {
                    stack.Push(c);
                }
                else
                {
                    if (stack.IsEmpty())
                    {
                        return(false);
                    }
                    else
                    {
                        var popItem = stack.Pop();
                        if (!validCombinaisons.Contains(new Tuple <char, char>(popItem, c)))
                        {
                            return(false);
                        }
                    }
                }
            }
            return(true);
        }
Beispiel #7
0
        public void CanPopFromEmptyStack()
        {
            var stack = new MyGenericStack <string>();

            Assert.AreEqual(null, stack.Pop());
        }