2021-11-20 19:44:57 -10:00
|
|
|
package test
|
|
|
|
|
|
|
|
|
|
import "bytes"
|
|
|
|
|
import "testing"
|
|
|
|
|
|
|
|
|
|
import "github.com/firestuff/subcoding/asm"
|
|
|
|
|
import "github.com/firestuff/subcoding/grow"
|
|
|
|
|
|
|
|
|
|
func TestGrow(t *testing.T) {
|
|
|
|
|
r := bytes.NewReader([]byte(`
|
|
|
|
|
global_memory_size: 1
|
|
|
|
|
function_memory_size: 1
|
|
|
|
|
instruction_limit: 2
|
|
|
|
|
samples:
|
2021-11-20 20:30:16 -10:00
|
|
|
- in: [0]
|
|
|
|
|
out: [0]
|
|
|
|
|
|
|
|
|
|
- in: [1]
|
|
|
|
|
out: [5]
|
|
|
|
|
|
|
|
|
|
- in: [2]
|
|
|
|
|
out: [10]
|
|
|
|
|
|
|
|
|
|
- in: [100]
|
|
|
|
|
out: [500]
|
2021-11-20 19:44:57 -10:00
|
|
|
`))
|
|
|
|
|
|
|
|
|
|
def, err := grow.NewDefinition(r)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
|
2021-11-20 20:30:16 -10:00
|
|
|
prog, err := def.Grow(nil)
|
2021-11-20 19:44:57 -10:00
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
src, err := asm.Disassemble(prog)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
expected := `global_memory_size: 1
|
|
|
|
|
function_memory_size: 1
|
|
|
|
|
instruction_limit: 2
|
|
|
|
|
functions:
|
|
|
|
|
- - [mul, g0, 5]
|
|
|
|
|
`
|
|
|
|
|
if src != expected {
|
|
|
|
|
t.Fatalf("Expected:\n%sActual:\n%s", expected, src)
|
|
|
|
|
}
|
|
|
|
|
}
|