64 lines
947 B
Go
64 lines
947 B
Go
|
package witap
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"testing"
|
||
|
|
||
|
. "github.com/smartystreets/goconvey/convey"
|
||
|
)
|
||
|
|
||
|
var inputs = []string{
|
||
|
`
|
||
|
d S------+ b
|
||
|
|
|
||
|
|
|
||
|
c +--->a
|
||
|
`, `
|
||
|
S-----+---a->c
|
||
|
|
|
||
|
V
|
||
|
b
|
||
|
`, `
|
||
|
a S s
|
||
|
| |
|
||
|
V V
|
||
|
b c
|
||
|
`, `
|
||
|
d s<+S+--V
|
||
|
||| Q
|
||
|
-++
|
||
|
`, `
|
||
|
d s-+ +-S +--+
|
||
|
+-->b | | |
|
||
|
| | +--+ |
|
||
|
+--+ A<----+
|
||
|
`, `
|
||
|
S-----+
|
||
|
| +-^
|
||
|
+---+->B
|
||
|
+---^
|
||
|
`,
|
||
|
}
|
||
|
var outputs = []string{
|
||
|
"a", "b", "b", "Q", "A", "B",
|
||
|
}
|
||
|
|
||
|
func ExampleResolver_a() {
|
||
|
resolver := NewResolverFromString(inputs[0])
|
||
|
fmt.Println(resolver)
|
||
|
// fixme: add output
|
||
|
}
|
||
|
|
||
|
func TestResolver(t *testing.T) {
|
||
|
Convey("Testing resolver", t, func() {
|
||
|
for idx, input := range inputs {
|
||
|
Convey(fmt.Sprintf("input %d", idx+1), func() {
|
||
|
resolver := NewResolverFromString(input[1 : len(input)-1])
|
||
|
output, err := resolver.Run()
|
||
|
So(err, ShouldBeNil)
|
||
|
So(output, ShouldEqual, outputs[idx])
|
||
|
})
|
||
|
}
|
||
|
})
|
||
|
}
|