This repository has been archived on 2022-07-30. You can view files and clone it, but cannot push or open issues/pull-requests.
mdb/btreeindex_ex_test.go

52 lines
858 B
Go

package mdb
import (
"fmt"
"reflect"
)
func (bt *BTreeIndex[T]) Equals(rhs *BTreeIndex[T]) error {
if bt.Len() != rhs.Len() {
return fmt.Errorf("Expected %d items, but found %d.", bt.Len(), rhs.Len())
}
it1 := bt.Ascend()
defer it1.Close()
it2 := rhs.Ascend()
defer it2.Close()
for it1.Next() {
it2.Next()
v1 := it1.Value()
v2 := it2.Value()
if !reflect.DeepEqual(v1, v2) {
return fmt.Errorf("Value mismatch: %v != %v", v1, v2)
}
}
return nil
}
func (bt *BTreeIndex[T]) EqualsList(data []*T) error {
if bt.Len() != len(data) {
return fmt.Errorf("Expected %d items, but found %d.", bt.Len(), len(data))
}
it1 := bt.Ascend()
defer it1.Close()
for _, v1 := range data {
it1.Next()
v2 := it1.Value()
if !reflect.DeepEqual(v1, v2) {
return fmt.Errorf("Value mismatch: %v != %v", v1, v2)
}
}
return nil
}