Esempio n. 1
0
    def test_locate_transaction(self):
        t = Tree()
        trans1 = Transaction(0, 1, 2)
        self.assertTrue(t.add_transaction(trans1))

        trans2 = Transaction(1, 2, 3)
        self.assertTrue(t.add_transaction(trans2))
        self.assertEqual(t.depth, 1)

        self.assertTrue(t.is_present(trans1))

        trans3 = Transaction(0, 1, 2)
        self.assertFalse(t.is_present(trans3))
Esempio n. 2
0
    def test_tree_serialize(self):
        t = Tree()
        u = Tree.from_json(t.to_json())

        self.assertEqual(t.root.get_hash(), u.root.get_hash())

        trans1 = Transaction(0, 1, 2)
        self.assertTrue(t.add_transaction(trans1))
        trans2 = Transaction(1, 2, 3)
        self.assertTrue(t.add_transaction(trans2))
        trans3 = Transaction(2, 3, 4)
        self.assertTrue(t.add_transaction(trans3))

        u = Tree.from_json(t.to_json())
        self.assertEqual(t.root._child_1.get_hash(),
                         u.root._child_1.get_hash())
        self.assertEqual(t.root.get_hash(), u.root.get_hash())
Esempio n. 3
0
    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)