You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
751 B

  1. package bptree
  2. import (
  3. "fmt"
  4. "testing"
  5. )
  6. func TestAddRemove(t *testing.T) {
  7. tree := NewBpTree(5)
  8. PersistFn = func(node *BpNode) error {
  9. println("saving", node.protoNodeId)
  10. return nil
  11. }
  12. DestroyFn = func(node *BpNode) error {
  13. println("delete", node.protoNodeId)
  14. return nil
  15. }
  16. for i:=0;i<1024;i++{
  17. println("++++++++++", i)
  18. tree.Add(String(fmt.Sprintf("%02d", i)), String(fmt.Sprintf("%02d", i)))
  19. printTree(tree.root, "")
  20. }
  21. }
  22. func printTree(node *BpNode, prefix string) {
  23. fmt.Printf("%sNode %d\n", prefix, node.protoNodeId)
  24. prefix += " "
  25. for i:=0;i<len(node.keys);i++{
  26. fmt.Printf("%skey %v\n", prefix, node.keys[i])
  27. if i < len(node.pointers) && node.pointers[i] != nil {
  28. printTree(node.pointers[i], prefix+" ")
  29. }
  30. }
  31. }