aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-07-23 21:49:59 +0100
committerMichael Williamson <mike@zwobble.org>2023-07-23 21:49:59 +0100
commit008989950b12ce8e1eb649c44d84fad83e5cc4dc (patch)
treeef585bff79eff87b3d513f1ad7920c8ac16893cc /src/test/java
parent4eafe23fb726d231ead6a535f9e97f278c4114e0 (diff)
Add int-sub instruction to Patio
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java15
-rw-r--r--src/test/java/org/shedlang/compiler/patio/instructions/Patio.java8
2 files changed, 23 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
index 64ad3150..53075aec 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
@@ -287,6 +287,21 @@ public class PatioSerializerTests {
}
@Test
+ public void canSerializeIntSub() {
+ var instruction = Patio.intSub(
+ Patio.localRef("target"),
+ Patio.localRef("left"),
+ Patio.localRef("right")
+ );
+
+ var string = PatioTesting.serializeInstruction(instruction);
+
+ assertThat(string, equalTo("""
+ (int-sub (local "target") (local "left") (local "right"))"""
+ ));
+ }
+
+ @Test
public void canSerializeIntToBool() {
var instruction = Patio.intToBool(Patio.localRef("target"), Patio.localRef("value"));
diff --git a/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java b/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java
index 3a3123ef..f3fd2765 100644
--- a/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java
+++ b/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java
@@ -133,6 +133,14 @@ public class Patio {
return new PatioIntEquals(target, left, right, Sources.NULL);
}
+ public static PatioInstruction intSub(
+ PatioLocalRef target,
+ PatioOperand left,
+ PatioOperand right
+ ) {
+ return new PatioIntSub(target, left, right, Sources.NULL);
+ }
+
public static PatioInstruction intToBool(PatioLocalRef target, PatioLocalRef value) {
return new PatioIntToBool(target, value, Sources.NULL);
}