aboutsummaryrefslogtreecommitdiff
path: root/node_test.go
diff options
context:
space:
mode:
authorBen Johnson <benbjohnson@yahoo.com>2014-05-02 13:59:23 -0600
committerBen Johnson <benbjohnson@yahoo.com>2014-05-03 16:21:28 -0600
commit25fea2fd9f78434299036fe3a23c65dc9613f0bb (patch)
tree2b153687714f327438ef7a835097c7906561eea5 /node_test.go
parentMerge pull request #147 from benbjohnson/stats (diff)
downloaddedo-25fea2fd9f78434299036fe3a23c65dc9613f0bb.tar.gz
dedo-25fea2fd9f78434299036fe3a23c65dc9613f0bb.tar.xz
Refactor split/spill.
Diffstat (limited to 'node_test.go')
-rw-r--r--node_test.go25
1 files changed, 12 insertions, 13 deletions
diff --git a/node_test.go b/node_test.go
index e58a544..f639376 100644
--- a/node_test.go
+++ b/node_test.go
@@ -85,7 +85,7 @@ func TestNode_write_LeafPage(t *testing.T) {
// Ensure that a node can split into appropriate subgroups.
func TestNode_split(t *testing.T) {
// Create a node.
- n := &node{inodes: make(inodes, 0)}
+ n := &node{inodes: make(inodes, 0), bucket: &Bucket{tx: &Tx{}}}
n.put([]byte("00000001"), []byte("00000001"), []byte("0123456701234567"), 0, 0)
n.put([]byte("00000002"), []byte("00000002"), []byte("0123456701234567"), 0, 0)
n.put([]byte("00000003"), []byte("00000003"), []byte("0123456701234567"), 0, 0)
@@ -93,30 +93,30 @@ func TestNode_split(t *testing.T) {
n.put([]byte("00000005"), []byte("00000005"), []byte("0123456701234567"), 0, 0)
// Split between 2 & 3.
- nodes := n.split(100)
+ n.split(100)
- assert.Equal(t, len(nodes), 2)
- assert.Equal(t, len(nodes[0].inodes), 2)
- assert.Equal(t, len(nodes[1].inodes), 3)
+ var parent = n.parent
+ assert.Equal(t, len(parent.children), 2)
+ assert.Equal(t, len(parent.children[0].inodes), 2)
+ assert.Equal(t, len(parent.children[1].inodes), 3)
}
// Ensure that a page with the minimum number of inodes just returns a single node.
func TestNode_split_MinKeys(t *testing.T) {
// Create a node.
- n := &node{inodes: make(inodes, 0)}
+ n := &node{inodes: make(inodes, 0), bucket: &Bucket{tx: &Tx{}}}
n.put([]byte("00000001"), []byte("00000001"), []byte("0123456701234567"), 0, 0)
n.put([]byte("00000002"), []byte("00000002"), []byte("0123456701234567"), 0, 0)
// Split.
- nodes := n.split(20)
- assert.Equal(t, len(nodes), 1)
- assert.Equal(t, len(nodes[0].inodes), 2)
+ n.split(20)
+ assert.Nil(t, n.parent)
}
// Ensure that a node that has keys that all fit on a page just returns one leaf.
func TestNode_split_SinglePage(t *testing.T) {
// Create a node.
- n := &node{inodes: make(inodes, 0)}
+ n := &node{inodes: make(inodes, 0), bucket: &Bucket{tx: &Tx{}}}
n.put([]byte("00000001"), []byte("00000001"), []byte("0123456701234567"), 0, 0)
n.put([]byte("00000002"), []byte("00000002"), []byte("0123456701234567"), 0, 0)
n.put([]byte("00000003"), []byte("00000003"), []byte("0123456701234567"), 0, 0)
@@ -124,7 +124,6 @@ func TestNode_split_SinglePage(t *testing.T) {
n.put([]byte("00000005"), []byte("00000005"), []byte("0123456701234567"), 0, 0)
// Split.
- nodes := n.split(4096)
- assert.Equal(t, len(nodes), 1)
- assert.Equal(t, len(nodes[0].inodes), 5)
+ n.split(4096)
+ assert.Nil(t, n.parent)
}