class BTreeTest(unittest.TestCase):

    def setUp(self):
        self.btree = BTree()
        self.btree.add(10)
        self.btree.add(20)
        self.btree.add(40)
        self.btree.add(50)

    def test_contains(self):
        assert 10 in self.btree
        assert 20 in self.btree
        assert 40 in self.btree
        assert 50 in self.btree

    def test_does_not_contain(self):
        assert 100 not in self.btree
        assert 23423 not in self.btree
示例#2
0
if order.isdigit():
    order = int(order)
else:
    print("ERROR: order is %s, it must be a int" % order)
    sys.exit(1)

btree = BTree(order)

with open(filename, 'r') as fh:
    line_number = 0

    log.info("reading file: start")
    for line in fh:
        (key, value) = line.strip().split(':')
        btree.add(key, value)
        line_number += 1

        if line_number % 100000 == 0:
            log.info("Added %d" % line_number)

    log.info("reading file: end")

    log.info("saving to disk: start")
    btree.disk_save(btree_filename)
    log.info("saving to disk: end")

    (node_count, key_count, max_depth) = btree.stats()

    log.info(
        "tree has %d nodes, %d keys, levels %s" %
示例#3
0
from btree import BNode, BTree

bn = BNode(0)
assert (hasattr(bn, "content"))
assert (hasattr(bn, "left"))
assert (hasattr(bn, "right"))
assert (hasattr(bn, "__str__"))

tree = BTree()
assert (hasattr(tree, "root"))
assert (hasattr(tree, "__str__"))
assert (hasattr(tree, "add"))
assert (hasattr(tree, "find"))

assert (tree.__str__() == "<<E>>")
tree.add(20)
assert (tree.__str__() == "20")
tree.add(10)
assert (tree.__str__() == "20L10")
tree.add(25)
assert (tree.__str__() == "20L10R25")
tree.add(2)
assert (tree.__str__() == "20L10L2R25")
tree.add(15)
assert (tree.__str__() == "20L10L2R15R25")
tree.add(30)
assert (tree.__str__() == "20L10L2R15R25R30")
tree.add(23)
assert (tree.__str__() == "20L10L2R15R25L23R30")

n = tree.find(-9)