3 from gackshandle import *
5 class TestGacksHandle(unittest.TestCase):
10 h = GacksHandle("cpu", 10, 15, 20, 25)
11 self.assertEqual(h.id, "cpu")
12 self.assertEqual(h.unitStart, 10)
13 self.assertEqual(h.unitStop, 15)
14 self.assertEqual(h.timeStart, 20)
15 self.assertEqual(h.timeStop, 25)
17 def testAsString(self):
18 h = GacksHandle("cpu", 10, 15, 20, 25)
20 self.assertEqual(s, "cpu#10-15#20-25")
22 def testLoadFromString(self):
23 h = GacksHandle("cpu", 10, 15, 20, 25)
25 h2 = GacksHandle(string=s)
26 self.assertEqual(h.id, h2.id)
27 self.assertEqual(h.unitStart, h2.unitStart)
28 self.assertEqual(h.unitStop, h2.unitStop)
29 self.assertEqual(h.timeStart, h2.timeStart)
30 self.assertEqual(h.timeStop, h2.timeStop)
32 def testGetQuantity(self):
33 h = GacksHandle("cpu", 10, 15, 20, 25)
34 self.assertEqual(h.get_quantity(), 5)
36 def testGetDuration(self):
37 h = GacksHandle("cpu", 10, 15, 20, 25)
38 self.assertEqual(h.get_duration(), 5)
41 h = GacksHandle("cpu", 10, 15, 20, 25)
43 self.assertEqual(h.id, h2.id)
44 self.assertEqual(h.unitStart, h2.unitStart)
45 self.assertEqual(h.unitStop, h2.unitStop)
46 self.assertEqual(h.timeStart, h2.timeStart)
47 self.assertEqual(h.timeStop, h2.timeStop)
49 def testSplitUnit(self):
50 h = GacksHandle("cpu", 10, 15, 20, 25)
51 parts = h.split_unit(12)
55 self.assertEqual(h1.id, "cpu")
56 self.assertEqual(h1.unitStart, 10)
57 self.assertEqual(h1.unitStop, 12)
58 self.assertEqual(h1.timeStart, 20)
59 self.assertEqual(h1.timeStop, 25)
61 self.assertEqual(h2.id, "cpu")
62 self.assertEqual(h2.unitStart, 12)
63 self.assertEqual(h2.unitStop, 15)
64 self.assertEqual(h2.timeStart, 20)
65 self.assertEqual(h2.timeStop, 25)
67 def testSplitTime(self):
68 h = GacksHandle("cpu", 10, 15, 20, 25)
69 parts = h.split_time(23)
73 self.assertEqual(h1.id, "cpu")
74 self.assertEqual(h1.unitStart, 10)
75 self.assertEqual(h1.unitStop, 15)
76 self.assertEqual(h1.timeStart, 20)
77 self.assertEqual(h1.timeStop, 23)
79 self.assertEqual(h2.id, "cpu")
80 self.assertEqual(h2.unitStart, 10)
81 self.assertEqual(h2.unitStop, 15)
82 self.assertEqual(h2.timeStart, 23)
83 self.assertEqual(h2.timeStop, 25)
85 def testSplitSubset(self):
86 h = GacksHandle("cpu", 10, 15, 20, 25)
88 # split out a subset right in the middle
89 parts = h.clone().split_subset(12, 13, 22, 23)
91 self.assertEqual(len(parts), 5)
92 self.assert_(find_handle_in_list(parts, 10, 12, 20, 25)) # h1
93 self.assert_(find_handle_in_list(parts, 12, 13, 20, 22)) # h2
94 self.assert_(find_handle_in_list(parts, 12, 13, 23, 25)) # h3
95 self.assert_(find_handle_in_list(parts, 13, 15, 20, 25)) # h4
96 self.assert_(find_handle_in_list(parts, 12, 13, 22, 23)) # s
98 # split out a subset in the top left corner
99 parts = h.clone().split_subset(10, 13, 20, 23)
101 self.assertEqual(len(parts), 3)
102 self.assert_(find_handle_in_list(parts, 10, 13, 23, 25)) # h3
103 self.assert_(find_handle_in_list(parts, 13, 15, 20, 25)) # h4
104 self.assert_(find_handle_in_list(parts, 10, 13, 20, 23)) # s
106 # split out a subset in the bottom right corner
107 parts = h.clone().split_subset(12, 15, 22, 25)
109 self.assertEqual(len(parts), 3)
110 self.assert_(find_handle_in_list(parts, 10, 12, 20, 25)) # h1
111 self.assert_(find_handle_in_list(parts, 12, 15, 20, 22)) # h2
112 self.assert_(find_handle_in_list(parts, 12, 15, 22, 25)) # s
115 h = GacksHandle("cpu", 10, 15, 20, 25)
118 h2 = GacksHandle(dict = d)
120 self.assertEqual(h.id, h2.id)
121 self.assertEqual(h.unitStart, h2.unitStart)
122 self.assertEqual(h.unitStop, h2.unitStop)
123 self.assertEqual(h.timeStart, h2.timeStart)
124 self.assertEqual(h.timeStop, h2.timeStop)
126 class TestGacksRecord(unittest.TestCase):
130 def testCreate(self):
131 r = GacksRecord("cpu", 10, 15, 20, 25, ["foo","bar"], "slice1")
132 self.assertEqual(r.id, "cpu")
133 self.assertEqual(r.unitStart, 10)
134 self.assertEqual(r.unitStop, 15)
135 self.assertEqual(r.timeStart, 20)
136 self.assertEqual(r.timeStop, 25)
137 self.assertEqual(r.allocatorHRNs, ["foo", "bar"])
138 self.assertEqual(r.consumerHRN, "slice1")
141 r = GacksRecord("cpu", 10, 15, 20, 25, ["foo","bar"], "slice1")
144 self.assertEqual(r.id, r2.id)
145 self.assertEqual(r.unitStart, r2.unitStart)
146 self.assertEqual(r.unitStop, r2.unitStop)
147 self.assertEqual(r.timeStart, r2.timeStart)
148 self.assertEqual(r.timeStop, r2.timeStop)
149 self.assertEqual(r.allocatorHRNs, r2.allocatorHRNs)
150 self.assertEqual(r.consumerHRN, r2.consumerHRN)
152 def testSetAllocator(self):
153 r = GacksRecord("cpu", 10, 15, 20, 25, ["foo","bar"], "slice1")
154 r.set_allocator("bar", "bob", -1, 1)
155 self.assertEqual(r.allocatorHRNs, ["foo", "bar", "bob"])
157 r = GacksRecord("cpu", 10, 15, 20, 25, ["foo","bar"], "slice1")
158 r.set_allocator("bar", "bob", -1, 0)
159 self.assertEqual(r.allocatorHRNs, ["foo", "bob"])
161 r = GacksRecord("cpu", 10, 15, 20, 25, ["foo","bar","foo","bar"], "slice1")
162 r.set_allocator("bar", "bob", 0, 0)
163 self.assertEqual(r.allocatorHRNs, ["foo", "bob"])
165 r = GacksRecord("cpu", 10, 15, 20, 25, ["foo","bar","foo","bar"], "slice1")
166 r.set_allocator("bar", "bob", 1, 0)
167 self.assertEqual(r.allocatorHRNs, ["foo", "bar", "foo", "bob"])
169 def testGetAllocator(self):
170 r = GacksRecord("cpu", 10, 15, 20, 25, ["foo","bar"], "slice1")
171 self.assertEqual(r.get_allocators(), ["foo", "bar"])
173 def testSetConsumer(self):
174 r = GacksRecord("cpu", 10, 15, 20, 25, ["foo","bar"], "slice1")
175 r.set_consumer("slice2")
176 self.assertEqual(r.get_consumer(), "slice2")
178 def testGetConsumer(self):
179 r = GacksRecord("cpu", 10, 15, 20, 25, ["foo","bar"], "slice1")
180 self.assertEqual(r.get_consumer(), "slice1")
182 def testTestDict(self):
183 r = GacksRecord("cpu", 10, 15, 20, 25, ["foo","bar"], "slice1")
186 r2 = GacksRecord(dict=d)
188 self.assertEqual(r.id, r2.id)
189 self.assertEqual(r.unitStart, r2.unitStart)
190 self.assertEqual(r.unitStop, r2.unitStop)
191 self.assertEqual(r.timeStart, r2.timeStart)
192 self.assertEqual(r.timeStop, r2.timeStop)
193 self.assertEqual(r.allocatorHRNs, r2.allocatorHRNs)
194 self.assertEqual(r.consumerHRN, r2.consumerHRN)
198 if __name__ == "__main__":