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))); }
protected static void AddEdge_Throws_EdgesOnly_Test( IMutableEdgeListGraph <int, Edge <int> > graph) { // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws <ArgumentNullException>(() => graph.AddEdge(null)); AssertNoEdge(graph); }
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); } }