def test_big_combined(self): st = SplayTree() array = [i for i in range(100000)] removed = [] for i in range(len(array)): ind = randint(0, len(array) - 1) array[i], array[ind] = array[ind], array[i] for i in array: st.add(i) for i in range(100000): st.remove(array[i]) removed.append(array[i]) if i > 3: for j in range(10): ind = randint(0, len(removed) - 1) self.assertFalse(st.contains(removed[ind])) if i < len(array) - 4: for j in range(10): ind = randint(i + 2, len(array) - 2) self.assertTrue(st.contains(array[ind])) self.assertTrue(st.contains(array[ind + 1])) self.assertTrue(st.contains(array[ind])) self.assertTrue(st.contains(array[ind + 1])) self.assertTrue(st.contains(array[ind - 1])) self.assertTrue(st.contains(array[ind + 1])) self.assertTrue(st.contains(array[ind])) if i > 0 and i % 5 == 0: for j in range(3): ind = randint(0, len(removed) - 1) num = removed[ind] removed.remove(num) array.append(num) st.add(num)
def test_remove_elements_not_in_set(self): st = SplayTree() for i in range(1000): st.add(i) for i in range(1001, 10000): st.remove(i) for i in range(1000): self.assertTrue(st.contains(i))
def test_remove(self): st = SplayTree() st.add(5) st.add(6) self.assertFalse(st.contains(0)) self.assertTrue(st.contains(5)) self.assertTrue(st.contains(6)) st.add(0) self.assertTrue(st.contains(0)) st.remove(6) self.assertFalse(st.contains(6)) self.assertTrue(st.contains(5)) self.assertTrue(st.contains(0))
def test_big_remove(self): st = SplayTree() array = [i for i in range(100000)] removed = [] for i in range(len(array)): ind = randint(0, len(array) - 1) array[i], array[ind] = array[ind], array[i] for i in array: st.add(i) for i in range(len(array)): st.remove(array[i]) removed.append(array[i]) if i > 3: for j in range(10): ind = randint(0, len(removed) - 1) self.assertFalse(st.contains(removed[ind]))
def test_medium_remove(self): st = SplayTree() st.add(9) st.add(1) st.add(5) st.add(8) st.add(3) st.add(2) st.add(7) st.add(4) st.add(6) for i in range(1, 9): st.remove(i) self.assertFalse(st.contains(i)) self.assertTrue(st.contains(i + 1)) self.assertFalse(st.contains(i - 1)) st.add(i) self.assertTrue(st.contains(i)) self.assertTrue(st.contains(i + 1)) self.assertFalse(st.contains(i - 1)) st.remove(i)
def test_remove_on_empty_set(self): st = SplayTree() for i in range(10000): st.remove(randint(-10000, 10000))