from hy.lex.tokenize import tokenize def test_list_lex(): """test basic lexing of lists""" fn = tokenize("(fn [1 2 3 4])")[0] assert fn == [ "fn", ["1", "2", "3", "4"] ] def test_list_recurse(): """ test we can recurse lists """ fn = tokenize("(fn [1 2 3 4 [5 6 7]])")[0] assert fn == [ "fn", ["1", "2", "3", "4", ["5", "6", "7"]] ] def test_double_rainbow(): """ DOUBLE LISTS """ fn = tokenize("(fn [1 2 3 4] [5 6 7])")[0] assert fn == [ "fn", ["1", "2", "3", "4"], ["5", "6", "7"] ] def test_string_in_list(): """ String in list """ fn = tokenize('(fn [1 2 "three four" 5])')[0] assert fn == [ "fn", ["1", "2", "three four", "5"] ] def test_list_recurse_with_comment(): """ test we can recurse lists """ fn = tokenize(""" (fn [1 ; this is a test 2 3 4 [5 6 7]]) """)[0] assert fn == [ "fn", ["1", "2", "3", "4", ["5", "6", "7"]] ]