diff options
author | Lars Wirzenius <liw@liw.fi> | 2010-02-16 22:08:35 +1300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2010-02-16 22:08:35 +1300 |
commit | f9c6680941422aaa53439c08818ebe5361c18ac2 (patch) | |
tree | bef8a3b2dab6e24f479504c62cfb2aeca09d74b5 | |
download | larch-f9c6680941422aaa53439c08818ebe5361c18ac2.tar.gz |
Write rudimentary first outline of btree node implementation,
with tests.
-rw-r--r-- | Makefile | 8 | ||||
-rw-r--r-- | btree.py | 36 | ||||
-rw-r--r-- | btree_tests.py | 22 |
3 files changed, 66 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1f5e024 --- /dev/null +++ b/Makefile @@ -0,0 +1,8 @@ +all: + +check: all + python -m CoverageTestRunner + rm .coverage + +clean: + rm -f .coverage *.pyc *.pyo diff --git a/btree.py b/btree.py new file mode 100644 index 0000000..056f27b --- /dev/null +++ b/btree.py @@ -0,0 +1,36 @@ +class Node(object): + + '''A node in a Tree.''' + + def __init__(self, nodeid, pairs): + pass + + def __len__(self): + '''Return number of keys in this node.''' + return 0 + + def size(self): + '''Return number of bytes required to store this node.''' + return 0 + + def keys(self): + '''Return all keys in this node.''' + return [] + + def lookup(self, key): + '''Return value corresponding to a given key in this node. + + If key is not in this node, raise KeyError. + + ''' + + raise KeyError(key) + + +#class Tree(object): +# '''A B-tree variant.''' +# def __init__(self, keysize, nodesize): +# def insert(self, key, value): +# def lookup(self, key): +# def remove(self, key): + diff --git a/btree_tests.py b/btree_tests.py new file mode 100644 index 0000000..17c6d6c --- /dev/null +++ b/btree_tests.py @@ -0,0 +1,22 @@ +import unittest + +import btree + + +class NodeTests(unittest.TestCase): + + def setUp(self): + self.empty = btree.Node(0, []) + + def test_has_zero_length(self): + self.assertEqual(len(self.empty), 0) + + def test_has_zero_size(self): + self.assertEqual(self.empty.size(), 0) + + def test_has_no_keys(self): + self.assertEqual(self.empty.keys(), []) + + def test_lookup_raises_error_for_nonexistent_key(self): + self.assertRaises(KeyError, self.empty.lookup, '0') + |