diff --git a/tests/test_parse.py b/tests/test_parse.py index dc60985..b54fb4d 100644 --- a/tests/test_parse.py +++ b/tests/test_parse.py @@ -1,5 +1,5 @@ from hypothesis import given -from hypothesis.strategies import text, booleans +from hypothesis.strategies import text, booleans, sampled_from from src import parse @@ -49,3 +49,27 @@ assert tokens[0].type == "bool" assert tokens[0].value == bool assert tokens[1].type == "EOF" + + +# List of keywords the lexer understands +keywords = [ + "NewLang", + "Done", + "Set", + "To", + "EndSet", + "If", + "Then", + "Else", + "EndIf", +] + +# Test that we can read keywords properly +@given(sampled_from(keywords)) +def test_lexer_boolean(keyword): + code = keyword + tokenizer = parse.Tokenizer(code, "") + tokens = tokenizer.tokenize() + assert tokens[0].type == "keyword" + assert tokens[0].value == keyword + assert tokens[1].type == "EOF"