ASMR/src/test/kotlin/net/shadowfacts/asmr/program/ProgramTests.kt

30 lines
787 B
Kotlin

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)
}
}