From 25fea2fd9f78434299036fe3a23c65dc9613f0bb Mon Sep 17 00:00:00 2001 From: Ben Johnson Date: Fri, 2 May 2014 13:59:23 -0600 Subject: Refactor split/spill. --- node_test.go | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'node_test.go') 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) } -- cgit v1.2.3