You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.0 KiB
64 lines
1.0 KiB
package main
|
|
|
|
import (
|
|
"git.jfdev.de/JonasFranzDEV/hal/hal"
|
|
"git.jfdev.de/JonasFranzDEV/hal/parser"
|
|
"github.com/stretchr/testify/assert"
|
|
"testing"
|
|
)
|
|
|
|
func TestAddition(t *testing.T) {
|
|
input := []string{
|
|
"1 START",
|
|
"2 IN 0",
|
|
"3 STORE 10",
|
|
"4 IN 0",
|
|
"5 ADD 10",
|
|
"6 OUT 1",
|
|
"7 STOP",
|
|
}
|
|
|
|
program, err := parser.ParseProgram(input)
|
|
assert.NoError(t, err)
|
|
|
|
module, err := hal.NewHALModule(program, 256, 2, false)
|
|
assert.NoError(t, err)
|
|
|
|
module.IO[0] = 10
|
|
|
|
err = module.Run()
|
|
assert.NoError(t, err)
|
|
|
|
assert.Equal(t, float64(20), module.IO[1])
|
|
}
|
|
|
|
func TestMax(t *testing.T) {
|
|
input := []string{
|
|
"00 IN 0",
|
|
"01 STORE 1",
|
|
"02 IN 1",
|
|
"03 STORE 2",
|
|
"04 SUB 1",
|
|
"05 JUMPPOS 9",
|
|
"06 LOAD 1",
|
|
"07 OUT 1",
|
|
"08 STOP",
|
|
"09 LOAD 2",
|
|
"10 OUT 1",
|
|
"11 STOP",
|
|
}
|
|
|
|
program, err := parser.ParseProgram(input)
|
|
assert.NoError(t, err)
|
|
|
|
module, err := hal.NewHALModule(program, 256, 2, false)
|
|
assert.NoError(t, err)
|
|
|
|
module.IO[0] = 10
|
|
module.IO[1] = 15
|
|
|
|
err = module.Run()
|
|
assert.NoError(t, err)
|
|
|
|
assert.Equal(t, float64(15), module.IO[1])
|
|
}
|
|
|