7 class ClockClassPriorityMapTestCase(unittest
.TestCase
):
8 def test_create_empty(self
):
9 cc_prio_map
= bt2
.ClockClassPriorityMap()
10 self
.assertEqual(len(cc_prio_map
), 0)
11 self
.assertIsNone(cc_prio_map
.highest_priority_clock_class
)
13 def test_create_full(self
):
14 cc1
= bt2
.ClockClass('meow', 1234)
15 cc2
= bt2
.ClockClass('mix', 5678)
16 cc_prio_map
= bt2
.ClockClassPriorityMap({cc1
: 17, cc2
: 2})
17 self
.assertEqual(len(cc_prio_map
), 2)
18 self
.assertEqual(cc_prio_map
[cc1
], 17)
19 self
.assertEqual(cc_prio_map
[cc2
], 2)
20 self
.assertEqual(cc_prio_map
.highest_priority_clock_class
, cc2
)
22 def test_setitem(self
):
23 cc_prio_map
= bt2
.ClockClassPriorityMap()
24 cc1
= bt2
.ClockClass('mix', 5678)
25 cc_prio_map
[cc1
] = 184
26 self
.assertEqual(len(cc_prio_map
), 1)
27 self
.assertEqual(cc_prio_map
[cc1
], 184)
28 self
.assertEqual(cc_prio_map
.highest_priority_clock_class
, cc1
)
30 def test_setitem_wrong_key_type(self
):
31 cc_prio_map
= bt2
.ClockClassPriorityMap()
33 with self
.assertRaises(TypeError):
34 cc_prio_map
['the clock'] = 184
36 def test_setitem_wrong_value_type(self
):
37 cc_prio_map
= bt2
.ClockClassPriorityMap()
38 cc1
= bt2
.ClockClass('mix', 5678)
40 with self
.assertRaises(TypeError):
41 cc_prio_map
[cc1
] = 'priority'
43 def test_getitem_wrong_key(self
):
44 cc_prio_map
= bt2
.ClockClassPriorityMap()
45 cc1
= bt2
.ClockClass('mix', 5678)
46 cc2
= bt2
.ClockClass('mix', 5678)
49 with self
.assertRaises(KeyError):
52 def test_getitem_wrong_key_type(self
):
53 cc_prio_map
= bt2
.ClockClassPriorityMap()
55 with self
.assertRaises(TypeError):
59 cc1
= bt2
.ClockClass('meow', 1234)
60 cc2
= bt2
.ClockClass('mix', 5678)
61 cc3
= bt2
.ClockClass('lel', 1548)
62 cc_prio_map
= bt2
.ClockClassPriorityMap({cc1
: 17, cc2
: 2, cc3
: 25})
65 for cc
, prio
in cc_prio_map
.items():
68 self
.assertEqual(len(cc_prios
), 3)
69 self
.assertEqual(cc_prios
[cc1
], 17)
70 self
.assertEqual(cc_prios
[cc2
], 2)
71 self
.assertEqual(cc_prios
[cc3
], 25)
74 cc1
= bt2
.ClockClass('meow', 1234)
75 cc2
= bt2
.ClockClass('mix', 5678)
76 cc3
= bt2
.ClockClass('lel', 1548)
77 cc_prio_map
= bt2
.ClockClassPriorityMap({cc1
: 17, cc2
: 2, cc3
: 25})
78 other_cc1
= bt2
.ClockClass('meow', 1234)
79 other_cc2
= bt2
.ClockClass('mix', 5678)
80 other_cc3
= bt2
.ClockClass('lel', 1548)
81 other_cc_prio_map
= bt2
.ClockClassPriorityMap({other_cc1
: 17, other_cc2
: 2, other_cc3
: 25})
82 self
.assertEqual(cc_prio_map
, other_cc_prio_map
)
84 def test_ne_clock_class(self
):
85 cc1
= bt2
.ClockClass('meow', 1234)
86 cc2
= bt2
.ClockClass('mix', 5678)
87 cc3
= bt2
.ClockClass('lel', 1548)
88 cc_prio_map
= bt2
.ClockClassPriorityMap({cc1
: 17, cc2
: 2, cc3
: 25})
89 other_cc1
= bt2
.ClockClass('meow', 1234)
90 other_cc2
= bt2
.ClockClass('coucou', 5678)
91 other_cc3
= bt2
.ClockClass('lel', 1548)
92 other_cc_prio_map
= bt2
.ClockClassPriorityMap({other_cc1
: 17, other_cc2
: 2, other_cc3
: 25})
93 self
.assertNotEqual(cc_prio_map
, other_cc_prio_map
)
95 def test_ne_prio(self
):
96 cc1
= bt2
.ClockClass('meow', 1234)
97 cc2
= bt2
.ClockClass('mix', 5678)
98 cc3
= bt2
.ClockClass('lel', 1548)
99 cc_prio_map
= bt2
.ClockClassPriorityMap({cc1
: 17, cc2
: 2, cc3
: 25})
100 other_cc1
= bt2
.ClockClass('meow', 1234)
101 other_cc2
= bt2
.ClockClass('mix', 5678)
102 other_cc3
= bt2
.ClockClass('lel', 1548)
103 other_cc_prio_map
= bt2
.ClockClassPriorityMap({other_cc1
: 17, other_cc2
: 3, other_cc3
: 25})
104 self
.assertNotEqual(cc_prio_map
, other_cc_prio_map
)
106 def test_eq_invalid(self
):
107 self
.assertFalse(bt2
.ClockClassPriorityMap() == 23)
110 cc1
= bt2
.ClockClass('meow', 1234)
111 cc2
= bt2
.ClockClass('mix', 5678)
112 cc3
= bt2
.ClockClass('lel', 1548)
113 cc_prio_map
= bt2
.ClockClassPriorityMap({cc1
: 17, cc2
: 2, cc3
: 25})
114 cc_prio_map_cpy
= copy
.copy(cc_prio_map
)
115 self
.assertEqual(cc_prio_map
, cc_prio_map_cpy
)
116 self
.assertEqual(list(cc_prio_map
.keys())[0].addr
, list(cc_prio_map_cpy
.keys())[0].addr
)
117 self
.assertEqual(list(cc_prio_map
.keys())[1].addr
, list(cc_prio_map_cpy
.keys())[1].addr
)
118 self
.assertEqual(list(cc_prio_map
.keys())[2].addr
, list(cc_prio_map_cpy
.keys())[2].addr
)
119 self
.assertEqual(list(cc_prio_map
.values())[0], list(cc_prio_map_cpy
.values())[0])
120 self
.assertEqual(list(cc_prio_map
.values())[1], list(cc_prio_map_cpy
.values())[1])
121 self
.assertEqual(list(cc_prio_map
.values())[2], list(cc_prio_map_cpy
.values())[2])
122 self
.assertEqual(cc_prio_map
.highest_priority_clock_class
.addr
,
123 cc_prio_map_cpy
.highest_priority_clock_class
.addr
)
125 def test_deep_copy(self
):
126 cc1
= bt2
.ClockClass('meow', 1234)
127 cc2
= bt2
.ClockClass('mix', 5678)
128 cc3
= bt2
.ClockClass('lel', 1548)
129 cc_prio_map
= bt2
.ClockClassPriorityMap({cc1
: 17, cc2
: 2, cc3
: 25})
130 cc_prio_map_cpy
= copy
.deepcopy(cc_prio_map
)
131 self
.assertEqual(cc_prio_map
, cc_prio_map_cpy
)
132 self
.assertNotEqual(list(cc_prio_map
.keys())[0].addr
, list(cc_prio_map_cpy
.keys())[0].addr
)
133 self
.assertNotEqual(list(cc_prio_map
.keys())[1].addr
, list(cc_prio_map_cpy
.keys())[1].addr
)
134 self
.assertNotEqual(list(cc_prio_map
.keys())[2].addr
, list(cc_prio_map_cpy
.keys())[2].addr
)
135 self
.assertEqual(list(cc_prio_map
.values())[0], list(cc_prio_map_cpy
.values())[0])
136 self
.assertEqual(list(cc_prio_map
.values())[1], list(cc_prio_map_cpy
.values())[1])
137 self
.assertEqual(list(cc_prio_map
.values())[2], list(cc_prio_map_cpy
.values())[2])
138 self
.assertNotEqual(cc_prio_map
.highest_priority_clock_class
.addr
,
139 cc_prio_map_cpy
.highest_priority_clock_class
.addr
)