+ def testSplitSubset(self):
+ h = GacksHandle("cpu", 10, 15, 20, 25)
+
+ # split out a subset right in the middle
+ parts = h.clone().split_subset(12, 13, 22, 23)
+
+ self.assertEqual(len(parts), 5)
+ self.assert_(find_handle_in_list(parts, 10, 12, 20, 25)) # h1
+ self.assert_(find_handle_in_list(parts, 12, 13, 20, 22)) # h2
+ self.assert_(find_handle_in_list(parts, 12, 13, 23, 25)) # h3
+ self.assert_(find_handle_in_list(parts, 13, 15, 20, 25)) # h4
+ self.assert_(find_handle_in_list(parts, 12, 13, 22, 23)) # s
+
+ # split out a subset in the top left corner
+ parts = h.clone().split_subset(10, 13, 20, 23)
+
+ self.assertEqual(len(parts), 3)
+ self.assert_(find_handle_in_list(parts, 10, 13, 23, 25)) # h3
+ self.assert_(find_handle_in_list(parts, 13, 15, 20, 25)) # h4
+ self.assert_(find_handle_in_list(parts, 10, 13, 20, 23)) # s
+
+ # split out a subset in the bottom right corner
+ parts = h.clone().split_subset(12, 15, 22, 25)
+
+ self.assertEqual(len(parts), 3)
+ self.assert_(find_handle_in_list(parts, 10, 12, 20, 25)) # h1
+ self.assert_(find_handle_in_list(parts, 12, 15, 20, 22)) # h2
+ self.assert_(find_handle_in_list(parts, 12, 15, 22, 25)) # s
+
+ def testDict(self):
+ h = GacksHandle("cpu", 10, 15, 20, 25)
+ d = h.as_dict()
+
+ h2 = GacksHandle(dict = d)
+
+ self.assertEqual(h.id, h2.id)
+ self.assertEqual(h.unitStart, h2.unitStart)
+ self.assertEqual(h.unitStop, h2.unitStop)
+ self.assertEqual(h.timeStart, h2.timeStart)
+ self.assertEqual(h.timeStop, h2.timeStop)
+