summaryrefslogtreecommitdiff
path: root/elixir/ast_test.exs
diff options
context:
space:
mode:
authorArnaud Bailly <arnaud.bailly@iohk.io>2025-01-25 10:45:41 +0100
committerArnaud Bailly <arnaud.bailly@iohk.io>2025-01-25 10:45:41 +0100
commit7752d73216578d5961751b5d0535088d384b4aa6 (patch)
tree786e46fe1276e93ade0a48398cd4c9ac13081707 /elixir/ast_test.exs
parentd6f68e919db51d366c8ca3c1509bea12aa81d692 (diff)
downloadlambda-nantes-7752d73216578d5961751b5d0535088d384b4aa6.tar.gz
Move λ-calcul workshop code to subdirectory
Diffstat (limited to 'elixir/ast_test.exs')
-rw-r--r--elixir/ast_test.exs70
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