@Test public void adjacentNodes_oneEdge() { addEdge(N1, N2, E12); assertThat(network.adjacentNodes(N1)).containsExactly(N2); assertThat(network.adjacentNodes(N2)).containsExactly(N1); }
@Override @Test public void adjacentNodes_checkReturnedSetMutability() { addNode(N1); Set<Integer> adjacentNodes = network.adjacentNodes(N1); try { adjacentNodes.add(N2); fail(ERROR_MODIFIABLE_COLLECTION); } catch (UnsupportedOperationException e) { addEdge(N1, N2, E12); assertThat(network.adjacentNodes(N1)).containsExactlyElementsIn(adjacentNodes); } }
@Override @Test public void adjacentNodes_checkReturnedSetMutability() { addNode(N1); Set<Integer> adjacentNodes = network.adjacentNodes(N1); try { adjacentNodes.add(N2); fail(ERROR_MODIFIABLE_COLLECTION); } catch (UnsupportedOperationException e) { addEdge(N1, N2, E12); assertThat(network.adjacentNodes(N1)).containsExactlyElementsIn(adjacentNodes); } }
@Test public void adjacentNodes_noAdjacentNodes() { addNode(N1); assertThat(network.adjacentNodes(N1)).isEmpty(); }
@Test public void adjacentNodes_nodeNotInGraph() { try { network.adjacentNodes(NODE_NOT_IN_GRAPH); fail(ERROR_NODE_NOT_IN_GRAPH); } catch (IllegalArgumentException e) { assertNodeNotInGraphErrorMessage(e); } }
@Test public void adjacentNodes_selfLoop() { addEdge(N1, N1, E11); addEdge(N1, N2, E12); assertThat(network.adjacentNodes(N1)).containsExactly(N1, N2); }
@Test public void adjacentNodes_selfLoop() { addEdge(N1, N1, E11); addEdge(N1, N2, E12); assertThat(network.adjacentNodes(N1)).containsExactly(N1, N2); }
@Test public void removeNode_queryAfterRemoval() { addNode(N1); @SuppressWarnings("unused") Set<Integer> unused = network.adjacentNodes(N1); // ensure cache (if any) is populated assertTrue(network.removeNode(N1)); try { network.adjacentNodes(N1); fail(ERROR_NODE_NOT_IN_GRAPH); } catch (IllegalArgumentException e) { assertNodeNotInGraphErrorMessage(e); } }
@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(); } } }
@After public void validateUndirectedEdges() { for (Integer node : network.nodes()) { new EqualsTester() .addEqualityGroup( network.inEdges(node), network.outEdges(node), network.incidentEdges(node)) .testEquals(); new EqualsTester() .addEqualityGroup( network.predecessors(node), network.successors(node), network.adjacentNodes(node)) .testEquals(); for (Integer adjacentNode : network.adjacentNodes(node)) { assertThat(network.edgesConnecting(node, adjacentNode)) .containsExactlyElementsIn(network.edgesConnecting(adjacentNode, node)); } } }
@Override public synchronized Set<N> adjacentNodes(N arg0) { return delegate.adjacentNodes(arg0); }
@Override public Set<N> adjacentNodes(N node) { return delegate.adjacentNodes(node); }
@Override public Set<N> adjacentNodes(N node) { checkNotNull(node, "node"); checkArgument(delegate.nodes().contains(node), NODE_NOT_IN_TREE, node); return delegate.adjacentNodes(node); }
@Test public void adjacentNodes_oneEdge() { addEdge(N1, N2, E12); assertThat(network.adjacentNodes(N1)).containsExactly(N2); assertThat(network.adjacentNodes(N2)).containsExactly(N1); }
@Override @Test public void adjacentNodes_checkReturnedSetMutability() { addNode(N1); Set<Integer> adjacentNodes = network.adjacentNodes(N1); try { adjacentNodes.add(N2); fail(ERROR_MODIFIABLE_COLLECTION); } catch (UnsupportedOperationException e) { addEdge(N1, N2, E12); assertThat(network.adjacentNodes(N1)).containsExactlyElementsIn(adjacentNodes); } }
@Override @Test public void adjacentNodes_checkReturnedSetMutability() { addNode(N1); Set<Integer> adjacentNodes = network.adjacentNodes(N1); try { adjacentNodes.add(N2); fail(ERROR_MODIFIABLE_COLLECTION); } catch (UnsupportedOperationException e) { addEdge(N1, N2, E12); assertThat(network.adjacentNodes(N1)).containsExactlyElementsIn(adjacentNodes); } }
@Test public void adjacentNodes_noAdjacentNodes() { addNode(N1); assertThat(network.adjacentNodes(N1)).isEmpty(); }
@Test public void adjacentNodes_selfLoop() { addEdge(N1, N1, E11); addEdge(N1, N2, E12); assertThat(network.adjacentNodes(N1)).containsExactly(N1, N2); }
@Test public void adjacentNodes_nodeNotInGraph() { try { network.adjacentNodes(NODE_NOT_IN_GRAPH); fail(ERROR_NODE_NOT_IN_GRAPH); } catch (IllegalArgumentException e) { assertNodeNotInGraphErrorMessage(e); } }
@Test public void adjacentNodes_selfLoop() { addEdge(N1, N1, E11); addEdge(N1, N2, E12); assertThat(network.adjacentNodes(N1)).containsExactly(N1, N2); }