def test_dimentionality(self):
        # checks |MCB|=|E|-|V|+|NC|
        ntrial = 10
        for _ in range(ntrial):
            rg = nx.erdos_renyi_graph(10, 0.3)
            nnodes = rg.number_of_nodes()
            nedges = rg.number_of_edges()
            ncomp = nx.number_connected_components(rg)

            dim_mcb = len(minimum_cycle_basis(rg))
            assert dim_mcb == nedges - nnodes + ncomp
 def test_tree_graph(self):
     tg = nx.balanced_tree(3, 3)
     assert_false(minimum_cycle_basis(tg))
 def test_complete_graph(self):
     cg = nx.complete_graph(5)
     mcb = minimum_cycle_basis(cg)
     all([len(cycle) == 3 for cycle in mcb])
 def test_weighted_diamond(self):
     mcb = minimum_cycle_basis(self.diamond_graph, weight="weight")
     self.basis_equal(mcb, [[1, 2, 4], [1, 2, 3, 4]])