From 70286969b0212060792bb805f7896ec597842dc2 Mon Sep 17 00:00:00 2001 From: danielsanchezq Date: Tue, 27 Jun 2023 09:39:02 +0200 Subject: [PATCH] Add basic tests --- carnot/test_tree_overlay.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 carnot/test_tree_overlay.py diff --git a/carnot/test_tree_overlay.py b/carnot/test_tree_overlay.py new file mode 100644 index 0000000..7ee3896 --- /dev/null +++ b/carnot/test_tree_overlay.py @@ -0,0 +1,32 @@ +from unittest import TestCase + +from tree_overlay import CarnotOverlay + + +class TestTreeOverlay(TestCase): + def setUp(self) -> None: + self.nodes = [int.to_bytes(i, length=32, byteorder="little") for i in range(10)] + self.tree = CarnotOverlay(self.nodes, self.nodes[0], b"0"*32, 3) + + def test_leader(self): + self.assertEqual(self.tree.leader(), self.nodes[0]) + + def test_next_leader_is_advance_current_leader(self): + leader = self.tree.next_leader() + self.tree = self.tree.advance(b"1"*32) + self.assertEqual(leader, self.tree.leader()) + + def test_root_committee(self): + self.assertEqual(self.tree.root_committee(), set(self.nodes[:3])) + + def test_leaf_committees(self): + self.assertEqual(self.tree.leaf_committees(), {frozenset(self.nodes[3:6]), frozenset(self.nodes[6:])}) + + def test_super_majority_threshold_for_leaf(self): + self.assertEqual(self.tree.super_majority_threshold(self.nodes[-1]), 0) + + def test_super_majority_threshold_for_root_member(self): + self.assertEqual(self.tree.super_majority_threshold(self.nodes[0]), 3) + + def test_leader_super_majority_threshold(self): + self.assertEqual(self.tree.leader_super_majority_threshold(self.nodes[-1]), 3)