protected static void ContainsEdge_SourceTarget_Test( [NotNull] IIncidenceGraph <int, Edge <int> > graph, [NotNull, InstantHandle] Action <Edge <int> > addVerticesAndEdge) { var edge1 = new Edge <int>(1, 2); var edge2 = new Edge <int>(1, 3); var edge3 = new Edge <int>(2, 2); Assert.IsFalse(graph.ContainsEdge(1, 2)); Assert.IsFalse(graph.ContainsEdge(2, 1)); addVerticesAndEdge(edge1); Assert.IsTrue(graph.ContainsEdge(1, 2)); Assert.IsFalse(graph.ContainsEdge(2, 1)); addVerticesAndEdge(edge2); Assert.IsTrue(graph.ContainsEdge(1, 3)); Assert.IsFalse(graph.ContainsEdge(3, 1)); addVerticesAndEdge(edge3); Assert.IsTrue(graph.ContainsEdge(2, 2)); // Vertices is not present in the graph Assert.IsFalse(graph.ContainsEdge(0, 4)); Assert.IsFalse(graph.ContainsEdge(1, 4)); Assert.IsFalse(graph.ContainsEdge(4, 1)); }
protected static void ContainsEdge_SourceTarget_ImmutableGraph_ReversedTest( [NotNull] IMutableVertexAndEdgeSet <int, Edge <int> > wrappedGraph, [NotNull, InstantHandle] Func <IIncidenceGraph <int, SReversedEdge <int, Edge <int> > > > createGraph) { IIncidenceGraph <int, SReversedEdge <int, Edge <int> > > graph = createGraph(); var edge1 = new Edge <int>(1, 2); var edge2 = new Edge <int>(1, 3); var edge3 = new Edge <int>(2, 2); Assert.IsFalse(graph.ContainsEdge(1, 2)); Assert.IsFalse(graph.ContainsEdge(2, 1)); wrappedGraph.AddVerticesAndEdge(edge1); graph = createGraph(); Assert.IsFalse(graph.ContainsEdge(1, 2)); Assert.IsTrue(graph.ContainsEdge(2, 1)); wrappedGraph.AddVerticesAndEdge(edge2); graph = createGraph(); Assert.IsFalse(graph.ContainsEdge(1, 3)); Assert.IsTrue(graph.ContainsEdge(3, 1)); wrappedGraph.AddVerticesAndEdge(edge3); graph = createGraph(); Assert.IsTrue(graph.ContainsEdge(2, 2)); // Vertices is not present in the graph Assert.IsFalse(graph.ContainsEdge(0, 4)); Assert.IsFalse(graph.ContainsEdge(1, 4)); Assert.IsFalse(graph.ContainsEdge(4, 1)); }
protected static void ContainsEdge_SourceTarget_ImmutableGraph_Test <TEdge>( IMutableVertexAndEdgeSet <int, Edge <int> > wrappedGraph, Func <IIncidenceGraph <int, TEdge> > createGraph) where TEdge : IEdge <int> { IIncidenceGraph <int, TEdge> graph = createGraph(); var edge1 = new Edge <int>(1, 2); var edge2 = new Edge <int>(1, 3); var edge3 = new Edge <int>(2, 2); Assert.IsFalse(graph.ContainsEdge(1, 2)); Assert.IsFalse(graph.ContainsEdge(2, 1)); wrappedGraph.AddVerticesAndEdge(edge1); graph = createGraph(); Assert.IsTrue(graph.ContainsEdge(1, 2)); Assert.IsFalse(graph.ContainsEdge(2, 1)); wrappedGraph.AddVerticesAndEdge(edge2); graph = createGraph(); Assert.IsTrue(graph.ContainsEdge(1, 3)); Assert.IsFalse(graph.ContainsEdge(3, 1)); wrappedGraph.AddVerticesAndEdge(edge3); graph = createGraph(); Assert.IsTrue(graph.ContainsEdge(2, 2)); // Vertices is not present in the graph Assert.IsFalse(graph.ContainsEdge(0, 4)); Assert.IsFalse(graph.ContainsEdge(1, 4)); Assert.IsFalse(graph.ContainsEdge(4, 1)); }