summaryrefslogtreecommitdiff
path: root/tests/test_evaluator.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_evaluator.py')
-rw-r--r--tests/test_evaluator.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/test_evaluator.py b/tests/test_evaluator.py
new file mode 100644
index 0000000..d989f85
--- /dev/null
+++ b/tests/test_evaluator.py
@@ -0,0 +1,18 @@
+from hypothesis import given, event
+
+from actinide.evaluator import *
+from actinide.environment import *
+from actinide.types import *
+
+from .programs import *
+
+# Cases for the evaluator:
+
+# * Given a program, does it produce the expected evaluation?
+@given(programs())
+def test_evaluator(program_result):
+ program, result, bindings = program_result
+ environment = Environment()
+ assert run(eval(program, environment, symbol_table, None)) == result
+ for symbol, value in bindings:
+ assert environment[symbol] == value