more gacks tests
[sfa.git] / tests / testGacksHandle.py
index 09b6529..3e26612 100644 (file)
@@ -46,22 +46,83 @@ class TestGacksHandle(unittest.TestCase):
        self.assertEqual(h.timeStart, h2.timeStart)
        self.assertEqual(h.timeStop, h2.timeStop)
 
-   def testSplit(self):
+   def testSplitUnit(self):
        h = GacksHandle("cpu", 10, 15, 20, 25)
-       (h1, h2) = h.split(12,23)
+       parts = h.split_unit(12)
+       h1 = parts[0]
+       h2 = parts[1]
 
        self.assertEqual(h1.id, "cpu")
        self.assertEqual(h1.unitStart, 10)
        self.assertEqual(h1.unitStop, 12)
        self.assertEqual(h1.timeStart, 20)
-       self.assertEqual(h1.timeStop, 23)
+       self.assertEqual(h1.timeStop, 25)
 
        self.assertEqual(h2.id, "cpu")
        self.assertEqual(h2.unitStart, 12)
        self.assertEqual(h2.unitStop, 15)
+       self.assertEqual(h2.timeStart, 20)
+       self.assertEqual(h2.timeStop, 25)
+
+   def testSplitTime(self):
+       h = GacksHandle("cpu", 10, 15, 20, 25)
+       parts = h.split_time(23)
+       h1 = parts[0]
+       h2 = parts[1]
+
+       self.assertEqual(h1.id, "cpu")
+       self.assertEqual(h1.unitStart, 10)
+       self.assertEqual(h1.unitStop, 15)
+       self.assertEqual(h1.timeStart, 20)
+       self.assertEqual(h1.timeStop, 23)
+
+       self.assertEqual(h2.id, "cpu")
+       self.assertEqual(h2.unitStart, 10)
+       self.assertEqual(h2.unitStop, 15)
        self.assertEqual(h2.timeStart, 23)
        self.assertEqual(h2.timeStop, 25)
 
+   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)
+
 class TestGacksRecord(unittest.TestCase):
    def setUp(self):
        pass
@@ -118,6 +179,20 @@ class TestGacksRecord(unittest.TestCase):
        r = GacksRecord("cpu", 10, 15, 20, 25, ["foo","bar"], "slice1")
        self.assertEqual(r.get_consumer(), "slice1")
 
+   def testTestDict(self):
+       r = GacksRecord("cpu", 10, 15, 20, 25, ["foo","bar"], "slice1")
+       d = r.as_dict()
+
+       r2 = GacksRecord(dict=d)
+
+       self.assertEqual(r.id, r2.id)
+       self.assertEqual(r.unitStart, r2.unitStart)
+       self.assertEqual(r.unitStop, r2.unitStop)
+       self.assertEqual(r.timeStart, r2.timeStart)
+       self.assertEqual(r.timeStop, r2.timeStop)
+       self.assertEqual(r.allocatorHRNs, r2.allocatorHRNs)
+       self.assertEqual(r.consumerHRN, r2.consumerHRN)
+
 
 
 if __name__ == "__main__":