From 97a7cd8b527da6e4c84cae0b925d55bce49b14f4 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 2 Mar 2024 14:50:56 +0000 Subject: Test substitution of IO and None effects --- .../compiler/types/TypeSubstitutionTests.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/test/java') diff --git a/src/test/java/org/shedlang/compiler/types/TypeSubstitutionTests.java b/src/test/java/org/shedlang/compiler/types/TypeSubstitutionTests.java index 210e4c18..c53038ca 100644 --- a/src/test/java/org/shedlang/compiler/types/TypeSubstitutionTests.java +++ b/src/test/java/org/shedlang/compiler/types/TypeSubstitutionTests.java @@ -41,6 +41,28 @@ public class TypeSubstitutionTests { assertThat(result, equalTo(Effects.IO)); } + @Test + public void substitutingEffectIoDoesNothing() { + var typeSubstitutionMap = TypeSubstitutionMap.of( + Map.entry(EffectParam.forStructType(STRUCT_TYPE, "E"), Effects.NONE) + ); + + var result = TypeSubstitution.substituteEffect(Effects.IO, typeSubstitutionMap); + + assertThat(result, equalTo(Effects.IO)); + } + + @Test + public void substitutingEffectNoneDoesNothing() { + var typeSubstitutionMap = TypeSubstitutionMap.of( + Map.entry(EffectParam.forStructType(STRUCT_TYPE, "E"), Effects.IO) + ); + + var result = TypeSubstitution.substituteEffect(Effects.NONE, typeSubstitutionMap); + + assertThat(result, equalTo(Effects.NONE)); + } + @Test public void substitutingBoolDoesNothing() { var typeSubstitutionMap = TypeSubstitutionMap.of( -- cgit v1.2.3