def test_add_transactions(self): t = Tree() trans1 = Transaction(0, 1, 2) self.assertTrue(t.add_transaction(trans1)) self.assertEqual(t.depth, 0) trans2 = Transaction(1, 2, 3) self.assertTrue(t.add_transaction(trans2)) self.assertEqual(t.depth, 1) trans3 = Transaction(2, 3, 4) self.assertTrue(t.add_transaction(trans3)) self.assertEqual(t.depth, 2) trans4 = Transaction(3, 4, 5) self.assertTrue(t.add_transaction(trans4)) self.assertEqual(t.depth, 2) self.assertEqual(len(list(Tree.walk(t.root))), 7) expected_remaining_transactions_before_failure = 2**Tree.MAX_DEPTH - 4 for i in range(expected_remaining_transactions_before_failure): tx = Transaction(0, 0, 1) t.add_transaction(tx) # Cannot add a fifth transaction, since the MAX_DEPTH equals to 2 trans5 = Transaction(4, 5, 6) self.assertFalse(t.add_transaction(trans5)) self.assertEqual(t.depth, Tree.MAX_DEPTH)
def test_create_tree(self): t = Tree() self.assertEqual(t.depth, 0) self.assertEqual(len(list(Tree.walk(t.root))), 1)