parent
1d0dd6faa3
commit
80e9d69813
@ -0,0 +1,64 @@ |
|||||||
|
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]) |
||||||
|
} |
Loading…
Reference in new issue