package org.shedlang.compiler.shid; import org.junit.jupiter.api.Test; import org.shedlang.compiler.ast.typed.Typed; import java.util.List; import static org.shedlang.compiler.shid.instructions.ShidMatchers.*; import static org.zwobble.precisely.AssertThat.assertThat; import static org.zwobble.precisely.Matchers.isSequence; public class ShidCodeGenTupleTests { @Test public void stringAddIsCompiledToStringAddInstruction() { var node = Typed.tuple(List.of( Typed.stringLiteral("a"), Typed.boolLiteral(true), Typed.intLiteral(4) )); var context = ShidCodeGen.Context.EMPTY; var result = ShidCodeGen.compileExpression(node, context); assertThat(result.instructions(), isSequence( isShidPushString("a"), isShidPushBool(true), isShidPushInt(4), isShidTupleCreate(3) )); } }