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])
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])