7 @unittest.skip("this is broken")
8 class ClockClassPriorityMapTestCase(unittest
.TestCase
):
9 def test_create_empty(self
):
10 cc_prio_map
= bt2
.ClockClassPriorityMap()
11 self
.assertEqual(len(cc_prio_map
), 0)
12 self
.assertIsNone(cc_prio_map
.highest_priority_clock_class
)
14 def test_create_full(self
):
15 cc1
= bt2
.ClockClass('meow', 1234)
16 cc2
= bt2
.ClockClass('mix', 5678)
17 cc_prio_map
= bt2
.ClockClassPriorityMap({cc1
: 17, cc2
: 2})
18 self
.assertEqual(len(cc_prio_map
), 2)
19 self
.assertEqual(cc_prio_map
[cc1
], 17)
20 self
.assertEqual(cc_prio_map
[cc2
], 2)
21 self
.assertEqual(cc_prio_map
.highest_priority_clock_class
, cc2
)
23 def test_setitem(self
):
24 cc_prio_map
= bt2
.ClockClassPriorityMap()
25 cc1
= bt2
.ClockClass('mix', 5678)
26 cc_prio_map
[cc1
] = 184
27 self
.assertEqual(len(cc_prio_map
), 1)
28 self
.assertEqual(cc_prio_map
[cc1
], 184)
29 self
.assertEqual(cc_prio_map
.highest_priority_clock_class
, cc1
)
31 def test_setitem_wrong_key_type(self
):
32 cc_prio_map
= bt2
.ClockClassPriorityMap()
34 with self
.assertRaises(TypeError):
35 cc_prio_map
['the clock'] = 184
37 def test_setitem_wrong_value_type(self
):
38 cc_prio_map
= bt2
.ClockClassPriorityMap()
39 cc1
= bt2
.ClockClass('mix', 5678)
41 with self
.assertRaises(TypeError):
42 cc_prio_map
[cc1
] = 'priority'
44 def test_getitem_wrong_key(self
):
45 cc_prio_map
= bt2
.ClockClassPriorityMap()
46 cc1
= bt2
.ClockClass('mix', 5678)
47 cc2
= bt2
.ClockClass('mix', 5678)
50 with self
.assertRaises(KeyError):
53 def test_getitem_wrong_key_type(self
):
54 cc_prio_map
= bt2
.ClockClassPriorityMap()
56 with self
.assertRaises(TypeError):
60 cc1
= bt2
.ClockClass('meow', 1234)
61 cc2
= bt2
.ClockClass('mix', 5678)
62 cc3
= bt2
.ClockClass('lel', 1548)
63 cc_prio_map
= bt2
.ClockClassPriorityMap({cc1
: 17, cc2
: 2, cc3
: 25})
66 for cc
, prio
in cc_prio_map
.items():
69 self
.assertEqual(len(cc_prios
), 3)
70 self
.assertEqual(cc_prios
[cc1
], 17)
71 self
.assertEqual(cc_prios
[cc2
], 2)
72 self
.assertEqual(cc_prios
[cc3
], 25)
75 cc1
= bt2
.ClockClass('meow', 1234)
76 cc2
= bt2
.ClockClass('mix', 5678)
77 cc3
= bt2
.ClockClass('lel', 1548)
78 cc_prio_map
= bt2
.ClockClassPriorityMap({cc1
: 17, cc2
: 2, cc3
: 25})
79 other_cc1
= bt2
.ClockClass('meow', 1234)
80 other_cc2
= bt2
.ClockClass('mix', 5678)
81 other_cc3
= bt2
.ClockClass('lel', 1548)
82 other_cc_prio_map
= bt2
.ClockClassPriorityMap({other_cc1
: 17, other_cc2
: 2, other_cc3
: 25})
83 self
.assertEqual(cc_prio_map
, other_cc_prio_map
)
85 def test_ne_clock_class(self
):
86 cc1
= bt2
.ClockClass('meow', 1234)
87 cc2
= bt2
.ClockClass('mix', 5678)
88 cc3
= bt2
.ClockClass('lel', 1548)
89 cc_prio_map
= bt2
.ClockClassPriorityMap({cc1
: 17, cc2
: 2, cc3
: 25})
90 other_cc1
= bt2
.ClockClass('meow', 1234)
91 other_cc2
= bt2
.ClockClass('coucou', 5678)
92 other_cc3
= bt2
.ClockClass('lel', 1548)
93 other_cc_prio_map
= bt2
.ClockClassPriorityMap({other_cc1
: 17, other_cc2
: 2, other_cc3
: 25})
94 self
.assertNotEqual(cc_prio_map
, other_cc_prio_map
)
96 def test_ne_prio(self
):
97 cc1
= bt2
.ClockClass('meow', 1234)
98 cc2
= bt2
.ClockClass('mix', 5678)
99 cc3
= bt2
.ClockClass('lel', 1548)
100 cc_prio_map
= bt2
.ClockClassPriorityMap({cc1
: 17, cc2
: 2, cc3
: 25})
101 other_cc1
= bt2
.ClockClass('meow', 1234)
102 other_cc2
= bt2
.ClockClass('mix', 5678)
103 other_cc3
= bt2
.ClockClass('lel', 1548)
104 other_cc_prio_map
= bt2
.ClockClassPriorityMap({other_cc1
: 17, other_cc2
: 3, other_cc3
: 25})
105 self
.assertNotEqual(cc_prio_map
, other_cc_prio_map
)
107 def test_eq_invalid(self
):
108 self
.assertFalse(bt2
.ClockClassPriorityMap() == 23)
111 cc1
= bt2
.ClockClass('meow', 1234)
112 cc2
= bt2
.ClockClass('mix', 5678)
113 cc3
= bt2
.ClockClass('lel', 1548)
114 cc_prio_map
= bt2
.ClockClassPriorityMap({cc1
: 17, cc2
: 2, cc3
: 25})
115 cc_prio_map_cpy
= copy
.copy(cc_prio_map
)
116 self
.assertEqual(cc_prio_map
, cc_prio_map_cpy
)
117 self
.assertEqual(list(cc_prio_map
.keys())[0].addr
, list(cc_prio_map_cpy
.keys())[0].addr
)
118 self
.assertEqual(list(cc_prio_map
.keys())[1].addr
, list(cc_prio_map_cpy
.keys())[1].addr
)
119 self
.assertEqual(list(cc_prio_map
.keys())[2].addr
, list(cc_prio_map_cpy
.keys())[2].addr
)
120 self
.assertEqual(list(cc_prio_map
.values())[0], list(cc_prio_map_cpy
.values())[0])
121 self
.assertEqual(list(cc_prio_map
.values())[1], list(cc_prio_map_cpy
.values())[1])
122 self
.assertEqual(list(cc_prio_map
.values())[2], list(cc_prio_map_cpy
.values())[2])
123 self
.assertEqual(cc_prio_map
.highest_priority_clock_class
.addr
,
124 cc_prio_map_cpy
.highest_priority_clock_class
.addr
)
126 def test_deep_copy(self
):
127 cc1
= bt2
.ClockClass('meow', 1234)
128 cc2
= bt2
.ClockClass('mix', 5678)
129 cc3
= bt2
.ClockClass('lel', 1548)
130 cc_prio_map
= bt2
.ClockClassPriorityMap({cc1
: 17, cc2
: 2, cc3
: 25})
131 cc_prio_map_cpy
= copy
.deepcopy(cc_prio_map
)
132 self
.assertEqual(cc_prio_map
, cc_prio_map_cpy
)
133 self
.assertNotEqual(list(cc_prio_map
.keys())[0].addr
, list(cc_prio_map_cpy
.keys())[0].addr
)
134 self
.assertNotEqual(list(cc_prio_map
.keys())[1].addr
, list(cc_prio_map_cpy
.keys())[1].addr
)
135 self
.assertNotEqual(list(cc_prio_map
.keys())[2].addr
, list(cc_prio_map_cpy
.keys())[2].addr
)
136 self
.assertEqual(list(cc_prio_map
.values())[0], list(cc_prio_map_cpy
.values())[0])
137 self
.assertEqual(list(cc_prio_map
.values())[1], list(cc_prio_map_cpy
.values())[1])
138 self
.assertEqual(list(cc_prio_map
.values())[2], list(cc_prio_map_cpy
.values())[2])
139 self
.assertNotEqual(cc_prio_map
.highest_priority_clock_class
.addr
,
140 cc_prio_map_cpy
.highest_priority_clock_class
.addr
)