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())
Example #7
0
 def setup_method(self):
     self.S = labeled_graphs.States(labeled_graphs.LabeledDiGraph())