protected static void RemoveVertexIf_Throws_Clusters_Test <TVertex, TEdge>( [NotNull] ClusteredAdjacencyGraph <TVertex, TEdge> graph) where TVertex : class where TEdge : IEdge <TVertex> { // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws <ArgumentNullException>(() => graph.RemoveVertexIf(null)); }
protected static void RemoveVertexIf_Clusters_Test( [NotNull] ClusteredAdjacencyGraph <int, Edge <int> > graph) { var edge12 = new Edge <int>(1, 2); var edge13 = new Edge <int>(1, 3); var edge14 = new Edge <int>(1, 4); var edge24 = new Edge <int>(2, 4); var edge31 = new Edge <int>(3, 1); var edge33 = new Edge <int>(3, 3); graph.AddVerticesAndEdgeRange(new[] { edge12, edge13, edge14, edge24, edge31, edge33 }); Assert.AreEqual(0, graph.RemoveVertexIf(vertex => vertex > 10)); Assert.AreEqual(2, graph.RemoveVertexIf(vertex => vertex > 2)); AssertHasVertices(graph, new[] { 1, 2 }); AssertHasEdges(graph, new[] { edge12 }); Assert.AreEqual(2, graph.RemoveVertexIf(vertex => true)); AssertEmptyGraph(graph); }
protected static void RemoveVertexIf_Clusters_Test2( [NotNull] ClusteredAdjacencyGraph <int, Edge <int> > graph) { var edge11 = new Edge <int>(1, 1); var edge13 = new Edge <int>(1, 3); var edge24 = new Edge <int>(2, 4); var edge31 = new Edge <int>(3, 1); var edge32 = new Edge <int>(3, 2); var edge34 = new Edge <int>(3, 4); graph.AddVerticesAndEdgeRange(new[] { edge11, edge13, edge24, edge31, edge32, edge34 }); Assert.AreEqual(2, graph.RemoveVertexIf(vertex => vertex == 1 || vertex == 3)); AssertHasVertices(graph, new[] { 2, 4 }); AssertHasEdges(graph, new[] { edge24 }); }