diff options
Diffstat (limited to 'elixir/ast_test.exs')
| -rw-r--r-- | elixir/ast_test.exs | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/elixir/ast_test.exs b/elixir/ast_test.exs deleted file mode 100644 index b10c959..0000000 --- a/elixir/ast_test.exs +++ /dev/null @@ -1,70 +0,0 @@ -defmodule AstTest do - use ExUnit.Case - - test "pprint/1" do - assert Ast.pprint(Ast.var("x")) == "x" - assert Ast.pprint(Ast.abs("x", Ast.var("x"))) == "(λ x . x)" - assert Ast.pprint(Ast.app(Ast.var("x"), Ast.var("y"))) == "x y" - end - - test "pprint with if expression lambda calculus" do - assert Ast.pprint(Ast.abs("f", Ast.abs("y", Ast.app(Ast.var("f"), Ast.var("x"))))) == - "(λ f . (λ y . f x))" - end - - test "free_vars-1" do - program = Ast.var("x") - expected = MapSet.new(["x"]) - repr_expected = "x" - repr_subs_expected = "y" - - assert MapSet.equal?(Ast.free_vars(program), expected) - assert Ast.pprint(program) == repr_expected - - assert Ast.pprint(Ast.subst(program, "x", Ast.var("y"))) == repr_subs_expected - end - - test "free_vars-2" do - program = Ast.abs("x", Ast.var("x")) - expected = MapSet.new([]) - repr_expected = "(λ x . x)" - repr_subs_expected = "(λ x . x)" - - assert MapSet.equal?(Ast.free_vars(program), expected) - assert Ast.pprint(program) == repr_expected - - assert Ast.pprint(Ast.subst(program, "x", Ast.var("y"))) == repr_subs_expected - end - - test "free_vars-3" do - program = Ast.app(Ast.var("f"), Ast.var("x")) - expected = MapSet.new(["f", "x"]) - repr_expected = "f x" - - assert MapSet.equal?(Ast.free_vars(program), expected) - assert Ast.pprint(program) == repr_expected - end - - test "free_vars-4" do - program = - Ast.abs( - "f", - Ast.app(Ast.var("x"), Ast.abs("x", Ast.app(Ast.var("f"), Ast.var("x")))) - ) - - expected = MapSet.new(["x"]) - repr_expected = "(λ f . x (λ x . f x))" - - assert MapSet.equal?(Ast.free_vars(program), expected) - assert Ast.pprint(program) == repr_expected - end - - test "free_vars-5" do - program = Ast.abs("f", Ast.abs("y", Ast.app(Ast.var("f"), Ast.var("x")))) - expected = MapSet.new(["x"]) - repr_expected = "(λ f . (λ y . f x))" - - assert MapSet.equal?(Ast.free_vars(program), expected) - assert Ast.pprint(program) == repr_expected - end -end |
