bptree does not work well for auto-increasing keys

This commit is contained in:
Chris Lu
2021-08-22 18:19:26 -07:00
parent 51c8f2518f
commit df1d6133a8
6 changed files with 193 additions and 28 deletions

View File

@@ -0,0 +1,34 @@
package bptree
import (
"fmt"
"testing"
)
func TestAddRemove(t *testing.T) {
tree := NewBpTree(32)
PersistFn = func(node *BpNode) error {
println("saving", node.protoNodeId)
return nil
}
DestroyFn = func(node *BpNode) error {
println("delete", node.protoNodeId)
return nil
}
for i:=0;i<1024;i++{
println("++++++++++", i)
tree.Add(String(fmt.Sprintf("%02d", i)), String(fmt.Sprintf("%02d", i)))
printTree(tree.root, "")
}
}
func printTree(node *BpNode, prefix string) {
fmt.Printf("%sNode %d\n", prefix, node.protoNodeId)
prefix += " "
for i:=0;i<len(node.keys);i++{
fmt.Printf("%skey %s\n", prefix, node.keys[i])
if i < len(node.pointers) && node.pointers[i] != nil {
printTree(node.pointers[i], prefix+" ")
}
}
}