def test_default_empty(self): s = SortedSet()
def test_le_negative(self): s = SortedSet({1, 2, 3}) t = SortedSet({1, 2}) self.assertFalse(s <= t)
def test_positive_unequal(self): self.assertTrue(SortedSet([4, 5, 6]) != SortedSet([1, 2, 3]))
def test_type_mismatch(self): self.assertTrue(SortedSet([1, 2, 3]) != [1, 2, 3])
def test_symmetric_difference(self): s = SortedSet({1, 2, 3}) t = [2, 3, 4] self.assertEqual(s.symmetric_difference(t), SortedSet())
def test_with_duplicates(self): s = SortedSet([8, 8, 8])
def test_index_negative(self): s = SortedSet([1, 5, 8, 9]) self.assertEqual(s.index(8), 2) with self.assertRaises(ValueError): s.index(15)
def test_issuperset_positive(self): s = SortedSet({1, 2, 3}) t = [1, 2, 3] self.assertTrue(s.issuperset(t))
def test_slice_arbitrary(self): self.assertEqual(self.s[2:4], SortedSet([9, 13]))
def test_index_positive(self): s = SortedSet([1, 5, 8, 9]) self.assertEqual(s.index(8), 2)
def test_slice_empty(self): self.assertEqual(self.s[10:], SortedSet())
def test_slice_to_end(self): self.assertEqual(self.s[3:], SortedSet([13, 15]))
def test_slice_from_start(self): self.assertEqual(self.s[:3], SortedSet([1, 4, 9]))
def test_index_positive(self): s = SortedSet([1, 5, 8, 9]) self.assertEqual(s.index(8), 2)
def test_count_zero(self): s = SortedSet([1, 5, 7, 9]) self.assertEqual(s.count(11), 0)
def test_count_zero(self): s = SortedSet([1, 5, 7, 9]) self.assertEqual(s.count(11), 0)
def test_count_one(self): s = SortedSet([1, 5, 7, 9]) self.assertEqual(s.count(7), 1)
def test_intersection(self): s = SortedSet({1, 2, 3}) t = [2, 3, 4] self.assertEqual(s.intersection(t), SortedSet({2, 3}))
def test_concatenate_disjoint(self): s = SortedSet([1, 2, 3]) t = SortedSet([4, 5, 6]) self.assertEqual(s + t, SortedSet([1, 2, 3, 4, 5, 6]))
def test_isdisjoint_positive(self): s = SortedSet({1, 2, 3}) t = [4, 5, 6] self.assertTrue(s.isdisjoint(t))
def test_concatenate_equal(self): s = SortedSet([2, 4, 6]) self.assertEqual(s + s, s)
def test_identical(self): s = SortedSet([10, 11, 12]) self.assertTrue(s == s)
def test_concatenate_intersecting(self): s = SortedSet([1, 2, 3]) t = SortedSet([3, 4, 5]) self.assertEqual(s + t, SortedSet([1, 2, 3, 4, 5]))
def test_negative_unequal(self): self.assertFalse(SortedSet([4, 5, 6]) != SortedSet([6, 5, 4]))
def test_repetition_zero_right(self): s = SortedSet([4, 5, 6]) self.assertEquals(s * 0, SortedSet())
def test_identical(self): s = SortedSet([10, 11, 12]) self.assertFalse(s != s)
def test_repetition_nonzero_right(self): s = SortedSet([4, 5, 6]) self.assertEquals(s * 100, s)
def test_le_eq_positive(self): s = SortedSet({1, 2, 3}) t = SortedSet({1, 2, 3}) self.assertTrue(s <= t)
def test_repetition_zero_left(self): s = SortedSet([4, 5, 6]) self.assertEquals(0 * s, SortedSet())
def test_gt_positive(self): s = SortedSet({1, 2, 3}) t = SortedSet({1, 2}) self.assertTrue(s > t)
def test_repetition_nonzero_left(self): s = SortedSet([4, 5, 6]) self.assertEquals(100 * s, s)
def test_index_negative(self): s = SortedSet([1, 5, 8, 9]) with self.assertRaises(ValueError): s.index(15)
def test_repr_empty(self): s = SortedSet() self.assertEqual(repr(s), "SortedSet()")
def test_count_one(self): s = SortedSet([1, 5, 7, 9]) self.assertEqual(s.count(7), 1)
def test_repr_some(self): s = SortedSet([42, 40, 19]) self.assertEqual(repr(s), "SortedSet([19, 40, 42])")
def test_issuperset_negative(self): s = SortedSet({1, 2}) t = [1, 2, 3] self.assertFalse(s.issuperset(t))
def test_positive_equal(self): self.assertTrue(SortedSet([4, 5, 6]) == SortedSet([6, 5, 4]))
def test_union(self): s = SortedSet({1, 2, 3}) t = [2, 3, 4] self.assertEqual(s.union(t), SortedSet({1, 2, 3, 4}))
def test_negative_equal(self): self.assertFalse(SortedSet([4, 5, 6]) == SortedSet([1, 2, 3]))
def test_difference(self): s = SortedSet({1, 2, 3}) t = [2, 3, 4] self.assertEqual(s.difference(t), SortedSet({1}))
def test_type_mismatch(self): self.assertFalse(SortedSet([4, 5, 6]) == [4, 5, 6])
def test_isdisjoint_negative(self): s = SortedSet({1, 2, 3}) t = [3, 4, 5] self.assertFalse(s.isdisjoint(t))
# 10_13-Improving Performance From O(N) to O(log n) from sorted_set import SortedSet from random import randrange s = SortedSet(randrange(1000) for _ in range(2000)) s len(s) [s.count(i) for i in range(1000)]