Ejemplo n.º 1
0
        public void PUT_PushContract([PexAssumeUnderTest] Stack.Stack <int> s1, int x)
        {
            AssumePrecondition.IsTrue(true);

            int Old_s1Count = s1.Count;
            int Old_Top     = s1.Count > 0 ? s1.Peek() : PexChoose.Value <int>("old_top");
            //int Old_Top = s1.Count > 0 ? s1.Peek() : x--;
            //int Old_Top = s1.Peek();
            int  Old_x           = x;
            bool Old_s1ContainsX = s1.Contains(x);

            s1.Push(x);

            int  New_s1Count     = s1.Count;
            int  New_Top         = s1.Peek();
            int  New_x           = x;
            bool New_s1ContainsX = s1.Contains(x);

            PexObserve.ValueForViewing("$old_s1_Count", Old_s1Count);
            PexObserve.ValueForViewing("$new_s1_Count", New_s1Count);
            PexObserve.ValueForViewing("$old_s1_Peek", Old_Top);
            PexObserve.ValueForViewing("$new_s1_Peek", New_Top);
            PexObserve.ValueForViewing("$old_s1_x", Old_x);
            PexObserve.ValueForViewing("$new_s1_x", New_x);
            PexObserve.ValueForViewing("$Old_s1ContainsX", Old_s1ContainsX);
            PexObserve.ValueForViewing("$New_s1ContainsX", New_s1ContainsX);

            Assert.True(((New_s1ContainsX && New_s1Count == 1 + Old_s1Count && Old_x == New_Top && New_x == New_Top)));
        }
Ejemplo n.º 2
0
        public void PUT_PopContract([PexAssumeUnderTest] Stack.Stack <int> s1)
        {
            AssumePrecondition.IsTrue(s1.Count > 0);
            int Old_s1Count = s1.Count;
            //int Old_Ret = PexChoose.Value<int>("old_ret");
            int Old_Top = s1.Peek();

            /*code*/
            int New_Ret = s1.Pop();

            //Old_ret = New_ret;
            int New_Top = s1.Count > 0 ? s1.Peek() : PexChoose.Value <int>("old_top");
            //int New_Top = s1.Count > 0 ? s1.Peek() : Old_Top - 1;
            int  New_s1Count        = s1.Count;
            bool New_ContainsNewRet = s1.Contains(New_Ret);

            PexObserve.ValueForViewing("$Old_s1_Count", Old_s1Count);
            PexObserve.ValueForViewing("$New_s1_Count", New_s1Count);
            PexObserve.ValueForViewing("$Old_s1_Peek", Old_Top);
            PexObserve.ValueForViewing("$new_s1_Peek", New_Top);
            //PexObserve.ValueForViewing("$Old_ret", Old_Ret);
            PexObserve.ValueForViewing("$New_ret", New_Ret);
            PexObserve.ValueForViewing("$New_ContainsNewRet", New_ContainsNewRet);

            Assert.True(((New_s1Count == -1 + Old_s1Count && New_Ret == Old_Top)));
        }
Ejemplo n.º 3
0
        public void PUT_ContainsContract([PexAssumeUnderTest] Stack.Stack <int> s1, int x)
        {
            int undefinedTop = PexChoose.Value <int>("old_top");

            AssumePrecondition.IsTrue(true);
            int Old_s1Count = s1.Count;
            int Old_Top     = s1.Count > 0 ? s1.Peek() : undefinedTop;
            //bool Old_Ret = PexChoose.Value<bool>("default_Ret");
            bool Old_s1ContainsX = s1.Contains(x);
            /*Code */
            bool New_Ret = s1.Contains(x);

            int New_s1Count = s1.Count;
            //int New_Top = s1.Count > 0 ? s1.Peek() : undefinedTop;
            int  New_Top         = s1.Count > 0 ? s1.Peek() : PexChoose.Value <int>("new_top");
            bool New_s1ContainsX = s1.Contains(x);

            PexObserve.ValueForViewing("$old_s1_Count", Old_s1Count);
            PexObserve.ValueForViewing("$new_s1_Count", New_s1Count);
            PexObserve.ValueForViewing("$old_s1_Peek", Old_Top);
            PexObserve.ValueForViewing("$new_s1_Peek", New_Top);
            //PexObserve.ValueForViewing("$old_s1_ret", Old_Ret);
            PexObserve.ValueForViewing("$new_ret", New_Ret);
            PexObserve.ValueForViewing("$old_s1_contains_x", Old_s1ContainsX);
            PexObserve.ValueForViewing("$new_s1_contains_x", New_s1ContainsX);

            Assert.True(((New_s1Count == Old_s1Count)));
        }
Ejemplo n.º 4
0
        public void PeekTest()
        {
            var stack = new Stack.Stack <int>();

            stack.Push(7);
            stack.Push(8);
            Assert.Equal(8, stack.peek());
        }
Ejemplo n.º 5
0
        public void PushTest()
        {
            var stack = new Stack.Stack <int>();

            stack.Push(7);
            stack.Push(8);
            Assert.Equal(8, stack.data[stack.count - 1]);
        }
Ejemplo n.º 6
0
        public void ClearTest()
        {
            var stack = new Stack.Stack <int>();

            stack.Push(7);
            stack.Push(8);
            stack.clear();
            Assert.Equal(0, stack.data[0]);
        }
Ejemplo n.º 7
0
 public static Stack.Stack <int> Create([PexAssumeNotNull] int[] elems)
 {
     //PexAssume.AreDistinctValues(elems);
     PexAssume.TrueForAll(elems, e => e <= -6 || e > -6);
     //PexAssume.TrueForAll(0, elems.Length, _i => elems[_i] < -2 || elems[_i] >= 2);
     Stack.Stack <int> ret = new Stack.Stack <int>();
     for (int i = 0; i < elems.Length; i++)
     {
         ret.Push(elems[i]);
     }
     return(ret);
 }
Ejemplo n.º 8
0
 public static Stack.Stack <int> Create([PexAssumeNotNull] int[] elems)
 {
     //PexAssume.IsTrue(elems != null && elems.Length < 11);
     PexAssume.TrueForAll(0, elems.Length, _i => elems[_i] > -11 && elems[_i] < 11);
     Stack.Stack <int> ret = new Stack.Stack <int>(elems.Length + 2);// DataStructure has big enough capacity for Commutativity Test
     for (int i = 0; i < elems.Length; i++)
     {
         // For stack, add any element.
         ret.Push(elems[i]);
     }
     return(ret);
 }
Ejemplo n.º 9
0
 public void Test()
 {
     Stack.Stack<int> stack=new Stack.Stack<int>();
     stack.Push(1);
     stack.Push(2);
     stack.Push(2);
     stack.Push(2);
     Console.WriteLine(stack.Size);
     Console.WriteLine(stack.Top());
     Console.WriteLine(stack.Pop());
     Console.WriteLine(stack.Pop());
     Console.WriteLine(stack.Size);
 }
Ejemplo n.º 10
0
        public void MainTest()
        {
            var sut = new Stack.Stack <int>();

            sut.Push(5);

            PopAndAssert(sut, 5);

            Assert.ThrowsException <InvalidOperationException>(() => sut.Pop());

            sut.Push(7);
            sut.Push(9);
            sut.Push(1);

            PopAndAssert(sut, 1);
            PopAndAssert(sut, 9);
            PopAndAssert(sut, 7);
        }
Ejemplo n.º 11
0
        public static Stack.Stack <int> SortStack(Stack.Stack <int> stack)
        {
            Stack.Stack <int> rstk = new Stack.Stack <int>();

            while (!stack.IsEmpty())
            {
                int temp = stack.Pop();

                while (!rstk.IsEmpty() && rstk.Peek() > temp)
                {
                    stack.Push(rstk.Pop());
                }

                rstk.Push(temp);
            }

            return(rstk);
        }
Ejemplo n.º 12
0
        static void Main(string[] args)
        {
            int[]             input = { 1, 4, 5, 3, 2, 10 };
            Stack.Stack <int> stack = new Stack.Stack <int>();

            for (int i = 0; i < input.Length; i++)
            {
                stack.Push(input[i]);
            }

            stack.Print();

            Console.WriteLine();
            var sortedStack = SortStack(stack);

            sortedStack.Print();

            Console.ReadLine();
        }
Ejemplo n.º 13
0
        public void PUT_PeekContract([PexAssumeUnderTest] Stack.Stack <int> s1)
        {
            AssumePrecondition.IsTrue(s1.Count > 0);
            int Old_s1Count = s1.Count;


            /*Code */
            int New_Ret = s1.Peek();

            int  New_s1Count        = s1.Count;
            bool New_ContainsNewRet = s1.Contains(New_Ret);

            PexObserve.ValueForViewing("$old_s1_Count", Old_s1Count);
            PexObserve.ValueForViewing("$new_s1_Count", New_s1Count);

            PexObserve.ValueForViewing("$new_ret", New_Ret);
            PexObserve.ValueForViewing("$New_ContainsNewRet", New_ContainsNewRet);

            Assert.True(((New_ContainsNewRet && New_s1Count == Old_s1Count && Old_s1Count >= 1)));
        }
Ejemplo n.º 14
0
        public void PUT_CountContract([PexAssumeUnderTest] Stack.Stack <int> s1)
        {
            AssumePrecondition.IsTrue(true);
            //int Old_Ret = PexChoose.Value<int>("old_ret");
            int Old_Top = s1.Count > 0 ? s1.Peek() : PexChoose.Value <int>("old_top");

            /*Code */
            int New_Ret = s1.Count;

            int New_Top = s1.Count > 0 ? s1.Peek() : PexChoose.Value <int>("new_top");

            //int New_Top = Old_Top; // consult about this decision later
            //bool New_ContainsNewRet = s1.Contains(New_Ret);

            PexObserve.ValueForViewing("$old_s1_Peek", Old_Top);
            PexObserve.ValueForViewing("$new_s1_Peek", New_Top);
            //PexObserve.ValueForViewing("$old_s1_ret", Old_Ret);
            PexObserve.ValueForViewing("$new_ret", New_Ret);
            //PexObserve.ValueForViewing("$New_ContainsNewRet", New_ContainsNewRet);

            Assert.True(((Old_Top <= New_Ret && New_Ret >= 0) || (New_Top == Old_Top && New_Ret >= 0 && Old_Top >= 1) || (New_Top == Old_Top && New_Ret == 0) || (New_Ret == 0 && New_Top >= 1) || (New_Top <= Old_Top && New_Ret == 0) || (New_Top <= Old_Top && New_Top <= 0 && New_Ret == 0)));
        }