def test_c_0_error_on_not_clique_input(self, dim):
        """Tests if function raises a ``ValueError`` when input is not a clique"""
        A = np.ones((dim, dim)) - np.eye(dim)
        A = nx.Graph(A)
        A.remove_edge(0, 1)
        S = [0, 1]

        with pytest.raises(ValueError, match="Input subgraph is not a clique"):
            clique.c_0(S, A)
    def test_c_0_comp_graph(self, dim):
        """ Tests that the set :math:`c_0` for a node in a clique consists of all remaining nodes"""
        A = nx.complete_graph(dim)
        S = [dim - 1]
        K = clique.c_0(S, A)

        assert K == list(range(dim - 1))
    def test_correct_c_0(self, dim):
        """Tests that :math:`c_0` is generated correctly for the lollipop graph"""
        g = nx.lollipop_graph(dim, 1)
        s = set(range(int(dim / 2)))
        res = set(clique.c_0(s, g))

        assert res not in s
        assert {dim + 1} not in res
        assert res | s == set(range(dim))