989927e82aabe678d603a3e1ea14f3d7523dade4
[babeltrace.git] / tests / bindings / python / bt2 / test_clock_class_priority_map.py
1 import unittest
2 import uuid
3 import copy
4 import bt2
5
6
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)
12
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)
21
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)
29
30 def test_setitem_wrong_key_type(self):
31 cc_prio_map = bt2.ClockClassPriorityMap()
32
33 with self.assertRaises(TypeError):
34 cc_prio_map['the clock'] = 184
35
36 def test_setitem_wrong_value_type(self):
37 cc_prio_map = bt2.ClockClassPriorityMap()
38 cc1 = bt2.ClockClass('mix', 5678)
39
40 with self.assertRaises(TypeError):
41 cc_prio_map[cc1] = 'priority'
42
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)
47 cc_prio_map[cc1] = 2
48
49 with self.assertRaises(KeyError):
50 cc_prio_map[cc2]
51
52 def test_getitem_wrong_key_type(self):
53 cc_prio_map = bt2.ClockClassPriorityMap()
54
55 with self.assertRaises(TypeError):
56 cc_prio_map[23]
57
58 def test_iter(self):
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})
63 cc_prios = {}
64
65 for cc, prio in cc_prio_map.items():
66 cc_prios[cc] = prio
67
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)
72
73 def test_eq(self):
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)
83
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)
94
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)
105
106 def test_eq_invalid(self):
107 self.assertFalse(bt2.ClockClassPriorityMap() == 23)
108
109 def test_copy(self):
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)
124
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)
This page took 0.032952 seconds and 3 git commands to generate.