Пример #1
0
def test_information_state_state_set():
    df = DialogueFlow('root', initial_speaker=Speaker.USER)
    transitions = {
        'state': 'root',
        'error': {
            'state': 'one',
            'okay': {
                'state': 'two',
                'error': {
                    'state': 'three',
                    'sure': 'root'
                }
            }
        },
        'something': {
            'state': 'special',
            'that is great': 'root'
        }
    }
    df.add_update_rule('[{read, watched}]', '#TRANSITION(special, 2.0)')
    df.load_transitions(transitions, speaker=Speaker.USER)
    df.user_turn('hi')
    assert df.system_turn() == 'okay'
    df.user_turn('i read a book')
    assert df.state() == 'special'
    assert df.system_turn() == 'that is great'
    assert df.state() == 'root'
Пример #2
0
def test_information_state_state_set():
    df = DialogueFlow("root", initial_speaker=Speaker.USER)
    transitions = {
        "state": "root",
        "error": {
            "state": "one",
            "okay": {"state": "two", "error": {"state": "three", "sure": "root"}},
        },
        "something": {"state": "special", "that is great": "root"},
    }
    df.add_update_rule("[{read, watched}]", "#TRANSITION(special, 2.0)")
    df.load_transitions(transitions, speaker=Speaker.USER)
    df.user_turn("hi")
    assert df.system_turn() == "okay"
    df.user_turn("i read a book")
    assert df.state() == "special"
    assert df.system_turn() == "that is great"
    assert df.state() == "root"
Пример #3
0
def test_information_state_based_dialogue():
    df = DialogueFlow("root", initial_speaker=Speaker.USER)
    df.add_user_transition("root", "one", "$x=[{cat, dog}]")
    df.set_error_successor("root", "one")
    df.add_system_transition("one", "root", "i am a stupid state machine")
    df.add_update_rule("[$x={ice cream, candy}]")
    df.add_update_rule("#ANY($x=candy)", "$y=blah")
    df.add_update_rule("#ANY($x=ice cream)", "$y=None")
    df.add_update_rule("#ANY($y=blah)", "i am a smart info state manager (2.0)")

    df.user_turn("candy", debugging=True)
    assert df.system_turn().strip() == "i am a smart info state manager"
    df.user_turn("ice cream", debugging=True)
    assert df.system_turn(debugging=True).strip() == "i am a stupid state machine"
    df.user_turn("ice cream", debugging=True)
    assert df.system_turn(debugging=True).strip() == "i am a stupid state machine"
    df.user_turn("ice cream", debugging=True)
    assert df.system_turn(debugging=True).strip() == "i am a stupid state machine"
    df.user_turn("ice cream", debugging=True)
    assert df.system_turn(debugging=True).strip() == "i am a stupid state machine"
Пример #4
0
def test_information_state_based_dialogue():
    df = DialogueFlow('root', initial_speaker=Speaker.USER)
    df.add_user_transition('root', 'one', '$x=[{cat, dog}]')
    df.set_error_successor('root', 'one')
    df.add_system_transition('one', 'root', 'i am a stupid state machine')
    df.add_update_rule('[$x={ice cream, candy}]')
    df.add_update_rule('#ANY($x=candy)', '$y=blah')
    df.add_update_rule('#ANY($x=ice cream)', '$y=None')
    df.add_update_rule('#ANY($y=blah)', 'i am a smart info state manager (2.0)')

    df.user_turn('candy', debugging=True)
    assert df.system_turn().strip() == 'i am a smart info state manager'
    df.user_turn('ice cream', debugging=True)
    assert df.system_turn(debugging=True).strip() == 'i am a stupid state machine'
    df.user_turn('ice cream', debugging=True)
    assert df.system_turn(debugging=True).strip() == 'i am a stupid state machine'
    df.user_turn('ice cream', debugging=True)
    assert df.system_turn(debugging=True).strip() == 'i am a stupid state machine'
    df.user_turn('ice cream', debugging=True)
    assert df.system_turn(debugging=True).strip() == 'i am a stupid state machine'