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!!!"); } }
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); } } }