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);
        }
Exemple #3
0
        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 });
        }