2021-11-20 19:38:31 -10:00
|
|
|
package grow
|
2021-11-20 19:17:35 -10:00
|
|
|
|
|
|
|
|
import "github.com/firestuff/subcoding/vm"
|
|
|
|
|
|
|
|
|
|
type Sample struct {
|
2021-11-20 20:14:35 -10:00
|
|
|
In []uint64 `yaml:"in,flow"`
|
|
|
|
|
Out []uint64 `yaml:"out,flow"`
|
2021-11-20 19:17:35 -10:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (s *Sample) SetInputs(state *vm.State) {
|
2021-11-20 20:14:35 -10:00
|
|
|
for i, val := range s.In {
|
|
|
|
|
state.GlobalMemory().WriteUnsigned(uint64(i), val)
|
2021-11-20 19:17:35 -10:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-11-20 20:30:16 -10:00
|
|
|
func (s *Sample) matchingOuts(state *vm.State) uint64 {
|
|
|
|
|
ret := uint64(0)
|
|
|
|
|
|
2021-11-20 20:14:35 -10:00
|
|
|
for i, val := range s.Out {
|
2021-11-20 20:30:16 -10:00
|
|
|
if state.GlobalMemory().MustReadUnsigned(uint64(i)) == val {
|
|
|
|
|
ret++
|
2021-11-20 19:17:35 -10:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-11-20 20:30:16 -10:00
|
|
|
return ret
|
2021-11-20 19:17:35 -10:00
|
|
|
}
|