コード例 #1
0
ファイル: tests_automata.py プロジェクト: vraman/Party
    def test_is_not_absorbing(self):
        node = Node('node')

        true_label = Label({})
        node.add_transition(true_label, [('dst1', True)])

        assert not is_absorbing(node)
コード例 #2
0
    def test_is_not_absorbing(self):
        node = Node('node')

        true_label = Label({})
        node.add_transition(true_label, [('dst1', True)])

        assert not is_absorbing(node)
コード例 #3
0
ファイル: automata_helper.py プロジェクト: 5nizza/Party
    def test_complement_node_with_live_ends(self):
        node = Node('node')
        node.add_transition(Label({'a': True}), {(node, False)})

        complement_node(node, ['a'])

        assert node.transitions[Label({'a': True})] == [{(node, False)}]
        assert node.transitions[Label({'a': False})] == [{(LIVE_END, False)}]
コード例 #4
0
ファイル: tests_automata.py プロジェクト: vraman/Party
    def test_is_absorbing(self):
        node = Node('node')

        true_label = Label({})
        node.add_transition(true_label, [(node, True)])
        node.add_transition(Label({'r': True}), [(node, True)])

        assert is_absorbing(node)
コード例 #5
0
ファイル: automata_helper.py プロジェクト: vraman/Party
    def test_complement_node_with_live_ends(self):
        node = Node('node')
        node.add_transition(Label({'a': True}), {(node, False)})

        complement_node(node, ['a'])

        assert node.transitions[Label({'a': True})] == [{(node, False)}]
        assert node.transitions[Label({'a': False})] == [{(LIVE_END, False)}]
コード例 #6
0
    def test_is_absorbing(self):
        node = Node('node')

        true_label = Label({})
        node.add_transition(true_label, [(node, True)])
        node.add_transition(Label({'r':True}), [(node, True)])

        assert is_absorbing(node)
コード例 #7
0
ファイル: tests_automata.py プロジェクト: 5nizza/party-elli
    def test_get_next_states(self):
        state = Node('init')
        r = Node('r')
        rg = Node('rg')
        nr_g = Node('!rg')

        _ = False
        edge_to_r = {(r, _)}
        edge_to_rg = {(rg, _)}
        edge_to_not_r_g = {(nr_g, _)}

        state.add_transition({'r':True}, edge_to_r)
        state.add_transition({'r':True, 'g':True}, edge_to_rg)
        state.add_transition({'r':False, 'g':True}, edge_to_not_r_g)

        next_states = get_next_states(state, Label({'r':False, 'g':False}))
        assert len(next_states) == 0

        next_states = get_next_states(state, Label({'r':False, 'g':True}))
        assert len(next_states) == 1
        self._are_equal_sequences({nr_g}, next_states)

        next_states = get_next_states(state, Label({'r':True, 'g':True}))
        assert len(next_states) == 2
        self._are_equal_sequences({r, rg}, next_states)
コード例 #8
0
ファイル: tests_automata.py プロジェクト: 5nizza/Party
    def test_get_next_states(self):
        state = Node('init')

        _ = False
        dst_set_r = {(Node('r'),_)}
        dst_set_rg = {(Node('rg'),_)}
        dst_set_not_r_g = {(Node('!rg'),_)}

        state.add_transition({'r':True}, dst_set_r)
        state.add_transition({'r':True, 'g':True}, dst_set_rg)
        state.add_transition({'r':False, 'g':True}, dst_set_not_r_g)


        list_of_state_sets = get_next_states(state,
                                             {'r':False, 'g':False})
        assert len(list_of_state_sets) == 0

        list_of_state_sets = get_next_states(state,
                                             {'r':False, 'g':True})
        assert len(list_of_state_sets) == 1
        assert set([x[0] for x in dst_set_not_r_g]) in list_of_state_sets, \
                                                    str(list_of_state_sets)

        list_of_state_sets = get_next_states(state,
                                             {'r':True, 'g':True})
        assert len(list_of_state_sets) == 2
        assert set([x[0] for x in dst_set_rg]) in list_of_state_sets
        assert set([x[0] for x in dst_set_r]) in list_of_state_sets
コード例 #9
0
ファイル: tests_automata.py プロジェクト: vraman/Party
    def test_get_next_states(self):
        state = Node('init')

        _ = False
        dst_set_r = {(Node('r'), _)}
        dst_set_rg = {(Node('rg'), _)}
        dst_set_not_r_g = {(Node('!rg'), _)}

        state.add_transition({'r': True}, dst_set_r)
        state.add_transition({'r': True, 'g': True}, dst_set_rg)
        state.add_transition({'r': False, 'g': True}, dst_set_not_r_g)

        list_of_state_sets = get_next_states(state, {'r': False, 'g': False})
        assert len(list_of_state_sets) == 0

        list_of_state_sets = get_next_states(state, {'r': False, 'g': True})
        assert len(list_of_state_sets) == 1
        assert set([x[0] for x in dst_set_not_r_g]) in list_of_state_sets, \
                                                    str(list_of_state_sets)

        list_of_state_sets = get_next_states(state, {'r': True, 'g': True})
        assert len(list_of_state_sets) == 2
        assert set([x[0] for x in dst_set_rg]) in list_of_state_sets
        assert set([x[0] for x in dst_set_r]) in list_of_state_sets
コード例 #10
0
ファイル: automata_helper.py プロジェクト: 5nizza/Party
    def test_complement_node_with_live_ends3(self):
        node = Node('node')
        node.add_transition(Label({}), {(node, False)})
        complement_node(node, ['a'])

        assert node.transitions[Label({})] == [{(node, False)}]
コード例 #11
0
ファイル: automata_helper.py プロジェクト: 5nizza/Party
    def test_dead_end(self):
        node = Node('node')
        node.add_transition(Label({}), {(node, True)})

        assert is_dead_end(node)
コード例 #12
0
ファイル: automata_helper.py プロジェクト: vraman/Party
    def test_complement_node_with_live_ends3(self):
        node = Node('node')
        node.add_transition(Label({}), {(node, False)})
        complement_node(node, ['a'])

        assert node.transitions[Label({})] == [{(node, False)}]
コード例 #13
0
ファイル: automata_helper.py プロジェクト: vraman/Party
    def test_dead_end(self):
        node = Node('node')
        node.add_transition(Label({}), {(node, True)})

        assert is_dead_end(node)