def test_offer_node_remove_node_get_node_sixteenNodes(self): # Note: It is important to choose # a proper clustering of the node IDs for the # routing table to accept the nodes rt = TreeRoutingTable(node_id=1) # 2**160 / 2**156 == 2**4 == 16 # Insert nodes (offer_node) for node_id in range(0, 2**160, 2**156): node_accepted = rt.offer_node(generate_node(node_id + 1)) self.assertTrue(node_accepted) self.assertEquals(16, len(nodes_in_rt(rt))) for node in nodes_in_rt(rt): # Retrieve nodes (get_node) n = rt.get_node(node.node_id) self.assertEquals(node, n) # Remove nodes (remove_node) node_removed = rt.remove_node(node) self.assertTrue(node_removed) self.assertEquals(0, len(nodes_in_rt(rt)))