package net.shadowfacts.asmr.program import net.shadowfacts.asmr.program.blocks.ConstantBlock import net.shadowfacts.asmr.program.blocks.math.BinaryOperatorBlock import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test /** * @author shadowfacts */ class ProgramTests { @Test fun testExecutionFlow() { val program = Program() val one = program.addBlock(ConstantBlock(ProgramType.INT, 3)) val two = program.addBlock(ConstantBlock(ProgramType.INT, 7)) val multiply = program.addBlock(BinaryOperatorBlock(ProgramType.INT, BinaryOperatorBlock.Operation.MULTIPLY)) { it.left.link(from = one.output) it.right.link(from = two.output) } program.startBlock.link(multiply) program.execute() assertEquals(21, multiply.output.value) } }