@Override public N apply(E edge) { return network.incidentNodes(edge).target(); } };
@Override public N apply(E edge) { return network.incidentNodes(edge).target(); } };
@Override public N apply(E edge) { return network.incidentNodes(edge).target(); } };
@Override public boolean contains(@Nullable Object obj) { if (!(obj instanceof EndpointPair)) { return false; } EndpointPair<?> endpointPair = (EndpointPair<?>) obj; if (!endpointPair.isOrdered()) { return false; } Object source = endpointPair.source(); Object target = endpointPair.target(); return (node.equals(source) && graph.successors(node).contains(target)) || (node.equals(target) && graph.predecessors(node).contains(source)); } }
static <N> EndpointPair<N> transpose(EndpointPair<N> endpoints) { if (endpoints.isOrdered()) { return EndpointPair.ordered(endpoints.target(), endpoints.source()); } return endpoints; }
@Override public boolean equals(@Nullable Object obj) { if (obj == this) { return true; } if (!(obj instanceof EndpointPair)) { return false; } EndpointPair<?> other = (EndpointPair<?>) obj; if (isOrdered() != other.isOrdered()) { return false; } return source().equals(other.source()) && target().equals(other.target()); }
@Override public boolean contains(@NullableDecl Object obj) { if (!(obj instanceof EndpointPair)) { return false; } EndpointPair<?> endpointPair = (EndpointPair<?>) obj; if (!endpointPair.isOrdered()) { return false; } Object source = endpointPair.source(); Object target = endpointPair.target(); return (node.equals(source) && graph.successors(node).contains(target)) || (node.equals(target) && graph.predecessors(node).contains(source)); } }
@Override public boolean contains(@NullableDecl Object obj) { if (!(obj instanceof EndpointPair)) { return false; } EndpointPair<?> endpointPair = (EndpointPair<?>) obj; if (!endpointPair.isOrdered()) { return false; } Object source = endpointPair.source(); Object target = endpointPair.target(); return (node.equals(source) && graph.successors(node).contains(target)) || (node.equals(target) && graph.predecessors(node).contains(source)); } }
@Override public boolean equals(@NullableDecl Object obj) { if (obj == this) { return true; } if (!(obj instanceof EndpointPair)) { return false; } EndpointPair<?> other = (EndpointPair<?>) obj; if (isOrdered() != other.isOrdered()) { return false; } return source().equals(other.source()) && target().equals(other.target()); }
@Test public void target_oneEdge() { addEdge(N1, N2, E12); assertThat(network.incidentNodes(E12).target()).isEqualTo(N2); }
@Override public boolean equals(@NullableDecl Object obj) { if (obj == this) { return true; } if (!(obj instanceof EndpointPair)) { return false; } EndpointPair<?> other = (EndpointPair<?>) obj; if (isOrdered() != other.isOrdered()) { return false; } return source().equals(other.source()) && target().equals(other.target()); }
@Test public void target_selfLoop() { addEdge(N1, N1, E11); assertThat(network.incidentNodes(E11).target()).isEqualTo(N1); }
@Override @Test public void incidentNodes_oneEdge() { addEdge(N1, N2, E12); assertThat(network.incidentNodes(E12).source()).isEqualTo(N1); assertThat(network.incidentNodes(E12).target()).isEqualTo(N2); }
@Test public void incidentNodes_selfLoop() { addEdge(N1, N1, E11); assertThat(network.incidentNodes(E11).source()).isEqualTo(N1); assertThat(network.incidentNodes(E11).target()).isEqualTo(N1); }
@Test public void target_edgeNotInGraph() { try { network.incidentNodes(EDGE_NOT_IN_GRAPH).target(); fail(ERROR_EDGE_NOT_IN_GRAPH); } catch (IllegalArgumentException e) { assertEdgeNotInGraphErrorMessage(e); } }
@Test public void testOrderedEndpointPair() { EndpointPair<String> ordered = EndpointPair.ordered("source", "target"); assertThat(ordered.isOrdered()).isTrue(); assertThat(ordered).containsExactly("source", "target").inOrder(); assertThat(ordered.source()).isEqualTo("source"); assertThat(ordered.target()).isEqualTo("target"); assertThat(ordered.nodeU()).isEqualTo("source"); assertThat(ordered.nodeV()).isEqualTo("target"); assertThat(ordered.adjacentNode("source")).isEqualTo("target"); assertThat(ordered.adjacentNode("target")).isEqualTo("source"); assertThat(ordered.toString()).isEqualTo("<source -> target>"); }
@After public void validateSourceAndTarget() { for (Integer node : network.nodes()) { for (String inEdge : network.inEdges(node)) { EndpointPair<Integer> endpointPair = network.incidentNodes(inEdge); assertThat(endpointPair.source()).isEqualTo(endpointPair.adjacentNode(node)); assertThat(endpointPair.target()).isEqualTo(node); } for (String outEdge : network.outEdges(node)) { EndpointPair<Integer> endpointPair = network.incidentNodes(outEdge); assertThat(endpointPair.source()).isEqualTo(node); assertThat(endpointPair.target()).isEqualTo(endpointPair.adjacentNode(node)); } for (Integer adjacentNode : network.adjacentNodes(node)) { Set<String> edges = network.edgesConnecting(node, adjacentNode); Set<String> antiParallelEdges = network.edgesConnecting(adjacentNode, node); assertThat(node.equals(adjacentNode) || Collections.disjoint(edges, antiParallelEdges)) .isTrue(); } } }
assertThat(graph.hasEdgeConnecting(endpoints.source(), endpoints.target())).isTrue(); } else { assertThat(graph.hasEdgeConnecting(endpoints.nodeU(), endpoints.nodeV())).isTrue();
.contains(inEdge); if (network.isDirected()) { assertThat(network.incidentNodes(inEdge).target()).isEqualTo(node);
@Override @Test public void incidentNodes_oneEdge() { addEdge(N1, N2, E12); assertThat(network.incidentNodes(E12).source()).isEqualTo(N1); assertThat(network.incidentNodes(E12).target()).isEqualTo(N2); }