From 7752d73216578d5961751b5d0535088d384b4aa6 Mon Sep 17 00:00:00 2001 From: Arnaud Bailly Date: Sat, 25 Jan 2025 10:45:41 +0100 Subject: Move λ-calcul workshop code to subdirectory MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/lambdanantes/lcgoji/LCEvaluatorTest.java | 74 ---------------------- .../java/org/lambdanantes/lcgoji/ast/TermTest.java | 38 ----------- 2 files changed, 112 deletions(-) delete mode 100644 java/lcgoji/src/test/java/org/lambdanantes/lcgoji/LCEvaluatorTest.java delete mode 100644 java/lcgoji/src/test/java/org/lambdanantes/lcgoji/ast/TermTest.java (limited to 'java/lcgoji/src/test') 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 -- cgit v1.2.3