43 lines
833 B
Go
43 lines
833 B
Go
package mdb
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestBTreeIterator(t *testing.T) {
|
|
testWithDB(t, "min/max matches iterator", func(t *testing.T, db *DB) {
|
|
users := []User{
|
|
{ID: db.Users.c.NextID(), Email: "a@b.com", Name: "aaa"},
|
|
{ID: db.Users.c.NextID(), Email: "e@f.com", Name: "bbb"},
|
|
{ID: db.Users.c.NextID(), Email: "c@d.com", Name: "ccc"},
|
|
}
|
|
for _, u := range users {
|
|
if _, err := db.Users.c.Insert(u); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
it := db.Users.nameBTree.Ascend()
|
|
if !it.Next() {
|
|
t.Fatal("No next")
|
|
}
|
|
u := it.Value()
|
|
if !reflect.DeepEqual(u, users[0]) {
|
|
t.Fatal(u, users[0])
|
|
}
|
|
it.Close()
|
|
|
|
it = db.Users.nameBTree.Descend()
|
|
if !it.Next() {
|
|
t.Fatal("No next")
|
|
}
|
|
u = it.Value()
|
|
if !reflect.DeepEqual(u, users[2]) {
|
|
t.Fatal(u, users[2])
|
|
}
|
|
it.Close()
|
|
|
|
})
|
|
}
|