add new binutils 1259 grant temporary name
[utils.git] / src / budget_sync / test / test_ordered_set.py
1 import unittest
2 from budget_sync.ordered_set import OrderedSet
3
4
5 class TestOrderedSet(unittest.TestCase):
6 def test_repr(self):
7 self.assertEqual(repr(OrderedSet()), "OrderedSet()")
8 self.assertEqual(repr(OrderedSet((1,))), "OrderedSet([1])")
9 self.assertEqual(repr(OrderedSet((1, 2))), "OrderedSet([1, 2])")
10 self.assertEqual(repr(OrderedSet((2, 1))), "OrderedSet([2, 1])")
11 self.assertEqual(repr(OrderedSet((2, 2))), "OrderedSet([2])")
12
13 def test_len(self):
14 self.assertEqual(len(OrderedSet()), 0)
15 self.assertEqual(len(OrderedSet((1,))), 1)
16 self.assertEqual(len(OrderedSet((1, 2))), 2)
17 self.assertEqual(len(OrderedSet((2, 1))), 2)
18 self.assertEqual(len(OrderedSet((2, 2))), 1)
19
20 def test_contains(self):
21 self.assertFalse(0 in OrderedSet())
22 self.assertFalse(1 in OrderedSet())
23 self.assertTrue(0 in OrderedSet([0]))
24 self.assertFalse(1 in OrderedSet([0]))
25 self.assertTrue(0 in OrderedSet([0, 1]))
26 self.assertTrue(1 in OrderedSet([0, 1]))
27 self.assertTrue(0 in OrderedSet([1, 0]))
28 self.assertTrue(1 in OrderedSet([1, 0]))
29
30 def test_add(self):
31 s = OrderedSet()
32 self.assertEqual(repr(s), "OrderedSet()")
33 s.add(1)
34 self.assertEqual(repr(s), "OrderedSet([1])")
35 s.add(2)
36 self.assertEqual(repr(s), "OrderedSet([1, 2])")
37 s.add(2)
38 self.assertEqual(repr(s), "OrderedSet([1, 2])")
39 s.add(1)
40 self.assertEqual(repr(s), "OrderedSet([1, 2])")
41 s.add(0)
42 self.assertEqual(repr(s), "OrderedSet([1, 2, 0])")
43
44 def test_discard(self):
45 s = OrderedSet()
46 s.discard(1)
47 self.assertEqual(repr(s), "OrderedSet()")
48 s = OrderedSet([1])
49 s.discard(1)
50 self.assertEqual(repr(s), "OrderedSet()")
51 s = OrderedSet([1, 2, 3])
52 s.discard(1)
53 self.assertEqual(repr(s), "OrderedSet([2, 3])")
54 s = OrderedSet([3, 2, 1])
55 s.discard(1)
56 self.assertEqual(repr(s), "OrderedSet([3, 2])")
57 s = OrderedSet([3, 2, 1])
58 s.discard(None)
59 self.assertEqual(repr(s), "OrderedSet([3, 2, 1])")
60
61 def test_iter(self):
62 self.assertEqual(list(OrderedSet()), [])
63 self.assertEqual(list(OrderedSet((1,))), [1])
64 self.assertEqual(list(OrderedSet((1, 2))), [1, 2])
65 self.assertEqual(list(OrderedSet((2, 1))), [2, 1])
66 self.assertEqual(list(OrderedSet((2, 2))), [2])
67
68
69 if __name__ == "__main__":
70 unittest.main()