Update intcode processor tests
This commit is contained in:
parent
bbfcc6022d
commit
589790fcda
@ -32,6 +32,10 @@ func NewProgram(prog []int) *Program {
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *Program) GetCode() []int {
|
||||
return p.code
|
||||
}
|
||||
|
||||
func (p *Program) State() int {
|
||||
return p.state
|
||||
}
|
||||
@ -43,11 +47,8 @@ func (p *Program) Error() error {
|
||||
func (p *Program) Run() int {
|
||||
for {
|
||||
p.state = p.Step()
|
||||
switch p.state {
|
||||
case RET_ERR:
|
||||
return RET_ERR
|
||||
case RET_DONE:
|
||||
return RET_DONE
|
||||
if p.state != RET_OK {
|
||||
return p.state
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,14 +1,34 @@
|
||||
package intcodeprocessor
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestNewProgram(t *testing.T) {
|
||||
want := fmt.Sprintf("%v", []int{1})
|
||||
p := NewProgram([]int{1})
|
||||
if got := p.CodeString(); got != want {
|
||||
t.Errorf("Program.CodeString() = %q, want %q", got, want)
|
||||
func TestNewAddProgram(t *testing.T) {
|
||||
strt := []int{1, 0, 0, 0, 99}
|
||||
want := []int{2, 0, 0, 0, 99}
|
||||
p := NewProgram(strt)
|
||||
p.Run()
|
||||
if !intSliceEquals(p.GetCode(), want) {
|
||||
t.Errorf("Program.GetCode() = %q, want %q", p.GetCode(), want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewMultProgram(t *testing.T) {
|
||||
strt := []int{2, 3, 0, 3, 99}
|
||||
want := []int{2, 3, 0, 6, 99}
|
||||
p := NewProgram(strt)
|
||||
p.Run()
|
||||
if !intSliceEquals(p.GetCode(), want) {
|
||||
t.Errorf("Program.GetCode() = %q, want %q", p.GetCode(), want)
|
||||
}
|
||||
}
|
||||
|
||||
func intSliceEquals(s1, s2 []int) bool {
|
||||
for k := range s1 {
|
||||
if s1[k] != s2[k] {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user