diff options
| author | Michael Williamson <mike@zwobble.org> | 2025-01-12 22:02:25 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2025-01-12 22:02:25 +0000 |
| commit | 63b3e45d88251ec7647bafcc428f59c1c3d8d2ad (patch) | |
| tree | b3b8147ea0588bb8b10bb2bdcf1e9ba17cc431a5 /src/test/java | |
| parent | a3aadd9903e64a7a459227e28feeee03d05560b3 (diff) | |
Add Shid declare-native-function instruction
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/shid/ShidSerializerTests.java | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/test/java/org/shedlang/compiler/shid/ShidSerializerTests.java b/src/test/java/org/shedlang/compiler/shid/ShidSerializerTests.java index 6018fa88..70218cc3 100644 --- a/src/test/java/org/shedlang/compiler/shid/ShidSerializerTests.java +++ b/src/test/java/org/shedlang/compiler/shid/ShidSerializerTests.java @@ -1,10 +1,7 @@ package org.shedlang.compiler.shid; import org.junit.jupiter.api.Test; -import org.shedlang.compiler.shid.instructions.Shid; -import org.shedlang.compiler.shid.instructions.ShidDefineFunction; -import org.shedlang.compiler.shid.instructions.ShidInstruction; -import org.shedlang.compiler.shid.instructions.ShidVariable; +import org.shedlang.compiler.shid.instructions.*; import org.shedlang.compiler.types.Effects; import org.shedlang.compiler.types.NamespaceName; import org.shedlang.compiler.types.Types; @@ -46,6 +43,27 @@ public class ShidSerializerTests { } @Test + public void canSerializeDeclareNativeFunction() { + var instruction = ShidDeclareNativeFunction.builder() + .withName("f") + .addPositionalParam("p1") + .addPositionalParam("p2") + .addNamedParam("n1") + .addNamedParam("n2") + .build(); + + var string = serialize(instruction); + + assertThat(string, equalTo(""" + ( + declare-native-function + name="f" + positional-params=("p1" "p2") + named-params=("n1" "n2") + )""")); + } + + @Test public void canSerializeDefineEffect() { var instruction = Shid.defineEffect( Effects.userDefined(NamespaceName.of("Example", "Project"), "State") |
