def test_addCycleSuccessors(self):
     """
     Generates a list of nodes, appends it to a test node and checks, if
     add_successor was called for every node.
     :return:
     """
     test_node = CycleNode(float(Fraction(0)))
     test_node.add_cycle_successor = MagicMock()
     node_list = [(Node(), float(Fraction(0))) for _ in range(10)]
     test_node.add_cycle_successors(node_list)
     for elem in node_list:
         self.assertIn((elem,), test_node.add_cycle_successor.call_args_list)
    def test_addCycleSuccessorsOfWhichOneAlreadyExists(self):
        """
        Generates a list of nodes and duplicates some of them.
        Then checks, if appending the list to a node raises an Exception.
        :return:
        """
        test_node = CycleNode(float(Fraction(0)))
        duplicate_node = CycleNode(float(Fraction(0)))
        node_list = [(duplicate_node, float(Fraction(0)))]
        node_list.extend(
            [(CycleNode(float(Fraction(0))), float(Fraction(0))) for _ in range(10)]
        )
        node_list.append((duplicate_node, float(Fraction(0))))

        with self.assertRaises(Exception):
            test_node.add_cycle_successors(node_list)