def test_remove_deadends(): g = labeled_graphs.LabeledDiGraph() # cycle n = 5 g.add_nodes_from(range(n)) for i in range(n): j = (i + 1) % n g.add_edge(i, j) g.remove_deadends() assert(len(g) == n) # line + cycle g.add_nodes_from(range(n, 2*n)) for i in xrange(n, 2*n-1): g.add_edge(i, i+1) assert(len(g) == 2*n) g.remove_deadends() assert(len(g) == n) # line + self-loop g.remove_edge(4, 0) g.add_edge(0, 0) g.remove_deadends() assert(len(g) == 1)
def setUp(self): p = PowerSet({1, 2}) node_labeling = [ { 'name': 'month', 'values': ['Jan', 'Feb'] }, { 'name': 'day', 'values': ['Mon', 'Tue'] }, { 'name': 'comb', 'values': p, 'setter': p.math_set } ] edge_labeling = node_labeling G = labeled_graphs.LabeledDiGraph(node_labeling, edge_labeling) G.states.add_from({1, 2}) G.transitions.add(1, 2, month='Jan', day='Mon') assert_raises(Exception, G.transitions.add, 1, 2, {'month': 'Jan', 'day': 'abc'}) # note how untyped keys can be set directly via assignment, # whereas check=False is needed for G.add_node G.node[1]['mont'] = 'Feb' assert(G.node[1] == {'mont':'Feb'}) G[1][2][0]['day'] = 'Tue' assert(G[1][2][0] == {'month':'Jan', 'day':'Tue'}) self.G = G
def setUp(self): node_label_def = [{ 'name': 'ap', 'values': PowerSet({'p', 'q', 'r', 'x', 'a', 'b'})}] G = labeled_graphs.LabeledDiGraph(node_label_def) self.S_ap = labeled_graphs.States(G) G.states = self.S_ap
def test_ior(self): self.S.add(1) other_S = labeled_graphs.States(labeled_graphs.LabeledDiGraph()) other_S.add(0) assert len(self.S) == 1 assert set([s for s in self.S]) == {1} self.S |= other_S assert len(self.S) == 2 assert set([s for s in self.S]) == {1, 0}
def setUp(self): G = labeled_graphs.LabeledDiGraph() self.T = labeled_graphs.Transitions(G) G.transitions = self.T self.T.graph.states.add_from([1, 2, 3, 4, 5])
def setUp(self): self.S = labeled_graphs.States(labeled_graphs.LabeledDiGraph())
def setup_method(self): self.S = labeled_graphs.States(labeled_graphs.LabeledDiGraph())