bool isProperClustering(const Graph &G, const Partition &zeta) {
	// test whether each node has been assigned to a cluster
	bool success = true;
	G.forNodes([&](node v) {
		bool contained = zeta.contains(v);
		if (!contained) {
			ERROR("Clustering does not contain node " , v);
			success = false;
		}
	});
	return success;
}