public void GivenStackAndValuesAndIncrementInvalidValues_Increment_ShouldDoNothing()
        {
            var stack = new CustomStack(3);

            stack.Push(1); stack.Push(2); stack.Push(3);
            stack.Increment(0, 5);

            var result = stack.Pop();

            Assert.IsTrue(result == 3);
        }
        public void Test1()
        {
            //["CustomStack","push","push","pop","push","push","push","increment","increment","pop","pop","pop","pop"]
            //    [[3],[1],[2],[],[2],[3],[4],[5,100],[2,100],[],[],[],[]]


            //[null,null,null,2,null,null,null,null,null,103,202,201,-1]
            var stack = new CustomStack(3);

            stack.Push(1);
            stack.Push(2);

            var p_2 = stack.Pop();

            Assert.AreEqual(2, p_2);

            stack.Push(2);
            stack.Push(3);
            stack.Push(4);

            stack.Increment(5, 100);
            stack.Increment(2, 100);

            var p_103 = stack.Pop();

            Assert.AreEqual(103, p_103);
            var p_202 = stack.Pop();

            Assert.AreEqual(202, p_202);
            var p_201 = stack.Pop();

            Assert.AreEqual(201, p_201);
            var p_minus_1 = stack.Pop();

            Assert.AreEqual(-1, p_minus_1);
        }
        public void GivenStackAndValuesIncrementGreaterThanStackSize_Increment_IncrementAllStackValues()
        {
            var stack = new CustomStack(3);

            stack.Push(1); stack.Push(2); stack.Push(3);
            stack.Increment(3, 5);

            var result = stack.Pop();

            Assert.IsTrue(result == 8);

            result = stack.Pop();
            Assert.IsTrue(result == 7);

            result = stack.Pop();
            Assert.IsTrue(result == 6);
        }
        public void GivenStackAndValuesIncrementSmallerThanCurrentStackSize_Increment_IncrementCorrectStackValues()
        {
            var stack = new CustomStack(3);

            stack.Push(1); stack.Push(2); stack.Push(3);
            stack.Increment(2, 5);

            var result = stack.Pop();

            Assert.IsTrue(result == 3);

            result = stack.Pop();
            Assert.IsTrue(result == 7);

            result = stack.Pop();
            Assert.IsTrue(result == 6);
        }