def test_parse_object(): word_list = lexicon.scan('the door') assert_equal(parser.parse_object(word_list), ('noun', 'door')) word_list = lexicon.scan('the east') assert_equal(parser.parse_object(word_list), ('direction', 'east')) word_list = lexicon.scan('the it') assert_raises(parser.ParserError, parser.parse_object, word_list)
def test_parse_sentence(): word_list = lexicon.scan('the bear eat door') s = parser.parse_sentence(word_list) assert_equal(s.to_tuple(), ('bear', 'eat', 1, 'door')) word_list = lexicon.scan('in eat door') s = parser.parse_sentence(word_list) assert_equal(s.to_tuple(), ('player', 'eat', 1, 'door')) word_list = lexicon.scan('north eat door') assert_raises(parser.ParserError, parser.parse_sentence, word_list)
def test_match(): word_list = lexicon.scan('princess') assert_equal(parser.match(word_list, 'noun'), ('noun', 'princess')) assert_equal(parser.match(word_list, 'stop'), None) assert_equal(parser.match(None, 'noun'), None)
def test_numbers(): assert_equal(lexicon.scan("12345"), [('number'), 1234]) result = lexicon.scan("3 91234") assert_equal(result, [('number', 3), ('number', 91234)])
def test_nouns(): assert_equal(lexicon.scan("bear"), [('noun', 'bear')]) result = lexicon.scan("bear princess") assert_equal(result, [('noun', 'bear'), ('noun', 'princess')])
def test_verbs(): assert_equal(lexicon.scan("go", [('verb', 'go')])) result = lexicon.scan("go kill eat") assert_equal(result, [('verb', 'go'), ('verb', 'kill'), ('verb', 'eat')])
def test_verbs(): assert_equal(lexicon.scan("go"), [('verb', 'go')]) result = lexicon.scan("go kill eat") assert_equal(result, [('verb', 'go'), ('verb', 'kill'), ('verb', 'eat')])
def test_stuff(): stuff = lexicon.scan("Attack 2 Bear") assert_equal(stuff, [('verb', 'Attack'), ('number', 2), ('noun', 'Bear')])
def test_numbers(): word_list = lexicon.scan('xxx the xxx bear xxx eat xxx 5 xxx door xxx') s = parser.parse_sentence(word_list) assert_equal(s.to_tuple(), ('bear', 'eat', 5, 'door'))
def test_parse_subject(): word_list = lexicon.scan('eat door') subj = ('noun', 'bear') s = parser.parse_subject(word_list, subj) assert_equal(s.to_tuple(), ('bear', 'eat', 1, 'door'))
def test_parse_verb(): word_list = lexicon.scan('it eat door') assert_equal(parser.parse_verb(word_list), ('verb', 'eat')) word_list = lexicon.scan('bear eat door') assert_raises(parser.ParserError, parser.parse_verb, word_list)
def test_skip(): word_list = lexicon.scan('bear eat door') assert_equal(word_list, [('noun', 'bear'), ('verb', 'eat'), ('noun', 'door')]) parser.skip(word_list, 'noun') assert_equal(word_list, [('verb', 'eat'), ('noun', 'door')])
def test_stops(): assert_equal(lexicon.scan("the"), [('stop', 'the')]) result = lexicon.scan("the in of") assert_equal(result, [('stop', 'the'), ('stop', 'in'), ('stop', 'of')])
def test_numbers(): assert_equal(lexicon.scan("1234"), [('number', 1234)]) result = lexicon.scan("3 91234") assert_equal(result, [('number', 3), ('number', 91234)])
def test_errors(): assert_equal(lexicon.scan("ASDFADFASDF"), [('error', 'ASDFADFASDF')]) result = lexicon.scan("bear IAS princess") assert_equal(result, [('noun', 'bear'), ('error', 'IAS'), ('noun', 'princess')])
def test_directions(): assert_equal(lexicon.scan("north"), [('direction', 'north')]) result = lexicon.scan("north south east") assert_equal(result, [('direction', 'north'), ('direction', 'south'), ('direction', 'east')])
def test_peek(): word_list = lexicon.scan('princess') assert_equal(parser.peek(word_list), 'noun') assert_equal(parser.peek(None), None)