protected static void ContainsEdge_EquatableEdges_ForbiddenParallelEdges_ImmutableVertices_Test(
            [NotNull] IMutableEdgeListGraph <int, EquatableEdge <int> > graph)
        {
            var edge1      = new EquatableEdge <int>(1, 2);
            var edge2      = new EquatableEdge <int>(1, 3);
            var edge3      = new EquatableEdge <int>(2, 1);
            var edge4      = new EquatableEdge <int>(2, 2);
            var otherEdge1 = new EquatableEdge <int>(1, 2);

            Assert.IsFalse(graph.ContainsEdge(edge1));
            Assert.IsFalse(graph.ContainsEdge(edge2));
            Assert.IsFalse(graph.ContainsEdge(edge3));
            Assert.IsFalse(graph.ContainsEdge(edge4));
            Assert.IsFalse(graph.ContainsEdge(otherEdge1));

            graph.AddEdge(edge1);
            Assert.IsTrue(graph.ContainsEdge(edge1));
            Assert.IsFalse(graph.ContainsEdge(edge2));
            Assert.IsFalse(graph.ContainsEdge(edge3));
            Assert.IsFalse(graph.ContainsEdge(edge4));
            Assert.IsTrue(graph.ContainsEdge(otherEdge1));

            graph.AddEdge(edge2);
            Assert.IsTrue(graph.ContainsEdge(edge1));
            Assert.IsTrue(graph.ContainsEdge(edge2));
            Assert.IsFalse(graph.ContainsEdge(edge3));
            Assert.IsFalse(graph.ContainsEdge(edge4));
            Assert.IsTrue(graph.ContainsEdge(otherEdge1));

            graph.AddEdge(edge3);
            Assert.IsTrue(graph.ContainsEdge(edge1));
            Assert.IsTrue(graph.ContainsEdge(edge2));
            Assert.IsTrue(graph.ContainsEdge(edge3));
            Assert.IsFalse(graph.ContainsEdge(edge4));
            Assert.IsTrue(graph.ContainsEdge(otherEdge1));

            graph.AddEdge(edge4);
            Assert.IsTrue(graph.ContainsEdge(edge1));
            Assert.IsTrue(graph.ContainsEdge(edge2));
            Assert.IsTrue(graph.ContainsEdge(edge3));
            Assert.IsTrue(graph.ContainsEdge(edge4));
            Assert.IsTrue(graph.ContainsEdge(otherEdge1));

            // Both vertices not in graph
            Assert.IsFalse(graph.ContainsEdge(new EquatableEdge <int>(10, 11)));
            // Source not in graph
            Assert.IsFalse(graph.ContainsEdge(new EquatableEdge <int>(10, 1)));
            // Target not in graph
            Assert.IsFalse(graph.ContainsEdge(new EquatableEdge <int>(1, 10)));
        }
示例#2
0
 protected static void AddEdge_Throws_EdgesOnly_Test(
     IMutableEdgeListGraph <int, Edge <int> > graph)
 {
     // ReSharper disable once AssignNullToNotNullAttribute
     Assert.Throws <ArgumentNullException>(() => graph.AddEdge(null));
     AssertNoEdge(graph);
 }
示例#3
0
 public static void AddEdgeRange <TVertex, TEdge>(this IMutableEdgeListGraph <TVertex, TEdge> graph, IEnumerable <TEdge> edges)
     where TEdge : IEdge <TVertex>
 {
     foreach (var edge in edges)
     {
         graph.AddEdge(edge);
     }
 }