44
55from lis import parse , evaluate , Expression , Environment , standard_env
66
7+ # Norvig's tests are not isolated: they assume the
8+ # same environment from first to last test.
9+ ENV_FOR_FIRST_TEST = standard_env ()
710
811@mark .parametrize ( 'source, expected' , [
912 ("(quote (testing 1 (2.0) -3.14e159))" , ['testing' , 1 , [2.0 ], - 3.14e159 ]),
4043 ("(riff-shuffle (riff-shuffle (riff-shuffle (list 1 2 3 4 5 6 7 8))))" , [1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ]),
4144])
4245def test_evaluate (source : str , expected : Optional [Expression ]) -> None :
43- got = evaluate (parse (source ))
46+ got = evaluate (parse (source ), ENV_FOR_FIRST_TEST )
4447 assert got == expected
4548
4649
@@ -58,31 +61,31 @@ def test_evaluate_variable() -> None:
5861 assert got == expected
5962
6063
61- def test_evaluate_literal () -> None :
64+ def test_evaluate_literal (std_env : Environment ) -> None :
6265 source = '3.3'
6366 expected = 3.3
64- got = evaluate (parse (source ))
67+ got = evaluate (parse (source ), std_env )
6568 assert got == expected
6669
6770
68- def test_evaluate_quote () -> None :
71+ def test_evaluate_quote (std_env : Environment ) -> None :
6972 source = '(quote (1.1 is not 1))'
7073 expected = [1.1 , 'is' , 'not' , 1 ]
71- got = evaluate (parse (source ))
74+ got = evaluate (parse (source ), std_env )
7275 assert got == expected
7376
7477
75- def test_evaluate_if_true () -> None :
78+ def test_evaluate_if_true (std_env : Environment ) -> None :
7679 source = '(if 1 10 no-such-thing)'
7780 expected = 10
78- got = evaluate (parse (source ))
81+ got = evaluate (parse (source ), std_env )
7982 assert got == expected
8083
8184
82- def test_evaluate_if_false () -> None :
85+ def test_evaluate_if_false (std_env : Environment ) -> None :
8386 source = '(if 0 no-such-thing 20)'
8487 expected = 20
85- got = evaluate (parse (source ))
88+ got = evaluate (parse (source ), std_env )
8689 assert got == expected
8790
8891
0 commit comments