summaryrefslogtreecommitdiff
path: root/java/lcgoji/src/test
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 /java/lcgoji/src/test
parentd6f68e919db51d366c8ca3c1509bea12aa81d692 (diff)
downloadlambda-nantes-7752d73216578d5961751b5d0535088d384b4aa6.tar.gz
Move λ-calcul workshop code to subdirectory
Diffstat (limited to 'java/lcgoji/src/test')
-rw-r--r--java/lcgoji/src/test/java/org/lambdanantes/lcgoji/LCEvaluatorTest.java74
-rw-r--r--java/lcgoji/src/test/java/org/lambdanantes/lcgoji/ast/TermTest.java38
2 files changed, 0 insertions, 112 deletions
diff --git a/java/lcgoji/src/test/java/org/lambdanantes/lcgoji/LCEvaluatorTest.java b/java/lcgoji/src/test/java/org/lambdanantes/lcgoji/LCEvaluatorTest.java
deleted file mode 100644
index ec2f027..0000000
--- a/java/lcgoji/src/test/java/org/lambdanantes/lcgoji/LCEvaluatorTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.lambdanantes.lcgoji;
-
-import org.junit.Test;
-import org.lambdanantes.lcgoji.ast.Term;
-import org.lambdanantes.lcgoji.ast.Var;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-import static org.lambdanantes.lcgoji.LCEvaluator.evaluate;
-import static org.lambdanantes.lcgoji.ast.Abs.IDENTITY;
-import static org.lambdanantes.lcgoji.ast.Abs.λ;
-import static org.lambdanantes.lcgoji.ast.App.apply;
-import static org.lambdanantes.lcgoji.ast.Var.var;
-
-public class LCEvaluatorTest {
-
- Var x = var("x");
- Var y = var("y");
- Var z = var("z");
-
- @Test
- public void l_evaluation_d_une_variable_rend_la_meme_variable() {
- // evaluate(x) == x
- assertEvalTo(x, x);
- }
-
- @Test
- public void l_evaluation_d_une_abstraction_rend_la_meme_abstraction() {
- // evaluate(λx.x) == λx.x
- assertEvalTo(IDENTITY, IDENTITY);
- }
-
- @Test
- public void l_evaluation_de_l_application_de_deux_vars_rend_la_meme_application() {
- // evaluate(x y) == x y
- assertEvalTo(apply(x, y), apply(x, y));
- }
-
- @Test
- public void l_evaluation_de_l_application_de_l_identite_sur_un_argument_rend_l_argument() {
- // evaluate((λx.x) y) == y
- assertEvalTo(apply(IDENTITY, y), y);
- }
-
- @Test
- public void l_evaluation_de_l_application_d_une_abstraction_substitue_son_argument() {
- // evaluate((λx.x x) y ) == y y
- assertEvalTo(apply(λ("x", apply(x, x)), y), apply(y, y));
- }
-
- @Test
- public void l_evaluation_de_l_application_d_une_abstraction_d_abstraction_substitue_recursivement_son_argument() {
- // evaluate((λx.λy.x) z) == λy.z
- assertEvalTo(apply(λ("x", λ("y", x)), z), λ("y", z));
- }
-
- @Test
- public void l_evaluation_de_l_application_d_une_abstraction_ne_substitue_pas_ses_variables_libres() {
- // evaluate((λx.y) z) == y
- assertEvalTo(apply(λ("x", y), z), y);
- }
-
- @Test
- public void l_evaluation_de_l_application_d_une_abstraction_d_abstraction_ne_substitue_pas_les_variables_redefinies() {
- // evaluate((λx.λx.x) z) == λx.x
- assertEvalTo(apply(λ("x", λ("x", x)), z), λ("x", x));
- }
-
- /////
-
- private static void assertEvalTo(Term termToEvaluate, Term result) {
- assertThat(evaluate(termToEvaluate), is(result));
- }
-}
diff --git a/java/lcgoji/src/test/java/org/lambdanantes/lcgoji/ast/TermTest.java b/java/lcgoji/src/test/java/org/lambdanantes/lcgoji/ast/TermTest.java
deleted file mode 100644
index f11ca77..0000000
--- a/java/lcgoji/src/test/java/org/lambdanantes/lcgoji/ast/TermTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.lambdanantes.lcgoji.ast;
-
-import org.junit.Test;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.not;
-import static org.junit.Assert.assertThat;
-import static org.lambdanantes.lcgoji.ast.Abs.λ;
-import static org.lambdanantes.lcgoji.ast.App.apply;
-import static org.lambdanantes.lcgoji.ast.Var.var;
-
-public class TermTest {
-
- @Test
- public void les_equals_des_termes_sont_corrects() {
- // x == x
- assertThat(var("x"), is(var("x")));
- // x != y
- assertThat(var("x"), is(not(var("y"))));
- // λx.x == λx.x
- assertThat(λ("x", var("x")), is(λ("x", var("x"))));
- // λx.x != λy.x
- assertThat(λ("x", var("x")), is(not(λ("y", var("x")))));
- // x y == x y
- assertThat(apply(var("x"), var("y")), is(apply(var("x"), var("y"))));
- // x x != x y
- assertThat(apply(var("x"), var("x")), is(not(apply(var("x"), var("y")))));
- }
-
- @Test
- public void les_toString_des_termes_utilisent_la_notation_consacree() {
- assertThat(var("x").toString(), is("x"));
- assertThat(λ("x", var("x")).toString(), is("λx.x"));
- assertThat(apply(λ("x", var("x")), var("x")).toString(), is("(λx.x) x"));
- assertThat(apply(λ("x", λ("x", var("x"))), var("y")).toString(), is("(λx.λx.x) y"));
- }
-
-} \ No newline at end of file