@Override public EndpointPair<N> apply(N adjacentNode) { return EndpointPair.unordered(node, adjacentNode); } }));
@Test public void edges_containsOrderMismatch() { addEdge(N1, N2, E12); EndpointPair<Integer> endpointsN1N2 = EndpointPair.unordered(N1, N2); EndpointPair<Integer> endpointsN2N1 = EndpointPair.unordered(N2, N1); assertThat(network.asGraph().edges()).doesNotContain(endpointsN1N2); assertThat(network.asGraph().edges()).doesNotContain(endpointsN2N1); }
@Test public void testSelfLoop() { EndpointPair<String> unordered = EndpointPair.unordered("node", "node"); assertThat(unordered.isOrdered()).isFalse(); assertThat(unordered).containsExactly("node", "node"); assertThat(unordered.nodeU()).isEqualTo("node"); assertThat(unordered.nodeV()).isEqualTo("node"); assertThat(unordered.adjacentNode("node")).isEqualTo("node"); assertThat(unordered.toString()).isEqualTo("[node, node]"); }
@Test public void testUnorderedEndpointPair() { EndpointPair<String> unordered = EndpointPair.unordered("chicken", "egg"); assertThat(unordered.isOrdered()).isFalse(); assertThat(unordered).containsExactly("chicken", "egg"); assertThat(ImmutableSet.of(unordered.nodeU(), unordered.nodeV())) .containsExactly("chicken", "egg"); assertThat(unordered.adjacentNode(unordered.nodeU())).isEqualTo(unordered.nodeV()); assertThat(unordered.adjacentNode(unordered.nodeV())).isEqualTo(unordered.nodeU()); assertThat(unordered.toString()).contains("chicken"); assertThat(unordered.toString()).contains("egg"); }
@Test public void addEdge_orderMismatch() { EndpointPair<Integer> endpoints = EndpointPair.unordered(N1, N2); try { addEdge(endpoints, E12); fail("Expected IllegalArgumentException: " + ENDPOINTS_MISMATCH); } catch (IllegalArgumentException e) { assertThat(e).hasMessageThat().contains(ENDPOINTS_MISMATCH); } } }
@Test public void edgeValue_directed_mismatch() { graph = ValueGraphBuilder.directed().build(); graph.putEdgeValue(1, 2, "A"); try { Optional<String> unused = graph.edgeValue(EndpointPair.unordered(1, 2)); unused = graph.edgeValue(EndpointPair.unordered(2, 1)); fail("Expected IllegalArgumentException: " + ENDPOINTS_MISMATCH); } catch (IllegalArgumentException e) { assertThat(e).hasMessageThat().contains(ENDPOINTS_MISMATCH); } }
@Test public void removeEdge_orderMismatch() { putEdge(N1, N2); EndpointPair<Integer> endpoints = EndpointPair.unordered(N1, N2); try { graph.removeEdge(endpoints); fail("Expected IllegalArgumentException: " + ENDPOINTS_MISMATCH); } catch (IllegalArgumentException e) { assertThat(e).hasMessageThat().contains(ENDPOINTS_MISMATCH); } } }
@Test public void edgeConnectingOrNull_orderMismatch() { addEdge(N1, N2, E12); try { String unused = network.edgeConnectingOrNull(EndpointPair.unordered(N1, N2)); fail("Expected IllegalArgumentException: " + ENDPOINTS_MISMATCH); } catch (IllegalArgumentException e) { assertThat(e).hasMessageThat().contains(ENDPOINTS_MISMATCH); } }
@Test public void edgesConnecting_orderMismatch() { addEdge(N1, N2, E12); try { Set<String> unused = network.edgesConnecting(EndpointPair.unordered(N1, N2)); fail("Expected IllegalArgumentException: " + ENDPOINTS_MISMATCH); } catch (IllegalArgumentException e) { assertThat(e).hasMessageThat().contains(ENDPOINTS_MISMATCH); } }
@Test public void hasEdgeConnecting_undirected_correct() { graph = ValueGraphBuilder.undirected().build(); graph.putEdgeValue(1, 2, "A"); assertThat(graph.hasEdgeConnecting(EndpointPair.unordered(1, 2))).isTrue(); }
@Test public void edgeValueOrDefault_undirected_correct() { graph = ValueGraphBuilder.undirected().build(); graph.putEdgeValue(1, 2, "A"); assertThat(graph.edgeValueOrDefault(EndpointPair.unordered(1, 2), "default")).isEqualTo("A"); }
@Test public void edgeConnecting_orderMismatch() { addEdge(N1, N2, E12); try { Optional<String> unused = network.edgeConnecting(EndpointPair.unordered(N1, N2)); fail("Expected IllegalArgumentException: " + ENDPOINTS_MISMATCH); } catch (IllegalArgumentException e) { assertThat(e).hasMessageThat().contains(ENDPOINTS_MISMATCH); } }
@Test public void edgeValueOrDefault_undirected_backwards() { graph = ValueGraphBuilder.undirected().build(); graph.putEdgeValue(1, 2, "A"); assertThat(graph.edgeValueOrDefault(EndpointPair.unordered(2, 1), "default")).isEqualTo("A"); }
@Test public void putEdgeValue_directed_orderMismatch() { graph = ValueGraphBuilder.directed().build(); try { graph.putEdgeValue(EndpointPair.unordered(1, 2), "irrelevant"); fail("Expected IllegalArgumentException: " + ENDPOINTS_MISMATCH); } catch (IllegalArgumentException e) { assertThat(e).hasMessageThat().contains(ENDPOINTS_MISMATCH); } }
@Test public void edgeValue_undirected_correct() { graph = ValueGraphBuilder.undirected().build(); graph.putEdgeValue(1, 2, "A"); assertThat(graph.edgeValue(EndpointPair.unordered(1, 2))).hasValue("A"); }
@Test public void edgeValue_undirected_backwards() { graph = ValueGraphBuilder.undirected().build(); graph.putEdgeValue(1, 2, "A"); assertThat(graph.edgeValue(EndpointPair.unordered(2, 1))).hasValue("A"); }