diff options
-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') + |