Пример #1
0
        public void PUT_AddContract([PexAssumeUnderTest] ArrayList arrList, int x)
        {
            AssumePrecondition.IsTrue(true);

            int  Old_arrListCount        = arrList.Count;
            int  Old_x                   = x;
            int  Old_arrListIndexOfX     = arrList.IndexOf(x);
            int  Old_arrListLastIndexOfX = arrList.LastIndexOf(x);
            bool Old_arrListContainsX    = arrList.Contains(x);

            int New_Ret = arrList.Add(x);

            int New_arrListCount        = arrList.Count;
            int New_arrListIndexOfX     = arrList.IndexOf(x);
            int New_arrListLastIndexOfX = arrList.LastIndexOf(x);

            bool New_arrListContainsX = arrList.Contains(x);

            //bool New_containsNewRet = arrList.Contains(New_Ret);

            PexObserve.ValueForViewing("$old_arrList_Count", Old_arrListCount);
            PexObserve.ValueForViewing("$new_arrList_Count", New_arrListCount);
            PexObserve.ValueForViewing("$old_arrList_x", Old_x);
            PexObserve.ValueForViewing("$old_arrList_IndexOf_x", Old_arrListIndexOfX);
            PexObserve.ValueForViewing("$new_arrList_IndexOf_x", New_arrListIndexOfX);
            PexObserve.ValueForViewing("$old_arrList_LastIndexOf_x", Old_arrListLastIndexOfX);
            PexObserve.ValueForViewing("$new_arrList_LastIndexOf_x", New_arrListLastIndexOfX);
            PexObserve.ValueForViewing("$New_ret", New_Ret);
            PexObserve.ValueForViewing("$old_arrList_contains_x", Old_arrListContainsX);
            PexObserve.ValueForViewing("$new_arrList_contains_x", New_arrListContainsX);
            //PexObserve.ValueForViewing("$new_containsNewRet", New_containsNewRet);

            Assert.True(((New_arrListContainsX && New_arrListCount == 1 + Old_arrListCount && Old_arrListCount <= New_Ret && (!(New_arrListCount <= New_Ret)) && (!(New_Ret <= Old_arrListLastIndexOfX)) && New_Ret <= New_arrListLastIndexOfX && New_arrListLastIndexOfX <= New_Ret && Old_arrListContainsX && Old_arrListIndexOfX <= Old_arrListLastIndexOfX && New_arrListIndexOfX == Old_arrListIndexOfX && Old_arrListIndexOfX >= 0) || (New_arrListContainsX && New_arrListCount == 1 + Old_arrListCount && (!(New_arrListCount <= New_arrListIndexOfX)) && New_arrListIndexOfX <= New_arrListLastIndexOfX && New_arrListLastIndexOfX <= New_arrListIndexOfX && (!(Old_arrListContainsX)) && Old_arrListCount <= New_arrListIndexOfX && New_Ret == New_arrListIndexOfX && New_arrListIndexOfX >= 0 && Old_arrListIndexOfX == -1 && Old_arrListLastIndexOfX == -1)));
        }
Пример #2
0
        public void PUT_InsertContract([PexAssumeUnderTest] ArrayList arrList, int x, int index)
        {
            AssumePrecondition.IsTrue(index <= arrList.Count && index >= 0);

            int  Old_arrListCount        = arrList.Count;
            int  Old_x                   = x;
            int  Old_index               = index;
            int  Old_arrListIndexOfX     = arrList.IndexOf(x);
            int  Old_arrListLastIndexOfX = arrList.LastIndexOf(x);
            bool Old_arrListContainsX    = arrList.Contains(x);

            arrList.Insert(index, x);

            int  New_arrListCount        = arrList.Count;
            int  New_arrListIndexOfX     = arrList.IndexOf(x);
            int  New_arrListLastIndexOfX = arrList.LastIndexOf(x);
            bool New_arrListContainsX    = arrList.Contains(x);

            PexObserve.ValueForViewing("$old_arrList_Count", Old_arrListCount);
            PexObserve.ValueForViewing("$new_arrList_Count", New_arrListCount);
            PexObserve.ValueForViewing("$old_arrList_x", Old_x);
            PexObserve.ValueForViewing("$old_arrList_index", Old_index);
            PexObserve.ValueForViewing("$old_arrList_IndexOf_x", Old_arrListIndexOfX);
            PexObserve.ValueForViewing("$new_arrList_IndexOf_x", New_arrListIndexOfX);
            PexObserve.ValueForViewing("$old_arrList_LastIndexOf_x", Old_arrListLastIndexOfX);
            PexObserve.ValueForViewing("$new_arrList_LastIndexOf_x", New_arrListLastIndexOfX);
            PexObserve.ValueForViewing("$old_arrList_contains_x", Old_arrListContainsX);
            PexObserve.ValueForViewing("$new_arrList_contains_x", New_arrListContainsX);

            Assert.True(((New_arrListContainsX && New_arrListCount == 1 + Old_arrListCount && (!(New_arrListCount <= New_arrListLastIndexOfX)) && New_arrListIndexOfX <= Old_index && Old_index <= New_arrListLastIndexOfX && Old_arrListIndexOfX <= Old_arrListLastIndexOfX && (!(New_arrListLastIndexOfX <= Old_arrListLastIndexOfX)) && Old_arrListIndexOfX >= -1 && New_arrListIndexOfX >= 0)));
        }
Пример #3
0
        public void PUT_LastIndexOfContract([PexAssumeUnderTest] ArrayList arrList, int x)
        {
            AssumePrecondition.IsTrue(true);

            int Old_arrListCount    = arrList.Count;
            int Old_x               = x;
            int Old_arrListIndexOfX = arrList.IndexOf(x);
            //int Old_arrListLastIndexOfX = arrList.LastIndexOf(x);
            bool Old_arrListContainsX = arrList.Contains(x);

            int New_Ret = arrList.LastIndexOf(x);

            int New_arrListCount    = arrList.Count;
            int New_arrListIndexOfX = arrList.IndexOf(x);
            //int New_arrListLastIndexOfX = arrList.LastIndexOf(x);
            bool New_arrListContainsX = arrList.Contains(x);

            PexObserve.ValueForViewing("$old_arrList_Count", Old_arrListCount);
            PexObserve.ValueForViewing("$new_arrList_Count", New_arrListCount);
            PexObserve.ValueForViewing("$old_arrList_x", Old_x);
            PexObserve.ValueForViewing("$old_arrList_IndexOf_x", Old_arrListIndexOfX);
            PexObserve.ValueForViewing("$new_arrList_IndexOf_x", New_arrListIndexOfX);
            //PexObserve.ValueForViewing("$old_arrList_LastIndexOf_x", Old_arrListLastIndexOfX);
            //PexObserve.ValueForViewing("$new_arrList_LastIndexOf_x", New_arrListLastIndexOfX);
            PexObserve.ValueForViewing("$New_ret", New_Ret);
            PexObserve.ValueForViewing("$old_arrList_contains_x", Old_arrListContainsX);
            PexObserve.ValueForViewing("$new_arrList_contains_x", New_arrListContainsX);

            Assert.True(((New_arrListCount == Old_arrListCount && New_arrListIndexOfX == Old_arrListIndexOfX && New_arrListIndexOfX != Old_arrListCount && New_Ret != Old_arrListCount && Old_arrListIndexOfX != New_arrListCount && New_arrListIndexOfX != New_arrListCount && New_Ret != New_arrListCount && New_arrListCount <= Old_arrListCount && New_arrListIndexOfX < Old_arrListCount && New_arrListIndexOfX <= Old_arrListCount && New_Ret < Old_arrListCount && New_Ret <= Old_arrListCount && Old_arrListIndexOfX < New_arrListCount && Old_arrListIndexOfX <= New_arrListCount && New_arrListIndexOfX < New_arrListCount && New_arrListIndexOfX <= New_arrListCount && New_Ret < New_arrListCount && New_Ret <= New_arrListCount && New_arrListIndexOfX <= Old_arrListIndexOfX && 0 <= Old_arrListCount && -1 < Old_arrListCount && -1 <= Old_arrListCount && 0 <= New_arrListCount && -1 < New_arrListCount && -1 <= New_arrListCount && -1 <= Old_arrListIndexOfX && -1 <= New_arrListIndexOfX && -1 <= New_Ret) && (((Old_arrListContainsX && 1 <= Old_arrListCount && 0 < Old_arrListCount && 1 <= New_arrListCount && 0 < New_arrListCount && 0 <= Old_arrListIndexOfX && -1 < Old_arrListIndexOfX && 0 <= New_arrListIndexOfX && -1 < New_arrListIndexOfX && 0 <= New_Ret && -1 < New_Ret) && New_arrListContainsX) || ((New_Ret == Old_arrListIndexOfX && (!(Old_arrListContainsX)) && New_Ret == New_arrListIndexOfX && New_Ret <= Old_arrListIndexOfX && New_Ret <= New_arrListIndexOfX && -1 == Old_arrListIndexOfX && -1 == New_arrListIndexOfX && -1 == New_Ret) && (!(New_arrListContainsX))))));
        }
Пример #4
0
        public void PUT_MinimumContract([PexAssumeUnderTest] BinaryHeap.BinaryHeap <int, int> bh)
        {
            AssumePrecondition.IsTrue(bh.Count > 0);

            int Old_bhCount = bh.Count;
            //int Old_bhCapacity = bh.Capacity;
            int Old_bhMinimumKey   = bh.Minimum().Key;
            int Old_bhMinimumValue = bh.Minimum().Value;


            //code
            var m             = bh.Minimum();
            int New_Ret_Key   = m.Key;
            int New_Ret_Value = m.Value;

            int New_bhCount = bh.Count;
            //int New_bhCapacity = bh.Capacity;
            int New_bhMinimumKey   = bh.Minimum().Key;
            int New_bhMinimumValue = bh.Minimum().Value;

            PexObserve.ValueForViewing("$old_bh_count", Old_bhCount);
            PexObserve.ValueForViewing("$new_bh_count", New_bhCount);
            //PexObserve.ValueForViewing("$old_bh_capacity", Old_bhCapacity);
            //PexObserve.ValueForViewing("$new_bh_capacity", New_bhCapacity);
            PexObserve.ValueForViewing("$old_bh_minimum_key", Old_bhMinimumKey);
            PexObserve.ValueForViewing("$new_bh_minimum_key", New_bhMinimumKey);
            PexObserve.ValueForViewing("$old_bh_minimum_value", Old_bhMinimumValue);
            PexObserve.ValueForViewing("$new_bh_minimum_value", New_bhMinimumValue);
            PexObserve.ValueForViewing("$new_ret_key", New_Ret_Key);
            PexObserve.ValueForViewing("$new_ret_value", New_Ret_Value);

            Assert.True(((Old_bhCount <= New_bhCount && New_bhCount <= Old_bhCount && New_Ret_Key == Old_bhMinimumKey && New_Ret_Value <= Old_bhMinimumValue && New_bhMinimumValue <= New_Ret_Value && New_bhMinimumKey == Old_bhMinimumKey && Old_bhMinimumValue <= New_bhMinimumValue && Old_bhCount >= 1)));
        }
        public void PUT_ContainsContract([PexAssumeUnderTest] Queue.Queue <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_s1ContainsX = s1.Contains(x);

            /*Code */
            bool New_Ret = s1.Contains(x);

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

            //int New_Top = s1.Count > 0 ? s1.Peek() : Old_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("$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 && Old_s1Count <= New_s1Count && (!(New_Ret)) && New_s1Count >= 0) || (New_s1Count <= Old_s1Count && Old_s1Count <= New_s1Count && Old_Top <= New_Top && New_Top <= Old_Top && New_s1Count >= 1)));
        }
Пример #6
0
        public void PUT_RemoveContract([PexAssumeUnderTest] ArrayList arrList, int x)
        {
            AssumePrecondition.IsTrue(true);

            int  Old_arrListCount        = arrList.Count;
            int  Old_x                   = x;
            int  Old_arrListIndexOfX     = arrList.IndexOf(x);
            int  Old_arrListLastIndexOfX = arrList.LastIndexOf(x);
            bool Old_arrListContainsX    = arrList.Contains(x);

            arrList.Remove(x);

            int  New_arrListCount        = arrList.Count;
            int  New_x                   = x;
            int  New_arrListIndexOfX     = arrList.IndexOf(x);
            int  New_arrListLastIndexOfX = arrList.LastIndexOf(x);
            bool New_arrListContainsX    = arrList.Contains(x);

            PexObserve.ValueForViewing("$old_arrList_Count", Old_arrListCount);
            PexObserve.ValueForViewing("$new_arrList_Count", New_arrListCount);
            PexObserve.ValueForViewing("$old_arrList_x", Old_x);
            PexObserve.ValueForViewing("$new_arrList_x", New_x);
            PexObserve.ValueForViewing("$old_arrList_IndexOf_x", Old_arrListIndexOfX);
            PexObserve.ValueForViewing("$new_arrList_IndexOf_x", New_arrListIndexOfX);
            PexObserve.ValueForViewing("$old_arrList_LastIndexOf_x", Old_arrListLastIndexOfX);
            PexObserve.ValueForViewing("$new_arrList_LastIndexOf_x", New_arrListLastIndexOfX);
            PexObserve.ValueForViewing("$old_arrList_contains_x", Old_arrListContainsX);
            PexObserve.ValueForViewing("$new_arrList_contains_x", New_arrListContainsX);

            Assert.True(((New_x == Old_x && Old_arrListIndexOfX != Old_arrListCount && New_arrListIndexOfX != Old_arrListCount && Old_arrListLastIndexOfX != Old_arrListCount && New_arrListLastIndexOfX != Old_arrListCount && New_arrListIndexOfX != New_arrListCount && New_arrListLastIndexOfX != New_arrListCount) && ((((New_arrListCount == Old_arrListIndexOfX + Old_arrListCount - Old_arrListLastIndexOfX && New_arrListIndexOfX == Old_arrListIndexOfX && Old_arrListIndexOfX != New_arrListCount && New_arrListLastIndexOfX == New_arrListIndexOfX) && (((New_arrListCount == Old_x && Old_x == New_arrListCount && Old_arrListIndexOfX != Old_x && New_arrListIndexOfX != Old_x && New_arrListLastIndexOfX != Old_x && Old_arrListIndexOfX != New_x && New_arrListIndexOfX != New_x && New_arrListLastIndexOfX != New_x) && New_x == New_arrListCount) || ((Old_x != New_arrListCount && New_x != New_arrListCount) && (!(New_x == New_arrListCount))))) && New_arrListLastIndexOfX == Old_arrListIndexOfX) || (((Old_arrListContainsX && New_arrListCount == Old_arrListCount - 1 && New_arrListCount != Old_arrListCount && New_arrListLastIndexOfX != Old_arrListIndexOfX && Old_arrListLastIndexOfX != New_arrListIndexOfX && New_arrListLastIndexOfX != Old_arrListLastIndexOfX) && (((Old_x != Old_arrListCount && New_x != Old_arrListCount && Old_arrListIndexOfX == Old_x && New_arrListLastIndexOfX != Old_x && New_arrListLastIndexOfX != New_x) && Old_arrListIndexOfX == New_x) || ((Old_arrListIndexOfX != Old_x && Old_arrListIndexOfX != New_x) && (!(Old_arrListIndexOfX == New_x))))) && (!(New_arrListLastIndexOfX == Old_arrListIndexOfX))))));
        }
Пример #7
0
        public void PUT_EnqueueContract([PexAssumeUnderTest] Queue.Queue <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+1;

            //int Old_Top = PexChoose.Value<int>("old_top");
            int  Old_x           = x;
            bool Old_s1ContainsX = s1.Contains(x);

            s1.Enqueue(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_s1_contains_x", Old_s1ContainsX);
            PexObserve.ValueForViewing("$new_s1_contains_x", New_s1ContainsX);

            Assert.True(((New_s1ContainsX && New_s1Count == 1 + Old_s1Count && New_x == Old_x && (!(Old_Top == New_s1Count)))));
        }
Пример #8
0
        public void PUT_IndexOfContract([PexAssumeUnderTest] BinaryHeap.BinaryHeap <int, int> bh, int value)
        {
            AssumePrecondition.IsTrue(true);

            int Old_bhCount        = bh.Count;
            int Old_bhCapacity     = bh.Capacity;
            int Old_bhMinimumKey   = bh.Count > 0 ? bh.Minimum().Key : PexChoose.Value <int>("old_bhMinimumKey");
            int Old_bhMinimumValue = bh.Count > 0 ? bh.Minimum().Value : PexChoose.Value <int>("old_bhMinimumValue");
            int Old_value          = value;

            //code
            int New_Ret = bh.IndexOf(value);

            int New_bhCount        = bh.Count;
            int New_bhCapacity     = bh.Capacity;
            int New_bhMinimumKey   = bh.Count > 0 ? bh.Minimum().Key : PexChoose.Value <int>("new_bhMinimumKey");
            int New_bhMinimumValue = bh.Count > 0 ? bh.Minimum().Value : PexChoose.Value <int>("new_bhMinimumValue");
            int New_value          = value;

            PexObserve.ValueForViewing("$old_bh_count", Old_bhCount);
            PexObserve.ValueForViewing("$new_bh_count", New_bhCount);
            PexObserve.ValueForViewing("$old_bh_capacity", Old_bhCapacity);
            PexObserve.ValueForViewing("$new_bh_capacity", New_bhCapacity);
            PexObserve.ValueForViewing("$old_bh_minimum_key", Old_bhMinimumKey);
            PexObserve.ValueForViewing("$new_bh_minimum_key", New_bhMinimumKey);
            PexObserve.ValueForViewing("$old_bh_minimum_value", Old_bhMinimumValue);
            PexObserve.ValueForViewing("$new_bh_minimum_value", New_bhMinimumValue);
            PexObserve.ValueForViewing("$old_bh_value", Old_value);
            PexObserve.ValueForViewing("$new_bh_value", New_value);
            PexObserve.ValueForViewing("$new_ret", New_Ret);

            Assert.IsTrue(false);
        }
Пример #9
0
        public void PUT_ContainsContract([PexAssumeUnderTest] ArrayList arrList, int x)
        {
            AssumePrecondition.IsTrue(true);

            int Old_arrListCount = arrList.Count;
            int Old_x            = x;
            //bool Old_Ret = PexChoose.VarrListue<bool>("default_Ret");
            int  Old_arrListIndexOfX     = arrList.IndexOf(x);
            int  Old_arrListLastIndexOfX = arrList.LastIndexOf(x);
            bool Old_arrListContainsX    = arrList.Contains(x);

            bool New_Ret = arrList.Contains(x);

            int  New_arrListCount        = arrList.Count;
            int  New_x                   = x;
            int  New_arrListIndexOfX     = arrList.IndexOf(x);
            int  New_arrListLastIndexOfX = arrList.LastIndexOf(x);
            bool New_arrListContainsX    = arrList.Contains(x);

            PexObserve.ValueForViewing("$old_arrList_Count", Old_arrListCount);
            PexObserve.ValueForViewing("$new_arrList_Count", New_arrListCount);
            PexObserve.ValueForViewing("$old_arrList_x", Old_x);
            PexObserve.ValueForViewing("$new_arrList_x", New_x);
            PexObserve.ValueForViewing("$old_arrList_IndexOf_x", Old_arrListIndexOfX);
            PexObserve.ValueForViewing("$new_arrList_IndexOf_x", New_arrListIndexOfX);
            PexObserve.ValueForViewing("$old_arrList_LastIndexOf_x", Old_arrListLastIndexOfX);
            PexObserve.ValueForViewing("$new_arrList_LastIndexOf_x", New_arrListLastIndexOfX);
            //PexObserve.ValueForViewing("$Old_ret", Old_Ret);
            PexObserve.ValueForViewing("$New_ret", New_Ret);
            PexObserve.ValueForViewing("$old_arrList_contains_x", Old_arrListContainsX);
            PexObserve.ValueForViewing("$new_arrList_contains_x", New_arrListContainsX);

            Assert.True(((New_arrListCount == Old_arrListCount && New_x == Old_x && New_arrListIndexOfX == Old_arrListIndexOfX && New_arrListLastIndexOfX == Old_arrListLastIndexOfX && Old_arrListIndexOfX != Old_arrListCount && New_arrListIndexOfX != Old_arrListCount && Old_arrListLastIndexOfX != Old_arrListCount && New_arrListLastIndexOfX != Old_arrListCount && Old_arrListIndexOfX != New_arrListCount && New_arrListIndexOfX != New_arrListCount && Old_arrListLastIndexOfX != New_arrListCount && New_arrListLastIndexOfX != New_arrListCount) && ((((New_Ret && Old_arrListContainsX) && (((New_arrListLastIndexOfX == Old_arrListIndexOfX && Old_arrListLastIndexOfX == Old_arrListIndexOfX && Old_arrListLastIndexOfX == New_arrListIndexOfX) && New_arrListLastIndexOfX == New_arrListIndexOfX) || ((New_arrListIndexOfX == 0 && Old_arrListLastIndexOfX != Old_arrListIndexOfX && New_arrListLastIndexOfX != Old_arrListIndexOfX && Old_arrListLastIndexOfX != New_arrListIndexOfX && New_arrListLastIndexOfX != New_arrListIndexOfX) && (!(New_arrListLastIndexOfX == New_arrListIndexOfX))))) && New_arrListContainsX) || (((New_arrListLastIndexOfX == Old_arrListIndexOfX && (!(New_Ret)) && (!(Old_arrListContainsX)) && Old_arrListLastIndexOfX == Old_arrListIndexOfX && Old_arrListLastIndexOfX == New_arrListIndexOfX && New_arrListLastIndexOfX == New_arrListIndexOfX) && (((New_x == Old_arrListCount && Old_x == Old_arrListCount && Old_x == New_arrListCount && Old_arrListIndexOfX != Old_x && New_arrListIndexOfX != Old_x && Old_arrListLastIndexOfX != Old_x && New_arrListLastIndexOfX != Old_x && Old_arrListIndexOfX != New_x && New_arrListIndexOfX != New_x && Old_arrListLastIndexOfX != New_x && New_arrListLastIndexOfX != New_x) && New_x == New_arrListCount) || ((Old_x != Old_arrListCount && New_x != Old_arrListCount && Old_x != New_arrListCount && New_x != New_arrListCount) && (!(New_x == New_arrListCount))))) && (!(New_arrListContainsX))))));
        }
Пример #10
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)));
        }
Пример #11
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)));
        }
Пример #12
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)));
        }
Пример #13
0
        public void PUT_EdgeCountContract([PexAssumeUnderTest] UndirectedGraph.UndirectedGraph <int, Edge <int> > ug)
        {
            AssumePrecondition.IsTrue(true);

            int  Old_ugVertexCount        = ug.VertexCount;
            int  Old_ugEdgeCount          = ug.EdgeCount;
            int  Old_Ret                  = PexChoose.Value <int>("old_Ret");
            bool Old_ugAllowParallelEdges = ug.AllowParallelEdges;

            //code
            int New_Ret = ug.EdgeCount;

            int  New_ugVertexCount        = ug.VertexCount;
            int  New_ugEdgeCount          = ug.EdgeCount;
            bool New_ugAllowParallelEdges = ug.AllowParallelEdges;

            PexObserve.ValueForViewing("$old_ug_vertex_count", Old_ugVertexCount);
            PexObserve.ValueForViewing("$new_ug_vertex_count", New_ugVertexCount);
            PexObserve.ValueForViewing("$old_ug_edge_count", Old_ugEdgeCount);
            PexObserve.ValueForViewing("$new_ug_edge_count", New_ugEdgeCount);
            PexObserve.ValueForViewing("$old_ret", Old_Ret);
            PexObserve.ValueForViewing("$new_ret", New_Ret);
            PexObserve.ValueForViewing("$old_ug_allow_parallel_edges", Old_ugAllowParallelEdges);
            PexObserve.ValueForViewing("$new_ug_allow_parallel_edges", New_ugAllowParallelEdges);

            PexAssert.IsTrue(false);
        }
Пример #14
0
        public void PUT_GetContract([PexAssumeUnderTest] Dictionary.Dictionary <int, int> d, int x)
        {
            AssumePrecondition.IsTrue(d.ContainsKey(x));

            int  Old_dCount        = d.Count;
            int  Old_x             = x;
            bool Old_dContainsKeyX = d.ContainsKey(x);

            int New_Ret = d[x];

            int New_dCount = d.Count;

            bool New_dContainsKeyX       = d.ContainsKey(x);
            bool New_ContainsKeyNewRet   = d.ContainsKey(New_Ret);
            bool New_ContainsValueNewRet = d.ContainsValue(New_Ret);

            PexObserve.ValueForViewing("$old_d_Count", Old_dCount);
            PexObserve.ValueForViewing("$new_d_Count", New_dCount);
            PexObserve.ValueForViewing("$old_d_x", Old_x);
            PexObserve.ValueForViewing("$New_ret", New_Ret);
            PexObserve.ValueForViewing("$old_d_contains_key_x", Old_dContainsKeyX);
            PexObserve.ValueForViewing("$new_d_contains_key_x", New_dContainsKeyX);
            PexObserve.ValueForViewing("$old_d_contains_key_x", New_ContainsKeyNewRet);
            PexObserve.ValueForViewing("$new_d_contains_key_x", New_ContainsValueNewRet);

            Assert.True(((New_dCount == Old_dCount && Old_dContainsKeyX && New_dContainsKeyX && New_ContainsValueNewRet && (!(New_Ret == Old_x)) && Old_dCount >= 1) || (New_dCount == Old_dCount && Old_dContainsKeyX && New_dContainsKeyX && New_ContainsValueNewRet && New_ContainsKeyNewRet && Old_dCount >= 1)));
        }
Пример #15
0
        public void PUT_IndexOfContract([PexAssumeUnderTest] BinaryHeap.BinaryHeap <int, int> bh, int value)
        {
            // ahmad you can do this one: alternate semantics is that old ket and new key are the same; The same holds true for value
            AssumePrecondition.IsTrue(true);

            int Old_bhCount        = bh.Count;
            int Old_bhMinimumKey   = bh.Count > 0 ? bh.Minimum().Key : PexChoose.Value <int>("old_bhMinimumKey");
            int Old_bhMinimumValue = bh.Count > 0 ? bh.Minimum().Value : PexChoose.Value <int>("old_bhMinimumValue");
            int Old_value          = value;

            //code
            int New_Ret = bh.IndexOf(value);

            int New_bhCount        = bh.Count;
            int New_bhMinimumKey   = bh.Count > 0 ? bh.Minimum().Key : PexChoose.Value <int>("new_bhMinimumKey");
            int New_bhMinimumValue = bh.Count > 0 ? bh.Minimum().Value : PexChoose.Value <int>("new_bhMinimumValue");

            PexObserve.ValueForViewing("$old_bh_count", Old_bhCount);
            PexObserve.ValueForViewing("$new_bh_count", New_bhCount);
            PexObserve.ValueForViewing("$old_bh_minimum_key", Old_bhMinimumKey);
            PexObserve.ValueForViewing("$new_bh_minimum_key", New_bhMinimumKey);
            PexObserve.ValueForViewing("$old_bh_minimum_value", Old_bhMinimumValue);
            PexObserve.ValueForViewing("$new_bh_minimum_value", New_bhMinimumValue);
            PexObserve.ValueForViewing("$old_bh_value", Old_value);
            PexObserve.ValueForViewing("$new_ret", New_Ret);


            Assert.True((((!(New_Ret == Old_bhCount)) && New_Ret <= Old_bhCount && Old_bhCount <= New_bhCount && New_bhCount <= Old_bhCount && New_Ret >= -1)));
        }
Пример #16
0
        public void PUT_SetContract([PexAssumeUnderTest] ArrayList arrList, int x, int index)
        {
            AssumePrecondition.IsTrue(index < arrList.Count && index >= 0);

            int  Old_arrListCount        = arrList.Count;
            int  Old_x                   = x;
            int  Old_index               = index;
            int  Old_arrListIndexOfX     = arrList.IndexOf(x);
            int  Old_arrListLastIndexOfX = arrList.LastIndexOf(x);
            bool Old_arrListContainsX    = arrList.Contains(x);

            arrList[index] = x;

            int  New_arrListCount        = arrList.Count;
            int  New_x                   = x;
            int  New_index               = index;
            int  New_arrListIndexOfX     = arrList.IndexOf(x);
            int  New_arrListLastIndexOfX = arrList.LastIndexOf(x);
            bool New_arrListContainsX    = arrList.Contains(x);

            PexObserve.ValueForViewing("$old_arrList_Count", Old_arrListCount);
            PexObserve.ValueForViewing("$new_arrList_Count", New_arrListCount);
            PexObserve.ValueForViewing("$old_arrList_x", Old_x);
            PexObserve.ValueForViewing("$new_arrList_x", New_x);
            PexObserve.ValueForViewing("$old_arrList_index", Old_index);
            PexObserve.ValueForViewing("$new_arrList_index", New_index);
            PexObserve.ValueForViewing("$old_arrList_IndexOf_x", Old_arrListIndexOfX);
            PexObserve.ValueForViewing("$new_arrList_IndexOf_x", New_arrListIndexOfX);
            PexObserve.ValueForViewing("$old_arrList_LastIndexOf_x", Old_arrListLastIndexOfX);
            PexObserve.ValueForViewing("$new_arrList_LastIndexOf_x", New_arrListLastIndexOfX);
            PexObserve.ValueForViewing("$old_arrList_contains_x", Old_arrListContainsX);
            PexObserve.ValueForViewing("$new_arrList_contains_x", New_arrListContainsX);

            Assert.True(((New_arrListContainsX && New_arrListCount == Old_arrListCount && New_x == Old_x && New_index == Old_index && Old_index != Old_arrListCount && New_index != Old_arrListCount && Old_arrListIndexOfX != Old_arrListCount && New_arrListIndexOfX != Old_arrListCount && Old_arrListLastIndexOfX != Old_arrListCount && New_arrListLastIndexOfX != Old_arrListCount && Old_index != New_arrListCount && New_index != New_arrListCount && Old_arrListIndexOfX != New_arrListCount && New_arrListIndexOfX != New_arrListCount && Old_arrListLastIndexOfX != New_arrListCount && New_arrListLastIndexOfX != New_arrListCount) && ((((Old_arrListContainsX && New_arrListLastIndexOfX == Old_arrListCount - 1) && (((New_x == 0 && New_index == 0 && New_arrListIndexOfX == 0 && New_arrListLastIndexOfX == Old_arrListLastIndexOfX && Old_x != Old_arrListCount && New_x != Old_arrListCount && Old_x != New_arrListCount && New_x != New_arrListCount && Old_index == Old_x && New_index == Old_x && Old_arrListIndexOfX == Old_x && New_arrListIndexOfX == Old_x && Old_index == New_x && Old_arrListIndexOfX == New_x && New_arrListIndexOfX == New_x && Old_arrListIndexOfX == Old_index && New_arrListIndexOfX == Old_index && Old_arrListIndexOfX == New_index && New_arrListIndexOfX == New_index) && New_index == New_x) || ((Old_index != Old_x && New_index != Old_x && Old_index != New_x && New_index != New_x) && (!(New_index == New_x))))) && New_arrListIndexOfX == Old_arrListIndexOfX) || (((New_arrListIndexOfX == Old_index && Old_arrListIndexOfX != Old_index && Old_arrListLastIndexOfX != Old_index && Old_arrListIndexOfX != New_index && New_arrListIndexOfX == New_index && Old_arrListLastIndexOfX != New_index && New_arrListIndexOfX != Old_arrListIndexOfX && Old_arrListLastIndexOfX != New_arrListIndexOfX) && (((New_x == Old_arrListCount && New_arrListLastIndexOfX == Old_index && (!(Old_arrListContainsX)) && Old_x == Old_arrListCount && Old_x == New_arrListCount && Old_index != Old_x && New_index != Old_x && Old_arrListIndexOfX != Old_x && New_arrListIndexOfX != Old_x && Old_arrListLastIndexOfX != Old_x && New_arrListLastIndexOfX != Old_x && Old_index != New_x && New_index != New_x && Old_arrListIndexOfX != New_x && New_arrListIndexOfX != New_x && Old_arrListLastIndexOfX != New_x && New_arrListLastIndexOfX != New_x && New_arrListLastIndexOfX == New_index && Old_arrListLastIndexOfX == Old_arrListIndexOfX && New_arrListLastIndexOfX != Old_arrListIndexOfX && New_arrListLastIndexOfX == New_arrListIndexOfX && New_arrListLastIndexOfX != Old_arrListLastIndexOfX) && New_x == New_arrListCount) || ((Old_x != Old_arrListCount && New_x != Old_arrListCount && Old_x != New_arrListCount && New_x != New_arrListCount) && (!(New_x == New_arrListCount))))) && (!(New_arrListIndexOfX == Old_arrListIndexOfX))))));
        }
Пример #17
0
        public void PUT_RemoveContract([PexAssumeUnderTest] HashSet.HashSet <int> hs, int x)
        {
            AssumePrecondition.IsTrue(true);

            int  Old_hsCount     = hs.Count;
            int  Old_x           = x;
            bool Old_hsContainsX = hs.Contains(x);

            bool New_Ret = hs.Remove(x);

            int  New_hsCount     = hs.Count;
            int  New_x           = x;
            bool New_hsContainsX = hs.Contains(x);

            PexObserve.ValueForViewing("$old_hs_Count", Old_hsCount);
            PexObserve.ValueForViewing("$new_hs_Count", New_hsCount);
            PexObserve.ValueForViewing("$old_hs_x", Old_x);
            PexObserve.ValueForViewing("$new_hs_x", New_x);
            PexObserve.ValueForViewing("$New_ret", New_Ret);
            PexObserve.ValueForViewing("$old_hs_contains_x", Old_hsContainsX);
            PexObserve.ValueForViewing("$new_hs_contains_x", New_hsContainsX);


            Assert.True(((New_x == Old_x && (!(New_hsContainsX))) && ((((New_Ret && New_hsCount == Old_hsCount - 1 && New_hsCount != Old_hsCount) && (((New_hsCount == Old_x && Old_x != Old_hsCount && New_x != Old_hsCount && Old_x == New_hsCount) && New_x == New_hsCount) || ((Old_x != New_hsCount && New_x != New_hsCount) && (!(New_x == New_hsCount))))) && Old_hsContainsX) || (((New_hsCount == Old_hsCount && (!(New_Ret))) && (((New_x == Old_hsCount && Old_x == Old_hsCount && Old_x == New_hsCount) && New_x == New_hsCount) || ((Old_x != Old_hsCount && New_x != Old_hsCount && Old_x != New_hsCount && New_x != New_hsCount) && (!(New_x == New_hsCount))))) && (!(Old_hsContainsX))))));
        }
Пример #18
0
        public void PUT_ContainsValueContract([PexAssumeUnderTest] Dictionary.Dictionary <int, int> d, int y)
        {
            AssumePrecondition.IsTrue(true);

            int Old_dCount = d.Count;
            int Old_y      = y;
            //bool Old_Ret = PexChoose.Value<bool>("default_Ret");
            bool Old_dContainsValueY = d.ContainsValue(y);

            bool New_Ret = d.ContainsValue(y);

            int  New_dCount          = d.Count;
            int  New_y               = y;
            bool New_dContainsValueY = d.ContainsValue(y);

            PexObserve.ValueForViewing("$old_d_Count", Old_dCount);
            PexObserve.ValueForViewing("$new_d_Count", New_dCount);
            PexObserve.ValueForViewing("$old_d_y", Old_y);
            PexObserve.ValueForViewing("$new_d_y", New_y);
            //PexObserve.ValueForViewing("$Old_ret", Old_Ret);
            PexObserve.ValueForViewing("$New_ret", New_Ret);
            PexObserve.ValueForViewing("$old_d_contains_value_y", Old_dContainsValueY);
            PexObserve.ValueForViewing("$new_d_contains_value_y", New_dContainsValueY);

            Assert.IsTrue(((New_dCount == Old_dCount && New_y == Old_y) && ((((New_Ret && Old_dContainsValueY) && (((New_y == Old_dCount && Old_y == Old_dCount && Old_y == New_dCount) && New_y == New_dCount) || ((Old_y != Old_dCount && New_y != Old_dCount && Old_y != New_dCount && New_y != New_dCount) && (!(New_y == New_dCount))))) && New_dContainsValueY) || ((((!(New_Ret)) && (!(Old_dContainsValueY))) && (((New_y == Old_dCount && Old_y == Old_dCount && Old_y == New_dCount) && New_y == New_dCount) || ((Old_y != Old_dCount && New_y != Old_dCount && Old_y != New_dCount && New_y != New_dCount) && (!(New_y == New_dCount))))) && (!(New_dContainsValueY))))));
        }
Пример #19
0
        public void PUT_SetContract([PexAssumeUnderTest] Dictionary.Dictionary <int, int> d, int x, int y)
        {
            AssumePrecondition.IsTrue(true);

            int  Old_dCount          = d.Count;
            int  Old_x               = x;
            int  Old_y               = y;
            bool Old_dContainsKeyX   = d.ContainsKey(x);
            bool Old_dContainsValueY = d.ContainsValue(y);

            d[x] = y;

            int  New_dCount          = d.Count;
            int  New_x               = x;
            int  New_y               = y;
            bool New_dContainsKeyX   = d.ContainsKey(x);
            bool New_dContainsValueY = d.ContainsValue(y);

            PexObserve.ValueForViewing("$old_d_Count", Old_dCount);
            PexObserve.ValueForViewing("$new_d_Count", New_dCount);
            PexObserve.ValueForViewing("$old_d_x", Old_x);
            PexObserve.ValueForViewing("$new_d_x", New_x);
            PexObserve.ValueForViewing("$old_d_y", Old_y);
            PexObserve.ValueForViewing("$new_d_y", New_y);
            PexObserve.ValueForViewing("$old_d_contains_key_x", Old_dContainsKeyX);
            PexObserve.ValueForViewing("$new_d_contains_key_x", New_dContainsKeyX);
            PexObserve.ValueForViewing("$old_d_contains_value_y", Old_dContainsValueY);
            PexObserve.ValueForViewing("$new_d_contains_value_y", New_dContainsValueY);

            Assert.IsTrue(((New_dContainsKeyX && New_dContainsValueY && New_x == Old_x && New_y == Old_y) && ((((New_dCount == Old_dCount) && (((New_y == Old_x && Old_y == Old_x && Old_y == New_x) && New_y == New_x) || ((Old_y != Old_x && New_y != Old_x && Old_y != New_x && New_y != New_x) && (!(New_y == New_x))))) && Old_dContainsKeyX) || (((New_dCount == Old_dCount + 1 && New_dCount != Old_dCount) && (((Old_y == Old_dCount && Old_y != New_dCount && New_y != New_dCount) && New_y == Old_dCount) || ((Old_y != Old_dCount && New_y != Old_dCount) && (!(New_y == Old_dCount))))) && (!(Old_dContainsKeyX))))));
        }
Пример #20
0
        public void PUT_ContainsKeyContract([PexAssumeUnderTest] Dictionary.Dictionary <int, int> d, int x)
        {
            AssumePrecondition.IsTrue(true);

            int Old_dCount = d.Count;
            int Old_x      = x;
            //bool Old_Ret = PexChoose.Value<bool>("default_Ret");
            bool Old_dContainsKeyX = d.ContainsKey(x);

            bool New_Ret = d.ContainsKey(x);

            int  New_dCount        = d.Count;
            int  New_x             = x;
            bool New_dContainsKeyX = d.ContainsKey(x);

            PexObserve.ValueForViewing("$old_d_Count", Old_dCount);
            PexObserve.ValueForViewing("$new_d_Count", New_dCount);
            PexObserve.ValueForViewing("$old_d_x", Old_x);
            PexObserve.ValueForViewing("$new_d_x", New_x);
            //PexObserve.ValueForViewing("$Old_ret", Old_Ret);
            PexObserve.ValueForViewing("$New_ret", New_Ret);
            PexObserve.ValueForViewing("$old_d_contains_key_x", Old_dContainsKeyX);
            PexObserve.ValueForViewing("$new_d_contains_key_x", New_dContainsKeyX);

            Assert.IsTrue(((New_dCount == Old_dCount && New_x == Old_x) && ((((New_Ret && Old_dContainsKeyX) && (((New_x == Old_dCount && Old_x == Old_dCount && Old_x == New_dCount) && New_x == New_dCount) || ((Old_x != Old_dCount && New_x != Old_dCount && Old_x != New_dCount && New_x != New_dCount) && (!(New_x == New_dCount))))) && New_dContainsKeyX) || ((((!(New_Ret)) && (!(Old_dContainsKeyX))) && (((New_x == Old_dCount && Old_x == Old_dCount && Old_x == New_dCount) && New_x == New_dCount) || ((Old_x != Old_dCount && New_x != Old_dCount && Old_x != New_dCount && New_x != New_dCount) && (!(New_x == New_dCount))))) && (!(New_dContainsKeyX))))));
        }
Пример #21
0
        public void PUT_RemoveMinimumContract([PexAssumeUnderTest] BinaryHeap.BinaryHeap <int, int> bh)
        {
            AssumePrecondition.IsTrue(bh.Count > 0);

            int Old_bhCount        = bh.Count;
            int Old_bhCapacity     = bh.Capacity;
            int Old_bhMinimumKey   = bh.Minimum().Key;
            int Old_bhMinimumValue = bh.Minimum().Value;

            //code
            var rm            = bh.RemoveMinimum();
            int New_Ret_Key   = rm.Key;
            int New_Ret_Value = rm.Value;

            int New_bhCount        = bh.Count;
            int New_bhCapacity     = bh.Capacity;
            int New_bhMinimumKey   = bh.Count > 0 ? bh.Minimum().Key : PexChoose.Value <int>("new_bhMinimumKey");
            int New_bhMinimumValue = bh.Count > 0 ? bh.Minimum().Value : PexChoose.Value <int>("new_bhMinimumValue");

            PexObserve.ValueForViewing("$old_bh_count", Old_bhCount);
            PexObserve.ValueForViewing("$new_bh_count", New_bhCount);
            PexObserve.ValueForViewing("$old_bh_capacity", Old_bhCapacity);
            PexObserve.ValueForViewing("$new_bh_capacity", New_bhCapacity);
            PexObserve.ValueForViewing("$old_bh_minimum_key", Old_bhMinimumKey);
            PexObserve.ValueForViewing("$new_bh_minimum_key", New_bhMinimumKey);
            PexObserve.ValueForViewing("$old_bh_minimum_value", Old_bhMinimumValue);
            PexObserve.ValueForViewing("$new_bh_minimum_value", New_bhMinimumValue);
            PexObserve.ValueForViewing("$new_ret_key", New_Ret_Key);
            PexObserve.ValueForViewing("$new_ret_value", New_Ret_Value);

            Assert.IsTrue(false);
        }
        public void PUT_EnqueueContract([PexAssumeUnderTest] Queue.Queue <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 - 1; // OldTop = x; x updates x = x-1

            int  Old_x           = x;
            bool Old_s1ContainsX = s1.Contains(x);

            //bool Old_Empty = s1.Count == 0;

            s1.Enqueue(x);

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

            //bool New_Empty = s1.Count == 0;

            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("$old_s1_contains_x", Old_s1ContainsX);
            PexObserve.ValueForViewing("$new_s1_contains_x", New_s1ContainsX);
            //PexObserve.ValueForViewing("$Old_NotEmpty", Old_Empty);
            //PexObserve.ValueForViewing("$New_NotEmpty", New_Empty);
            Assert.True(((New_s1ContainsX && New_s1Count == 1 + Old_s1Count && (!(Old_s1ContainsX)) && New_s1Count >= 1) || (New_s1ContainsX && New_s1Count == 1 + Old_s1Count && New_Top == Old_Top && New_s1Count >= 2)));
        }
Пример #23
0
        public void PUT_RemoveEdgeContract([PexAssumeUnderTest] UndirectedGraph.UndirectedGraph <int, Edge <int> > ug, int source, int target)
        {
            AssumePrecondition.IsTrue(ug.ContainsVertex(source) && ug.ContainsVertex(target));

            int  Old_ugVertexCount          = ug.VertexCount;
            int  Old_ugEdgeCount            = ug.EdgeCount;
            int  Old_ugAdjacentDegreeSource = ug.AdjacentDegree(source);
            int  Old_ugAdjacentDegreeTarget = ug.AdjacentDegree(target);
            int  Old_source = source;
            int  Old_target = target;
            bool Old_ugAllowParallelEdges   = ug.AllowParallelEdges;
            bool Old_ugContainsVertexSource = ug.ContainsVertex(source);
            bool Old_ugContainsVertexTarget = ug.ContainsVertex(target);
            bool Old_Ret = PexChoose.Value <bool>("default_Ret");

            //code
            bool New_Ret = ug.RemoveEdge(new Edge <int>(source, target));

            int  New_ugVertexCount          = ug.VertexCount;
            int  New_ugEdgeCount            = ug.EdgeCount;
            int  New_ugAdjacentDegreeSource = ug.AdjacentDegree(source);
            int  New_ugAdjacentDegreeTarget = ug.AdjacentDegree(target);
            int  New_source = source;
            int  New_target = target;
            bool New_ugAllowParallelEdges   = ug.AllowParallelEdges;
            bool New_ugContainsVertexSource = ug.ContainsVertex(source);
            bool New_ugContainsVertexTarget = ug.ContainsVertex(target);

            PexObserve.ValueForViewing("$old_ug_vertex_count", Old_ugVertexCount);
            PexObserve.ValueForViewing("$new_ug_vertex_count", New_ugVertexCount);
            PexObserve.ValueForViewing("$old_ug_edge_count", Old_ugEdgeCount);
            PexObserve.ValueForViewing("$new_ug_edge_count", New_ugEdgeCount);
            PexObserve.ValueForViewing("$old_ug_adjacent_degree_source", Old_ugAdjacentDegreeSource);
            PexObserve.ValueForViewing("$new_ug_adjacent_degree_source", New_ugAdjacentDegreeSource);
            PexObserve.ValueForViewing("$old_ug_adjacent_degree_target", Old_ugAdjacentDegreeTarget);
            PexObserve.ValueForViewing("$new_ug_adjacent_degree_target", New_ugAdjacentDegreeTarget);
            PexObserve.ValueForViewing("$old_ug_source", Old_source);
            PexObserve.ValueForViewing("$new_ug_source", New_source);
            PexObserve.ValueForViewing("$old_ug_target", Old_target);
            PexObserve.ValueForViewing("$new_ug_target", New_target);
            PexObserve.ValueForViewing("$old_ret", Old_Ret);
            PexObserve.ValueForViewing("$new_ret", New_Ret);
            PexObserve.ValueForViewing("$old_ug_contains_source", Old_ugContainsVertexSource);
            PexObserve.ValueForViewing("$new_ug_contains_source", New_ugContainsVertexSource);
            PexObserve.ValueForViewing("$old_ug_contains_target", Old_ugContainsVertexTarget);
            PexObserve.ValueForViewing("$new_ug_contains_target", New_ugContainsVertexTarget);
            PexObserve.ValueForViewing("$old_ug_allow_parallel_edges", Old_ugAllowParallelEdges);
            PexObserve.ValueForViewing("$new_ug_allow_parallel_edges", New_ugAllowParallelEdges);

            PexAssert.IsTrue(false);
        }
Пример #24
0
        public void PUT_AdjacentEdgeContract([PexAssumeUnderTest] UndirectedGraph.UndirectedGraph <int, Edge <int> > ug, int x, int index)
        {
            AssumePrecondition.IsTrue(ug.ContainsVertex(x) && (index < ug.AdjacentDegree(x)) && (index >= 0));

            int  Old_ugVertexCount    = ug.VertexCount;
            int  Old_ugEdgeCount      = ug.EdgeCount;
            int  Old_ugAdjacentDegree = ug.AdjacentDegree(x);
            int  Old_x                    = x;
            int  Old_index                = index;
            int  Old_Ret_Source           = PexChoose.Value <int>("old_Ret_Source");
            int  Old_Ret_Target           = PexChoose.Value <int>("old_Ret_Target");
            bool Old_ugAllowParallelEdges = ug.AllowParallelEdges;
            bool Old_ugContainsVertexX    = ug.ContainsVertex(x);

            //code
            var e = ug.AdjacentEdge(x, index);
            int New_Ret_Source = e.Source;
            int New_Ret_Target = e.Target;

            int  New_ugVertexCount    = ug.VertexCount;
            int  New_ugEdgeCount      = ug.EdgeCount;
            int  New_ugAdjacentDegree = ug.AdjacentDegree(x);
            int  New_x     = x;
            int  New_index = index;
            bool New_ugAllowParallelEdges = ug.AllowParallelEdges;
            bool New_ugContainsVertexX    = ug.ContainsVertex(x);

            PexObserve.ValueForViewing("$old_ug_vertex_count", Old_ugVertexCount);
            PexObserve.ValueForViewing("$new_ug_vertex_count", New_ugVertexCount);
            PexObserve.ValueForViewing("$old_ug_edge_count", Old_ugEdgeCount);
            PexObserve.ValueForViewing("$new_ug_edge_count", New_ugEdgeCount);
            PexObserve.ValueForViewing("$old_ug_adjacent_degree", Old_ugAdjacentDegree);
            PexObserve.ValueForViewing("$new_ug_adjacent_degree", New_ugAdjacentDegree);
            PexObserve.ValueForViewing("$old_ug_x", Old_x);
            PexObserve.ValueForViewing("$new_ug_x", New_x);
            PexObserve.ValueForViewing("$old_ug_index", Old_index);
            PexObserve.ValueForViewing("$new_ug_index", New_index);
            PexObserve.ValueForViewing("$old_ret_source", Old_Ret_Source);
            PexObserve.ValueForViewing("$new_ret_source", New_Ret_Source);
            PexObserve.ValueForViewing("$old_ret_target", Old_Ret_Target);
            PexObserve.ValueForViewing("$new_ret_target", New_Ret_Target);
            PexObserve.ValueForViewing("$old_ug_contains_x", Old_ugContainsVertexX);
            PexObserve.ValueForViewing("$new_ug_contains_x", New_ugContainsVertexX);
            PexObserve.ValueForViewing("$old_ug_allow_parallel_edges", Old_ugAllowParallelEdges);
            PexObserve.ValueForViewing("$new_ug_allow_parallel_edges", New_ugAllowParallelEdges);

            PexAssert.IsTrue(false);
        }
Пример #25
0
        public void PUT_CountContract([PexAssumeUnderTest] HashSet.HashSet <int> hs)
        {
            AssumePrecondition.IsTrue(true);

            int Old_hsCount = hs.Count;


            int New_Ret = hs.Count;

            int New_hsCount = hs.Count;

            PexObserve.ValueForViewing("$old_hs_Count", Old_hsCount);
            PexObserve.ValueForViewing("$new_hs_Count", New_hsCount);
            PexObserve.ValueForViewing("$New_ret", New_Ret);

            Assert.True((New_hsCount == Old_hsCount && New_Ret == Old_hsCount && New_Ret == New_hsCount));
        }
Пример #26
0
        public void PUT_UpdateContract([PexAssumeUnderTest] BinaryHeap.BinaryHeap <int, int> bh, int priority, int value)
        {
            //ahmad alternate semantics
            AssumePrecondition.IsTrue(true);

            int Old_bhCount        = bh.Count;
            int Old_bhIndexOfValue = bh.IndexOf(value);
            int Old_bhMinimumKey   = bh.Count > 0 ? bh.Minimum().Key : PexChoose.Value <int>("old_bhMinimumKey");
            //int Old_bhMinimumKey = bh.Count > 0 ? bh.Minimum().Key : priority -1;

            int Old_bhMinimumValue = bh.Count > 0 ? bh.Minimum().Value : PexChoose.Value <int>("old_bhMinimumValue");
            //int Old_bhMinimumValue = bh.Count > 0 ? bh.Minimum().Value : value -1;

            //int Old_bhMinimumKey = bh.Minimum().Key ;
            //int Old_bhMinimumValue = bh.Minimum().Value;
            int Old_priority = priority;
            int Old_value    = value;

            //code
            bh.Update(priority, value);

            int New_bhCount        = bh.Count;
            int New_bhIndexOfValue = bh.IndexOf(value);
            //int New_bhMinimumKey = bh.Minimum().Key;
            int New_bhMinimumKey = bh.Minimum().Key;
            //int New_bhMinimumValue =  bh.Minimum().Value;
            int New_bhMinimumValue = bh.Minimum().Value;

            //int New_prioirty = priority;
            //int New_value = value;

            PexObserve.ValueForViewing("$old_bh_count", Old_bhCount);
            PexObserve.ValueForViewing("$new_bh_count", New_bhCount);
            PexObserve.ValueForViewing("$old_bh_indexof_value", Old_bhIndexOfValue);
            PexObserve.ValueForViewing("$new_bh_indexof_value", New_bhIndexOfValue);
            PexObserve.ValueForViewing("$old_bh_minimum_key", Old_bhMinimumKey);
            PexObserve.ValueForViewing("$new_bh_minimum_key", New_bhMinimumKey);
            PexObserve.ValueForViewing("$old_bh_minimum_value", Old_bhMinimumValue);
            PexObserve.ValueForViewing("$new_bh_minimum_value", New_bhMinimumValue);
            PexObserve.ValueForViewing("$old_bh_priority", Old_priority);
            //PexObserve.ValueForViewing("$new_bh_priority", New_prioirty);
            PexObserve.ValueForViewing("$old_bh_value", Old_value);
            //PexObserve.ValueForViewing("$new_bh_value", New_value);

            Assert.True(((Old_bhCount <= New_bhCount && New_bhMinimumKey <= Old_priority && (!(New_bhIndexOfValue == New_bhCount)) && (!(Old_bhIndexOfValue == Old_bhCount)) && Old_bhIndexOfValue <= Old_bhCount && New_bhIndexOfValue <= Old_bhCount && New_bhIndexOfValue >= 0 && Old_bhIndexOfValue >= -1)));
        }
Пример #27
0
        public void PUT_CountContract([PexAssumeUnderTest] Dictionary.Dictionary <int, int> d)
        {
            AssumePrecondition.IsTrue(true);

            int Old_dCount = d.Count;
            //int Old_Ret = 2;

            int New_Ret = d.Count;

            int New_dCount = d.Count;

            PexObserve.ValueForViewing("$old_d_Count", Old_dCount);
            PexObserve.ValueForViewing("$new_d_Count", New_dCount);
            //PexObserve.ValueForViewing("$Old_ret", Old_Ret);
            PexObserve.ValueForViewing("$New_ret", New_Ret);

            Assert.IsTrue((New_dCount == Old_dCount && New_Ret == Old_dCount && New_Ret == New_dCount));
        }
Пример #28
0
        public void PUT_CountContract([PexAssumeUnderTest] ArrayList arrList)
        {
            AssumePrecondition.IsTrue(true);

            int Old_arrListCount = arrList.Count;
            //int Old_Ret = 2;

            int New_Ret = arrList.Count;

            int New_arrListCount = arrList.Count;

            PexObserve.ValueForViewing("$old_arrList_Count", Old_arrListCount);
            PexObserve.ValueForViewing("$new_arrList_Count", New_arrListCount);
            //PexObserve.ValueForViewing("$Old_ret", Old_Ret);
            PexObserve.ValueForViewing("$New_ret", New_Ret);

            Assert.True((New_arrListCount == Old_arrListCount && New_Ret == Old_arrListCount && New_Ret == New_arrListCount));
        }
Пример #29
0
        public void PUT_UpdateContract([PexAssumeUnderTest] BinaryHeap.BinaryHeap <int, int> bh, int priority, int value)
        {
            AssumePrecondition.IsTrue(bh.IndexOf(value) >= 0);

            int Old_bhCount        = bh.Count;
            int Old_bhCapacity     = bh.Capacity;
            int Old_bhIndexOfValue = bh.IndexOf(value);
            //int Old_bhMinimumKey = bh.Count > 0 ? bh.Minimum().Key : PexChoose.Value<int>("old_bhMinimumKey");
            //int Old_bhMinimumValue = bh.Count > 0 ? bh.Minimum().Value : PexChoose.Value<int>("old_bhMinimumValue");
            int Old_bhMinimumKey   = bh.Minimum().Key;
            int Old_bhMinimumValue = bh.Minimum().Value;
            int Old_prioirty       = priority;
            int Old_value          = value;

            //code
            bh.Update(priority, value);

            int New_bhCount         = bh.Count;
            int New_bhCapacity      = bh.Capacity;
            int Newd_bhIndexOfValue = bh.IndexOf(value);
            int New_bhMinimumKey    = bh.Count > 0 ? bh.Minimum().Key : PexChoose.Value <int>("new_bhMinimumKey");
            int New_bhMinimumValue  = bh.Count > 0 ? bh.Minimum().Value : PexChoose.Value <int>("new_bhMinimumValue");
            int New_prioirty        = priority;
            int New_value           = value;

            PexObserve.ValueForViewing("$old_bh_count", Old_bhCount);
            PexObserve.ValueForViewing("$new_bh_count", New_bhCount);
            PexObserve.ValueForViewing("$old_bh_capacity", Old_bhCapacity);
            PexObserve.ValueForViewing("$new_bh_capacity", New_bhCapacity);
            PexObserve.ValueForViewing("$old_bh_indexof_value", Old_bhIndexOfValue);
            PexObserve.ValueForViewing("$new_bh_indexof_value", Newd_bhIndexOfValue);
            PexObserve.ValueForViewing("$old_bh_minimum_key", Old_bhMinimumKey);
            PexObserve.ValueForViewing("$new_bh_minimum_key", New_bhMinimumKey);
            PexObserve.ValueForViewing("$old_bh_minimum_value", Old_bhMinimumValue);
            PexObserve.ValueForViewing("$new_bh_minimum_value", New_bhMinimumValue);
            PexObserve.ValueForViewing("$old_bh_priority", Old_prioirty);
            PexObserve.ValueForViewing("$new_bh_priority", New_prioirty);
            PexObserve.ValueForViewing("$old_bh_value", Old_value);
            PexObserve.ValueForViewing("$new_bh_value", New_value);


            Assert.IsTrue(false);
        }
Пример #30
0
        public void PUT_CountContract([PexAssumeUnderTest] ArrayList arrList)
        {
            AssumePrecondition.IsTrue(true);

            //int Old_arrListCount = arrList.Count;

            int New_Ret = arrList.Count;

            //int New_arrListCount = arrList.Count;
            //bool New_containsNewRet = arrList.Contains(New_Ret);

            //PexObserve.ValueForViewing("$old_arrList_Count", Old_arrListCount);
            //PexObserve.ValueForViewing("$new_arrList_Count", New_arrListCount);
            PexObserve.ValueForViewing("$New_ret", New_Ret);

            //PexObserve.ValueForViewing("$new_containsNewRet", New_containsNewRet);

            Assert.True(((New_Ret >= 1) || (New_Ret == 0)));
        }