def __init__(self, separator, constrain_order = None, hill_climb_cond = False, must_have=None): """ @param separator: available separator @type separator: HypotheticalSeparator """ super(PCCI,self).__init__(variables=separator.variables()) self._constrain_order = constrain_order self._hill_climb_cond = hill_climb_cond if must_have is None or not must_have: self._must_have = separator.variables() else: self._must_have = must_have self.num_tests = 0 self._skel = UGraph(vertices=self.variables()) self._ic_discovery(separator)
def setUp(self): super(TestGraphCI, self).setUp() self.g = list(xrange(4)) self.indeps = list(xrange(4)) self.g[0] = UGraph(vertices=['a', 'b', 'c', 'd', 'e'], lines=[('a', 'b'), ('a', 'c'), ('b', 'd'), ('b', 'c'), ('c', 'd'), ('c', 'e')]) self.indeps[0] = { ('b', 'e'): [frozenset(['c'])], ('d', 'e'): [frozenset(['c'])], ('a', 'd'): [frozenset(['c', 'b'])], ('a', 'e'): [frozenset(['c'])] } self.g[1] = ADG(vertices=['a', 'b', 'c', 'd', 'e', 'f'], arrows=[('a', 'b'), ('b', 'c'), ('d', 'a'), ('d', 'e'), ('d', 'f'), ('e', 'c'), ('c', 'f')]) self.indeps[1] = { ('e', 'f'): [frozenset(['c', 'd'])], ('a', 'f'): [frozenset(['b', 'd']), frozenset(['c', 'd'])], ('a', 'e'): [frozenset(['d'])], ('b', 'f'): [frozenset(['a', 'c', 'e']), frozenset(['c', 'd'])], ('c', 'd'): [frozenset(['b', 'e']), frozenset(['a', 'e'])], ('b', 'e'): [frozenset(['a']), frozenset(['d'])], ('a', 'c'): [frozenset(['b', 'd']), frozenset(['b', 'e'])], ('b', 'd'): [frozenset(['a'])] } self.g[2] = ADG(vertices=['a', 'b', 'c', 'd'], arrows=[('a', 'b'), ('b', 'c'), ('c', 'd')]) self.indeps[2] = { ('a', 'd'): [frozenset(['c']), frozenset(['b'])], ('a', 'c'): [frozenset(['b'])], ('b', 'd'): [frozenset(['c'])] } self.g[3] = ADG(vertices=['a', 'b', 'c', 'd'], arrows=[('a', 'c'), ('b', 'c'), ('c', 'd')]) self.indeps[3] = { ('a', 'c'): [frozenset([])], ('b', 'c'): [frozenset([])], ('d', 'c'): [frozenset([])] }