|
|
@ -0,0 +1,22 @@ |
|
|
|
require "../../helper" |
|
|
|
require "./mal_spec_runner.cr" |
|
|
|
|
|
|
|
describe "'Make a Lisp' tests" do |
|
|
|
it "tests step2 of mal" do |
|
|
|
runner = MalTestRunner.new(__DIR__ + "/tests/step2_eval.mal") |
|
|
|
i = Crisp::Interpreter.new |
|
|
|
|
|
|
|
runner.each_test do |input, output, result| |
|
|
|
if result |
|
|
|
r = i.print i.eval_string(input) |
|
|
|
else |
|
|
|
output.empty?.should be_false |
|
|
|
begin |
|
|
|
i.eval_string(input) |
|
|
|
rescue e |
|
|
|
e.message.should match(/#{output.last.chomp}/) |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |