30 lines
787 B
Kotlin
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)
|
|
}
|
|
|
|
} |