예제 #1
0
        public void Run()
        {
            bool [] state = new bool[max - min];
            for (int i = 0; i < state.Length; i++)
            {
                state[i] = false;
            }

            Random rnd = new Random(System.DateTime.Now.Millisecond);
            int    element, index;
            bool   result, expected;

            for (int i = 0; i < repetitions; i++)
            {
                index   = rnd.Next(state.Length);
                element = index + min;

                // Assert current state
                expected = state[index];
                result   = set.Contains(element);
                Debug.Assert(expected == result, "INCONSISTENCY!!!");

                if (state[index])
                {
                    // The element is already in there

                    // Check to see that adding it again fails
                    expected = false;
                    result   = set.Add(element);
                    Debug.Assert(expected == result, "INCONSISTENCY!!!");

                    // Remove the element
                    expected = true;
                    result   = set.Remove(element);
                    Debug.Assert(expected == result, "INCONSISTENCY!!!");
                    state[index] = false;
                }
                else
                {
                    // Check to see that removing it again fails
                    expected = false;
                    result   = set.Remove(element);
                    Debug.Assert(expected == result, "INCONSISTENCY!!!");

                    // Check to see that adding it again works
                    expected = true;
                    result   = set.Add(element);
                    Debug.Assert(expected == result, "INCONSISTENCY!!!");
                    state[index] = true;
                }

                // Assert current state
                expected = state[index];
                result   = set.Contains(element);
                Debug.Assert(expected == result, "INCONSISTENCY!!!");
            }
        }
예제 #2
0
        public void Run()
        {
            Random rnd = new Random(System.DateTime.Now.Millisecond);
            int    element;
            int    op;
            bool   result;

            for (int i = 0; i < repetitions; i++)
            {
                element = rnd.Next(max - min) + min;
                op      = rnd.Next(3);

                if (op == 0)
                {
                    // Check for element
                    result = set.Contains(element);
                }
                else if (op == 1)
                {
                    // Add element
                    result = set.Add(element);
                }
                else if (op == 2)
                {
                    // Remove element
                    result = set.Remove(element);
                }
            }
        }