Example #1
0
 def testGroupVariablesIfBool(self):
     du = {
         (0, 0): [7, 5],
         (0, 4): [8],
         (0, 5): [8],
         (0, 7): [8],
         (1, 6): [7],
         (2, -1): [6, 1],
         (3, -2): [2, 3]
     }
     ud = {
         (0, 5): [0],
         (0, 7): [0],
         (0, 8): [4, 5, 7],
         (1, 7): [6],
         (2, 1): [-1],
         (2, 6): [-1],
         (3, 2): [-2],
         (3, 3): [-2]
     }
     groups = dataflow.group_variables([0, 1, 2, 3], du, ud)
     expected_groups = {
         0: [([0], [5, 7]), ([4, 5, 7], [8])],
         1: [([6], [7])],
         2: [([-1], [1, 6])],
         3: [([-2], [2, 3])]
     }
     self.assertItemsEqual(groups, expected_groups)
     for entry in groups:
         self.assertItemsEqual(groups[entry], expected_groups[entry])
Example #2
0
 def testGroupVariablesGCD(self):
     du = {
         ('a', -1): [0],
         ('b', -2): [1],
         ('c', 0): [2, 5, 6, 7, 8],
         ('c', 6): [8],
         ('d', 1): [3, 4, 5, 6, 7],
         ('ret', 3): [9],
         ('ret', 8): [9]
     }
     ud = {
         ('a', 0): [-1],
         ('b', 1): [-2],
         ('c', 2): [0],
         ('c', 5): [0],
         ('c', 6): [0],
         ('c', 7): [0],
         ('c', 8): [0, 6],
         ('d', 3): [1],
         ('d', 4): [1],
         ('d', 5): [1],
         ('d', 6): [1],
         ('d', 7): [1],
         ('ret', 9): [3, 8]
     }
     expected_groups = {
         'a': [([-1], [0])],
         'b': [([-2], [1])],
         'c': [([0, 6], [8, 2, 5, 6, 7])],
         'd': [([1], [3, 4, 5, 6, 7])],
         'ret': [([3, 8], [9])]
     }
     groups = dataflow.group_variables(['a', 'b', 'c', 'd', 'ret'], du, ud)
     self.assertEqual(groups, expected_groups)
 def testGroupVariablesGCD(self):
     du = {('a', -1): [0],
           ('b', -2): [1],
           ('c', 0): [2, 5, 6, 7, 8],
           ('c', 6): [8],
           ('d', 1): [3, 4, 5, 6, 7],
           ('ret', 3): [9],
           ('ret', 8): [9]}
     ud = {('a', 0): [-1], ('b', 1): [-2],
           ('c', 2): [0], ('c', 5): [0],
           ('c', 6): [0], ('c', 7): [0],
           ('c', 8): [0, 6], ('d', 3): [1],
           ('d', 4): [1], ('d', 5): [1],
           ('d', 6): [1], ('d', 7): [1],
           ('ret', 9): [3, 8]}
     expected_groups = {'a': [([-1], [0])],
                        'b': [([-2], [1])],
                        'c': [([0, 6], [8, 2, 5, 6, 7])],
                        'd': [([1], [3, 4, 5, 6, 7])],
                        'ret': [([3, 8], [9])]}
     groups = dataflow.group_variables(['a', 'b', 'c', 'd', 'ret'], du, ud)
     self.assertEqual(groups, expected_groups)
 def testGroupVariablesIfBool(self):
     du = {(0, 0): [7, 5],
           (0, 4): [8],
           (0, 5): [8],
           (0, 7): [8],
           (1, 6): [7],
           (2, -1): [6, 1],
           (3, -2): [2, 3]}
     ud = {(0, 5): [0],
           (0, 7): [0],
           (0, 8): [4, 5, 7],
           (1, 7): [6],
           (2, 1): [-1],
           (2, 6): [-1],
           (3, 2): [-2],
           (3, 3): [-2]}
     groups = dataflow.group_variables([0, 1, 2, 3], du, ud)
     expected_groups = {0: [([0], [5, 7]), ([4, 5, 7], [8])],
                        1: [([6], [7])],
                        2: [([-1], [1, 6])],
                        3: [([-2], [2, 3])]}
     self.assertItemsEqual(groups, expected_groups)
     for entry in groups:
         self.assertItemsEqual(groups[entry], expected_groups[entry])