1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package help
- import "testing"
- import "fmt"
- type foo struct {
- f1 int
- f2 bool
- f3 string
- }
- func (f foo) Iterate() Iterator {
- i := 0
- return func() (item interface{}, ok bool) {
- switch i {
- case 0:
- item = f.f1
- ok = true
- case 1:
- item = f.f2
- ok = true
- case 2:
- item = f.f3
- ok = true
- default:
- ok = false
- }
- i++
- return
- }
- }
- func (f foo) CompareTo(c Comparable) int {
- a, b := f.f1, c.(foo).f1
- if a < b {
- return -1
- } else if a > b {
- return 1
- }
- return 0
- }
- func toSlice(q Query) (result []interface{}) {
- next := q.Iterate()
- for item, ok := next(); ok; item, ok = next() {
- result = append(result, item)
- }
- return
- }
- func validateQuery(q Query, output []interface{}) bool {
- next := q.Iterate()
- for _, oitem := range output {
- qitem, _ := next()
- if oitem != qitem {
- return false
- }
- }
- _, ok := next()
- _, ok2 := next()
- return !(ok || ok2)
- }
- func mustPanicWithError(t *testing.T, expectedErr string, f func()) {
- defer func() {
- r := recover()
- err := fmt.Sprintf("%s", r)
- if err != expectedErr {
- t.Fatalf("got=[%v] expected=[%v]", err, expectedErr)
- }
- }()
- f()
- }
|