aboutsummaryrefslogtreecommitdiff
path: root/guava-tests/test/com/google/common/graph/ImmutableNetworkTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'guava-tests/test/com/google/common/graph/ImmutableNetworkTest.java')
-rw-r--r--guava-tests/test/com/google/common/graph/ImmutableNetworkTest.java72
1 files changed, 71 insertions, 1 deletions
diff --git a/guava-tests/test/com/google/common/graph/ImmutableNetworkTest.java b/guava-tests/test/com/google/common/graph/ImmutableNetworkTest.java
index e138656e2..5de3cf751 100644
--- a/guava-tests/test/com/google/common/graph/ImmutableNetworkTest.java
+++ b/guava-tests/test/com/google/common/graph/ImmutableNetworkTest.java
@@ -46,7 +46,7 @@ public class ImmutableNetworkTest {
ImmutableNetwork.copyOf(NetworkBuilder.directed().<String, String>build());
Network<String, String> network2 = ImmutableNetwork.copyOf(network1);
- assertThat(network2).isSameAs(network1);
+ assertThat(network2).isSameInstanceAs(network1);
}
@Test
@@ -74,4 +74,74 @@ public class ImmutableNetworkTest {
assertThat(network.edgesConnecting("A", "B")).containsExactly("AB");
assertThat(network.edgesConnecting("B", "A")).containsExactly("AB");
}
+
+ @Test
+ public void immutableNetworkBuilder_appliesNetworkBuilderConfig() {
+ ImmutableNetwork<String, Integer> emptyNetwork =
+ NetworkBuilder.directed()
+ .allowsSelfLoops(true)
+ .nodeOrder(ElementOrder.<String>natural())
+ .<String, Integer>immutable()
+ .build();
+
+ assertThat(emptyNetwork.isDirected()).isTrue();
+ assertThat(emptyNetwork.allowsSelfLoops()).isTrue();
+ assertThat(emptyNetwork.nodeOrder()).isEqualTo(ElementOrder.<String>natural());
+ }
+
+ /**
+ * Tests that the ImmutableNetwork.Builder doesn't change when the creating NetworkBuilder
+ * changes.
+ */
+ @Test
+ @SuppressWarnings("CheckReturnValue")
+ public void immutableNetworkBuilder_copiesNetworkBuilder() {
+ NetworkBuilder<String, Object> networkBuilder =
+ NetworkBuilder.directed()
+ .allowsSelfLoops(true)
+ .<String>nodeOrder(ElementOrder.<String>natural());
+ ImmutableNetwork.Builder<String, Integer> immutableNetworkBuilder =
+ networkBuilder.<String, Integer>immutable();
+
+ // Update NetworkBuilder, but this shouldn't impact immutableNetworkBuilder
+ networkBuilder.allowsSelfLoops(false).nodeOrder(ElementOrder.<String>unordered());
+
+ ImmutableNetwork<String, Integer> emptyNetwork = immutableNetworkBuilder.build();
+
+ assertThat(emptyNetwork.isDirected()).isTrue();
+ assertThat(emptyNetwork.allowsSelfLoops()).isTrue();
+ assertThat(emptyNetwork.nodeOrder()).isEqualTo(ElementOrder.<String>natural());
+ }
+
+ @Test
+ public void immutableNetworkBuilder_addNode() {
+ ImmutableNetwork<String, Integer> network =
+ NetworkBuilder.directed().<String, Integer>immutable().addNode("A").build();
+
+ assertThat(network.nodes()).containsExactly("A");
+ assertThat(network.edges()).isEmpty();
+ }
+
+ @Test
+ public void immutableNetworkBuilder_putEdgeFromNodes() {
+ ImmutableNetwork<String, Integer> network =
+ NetworkBuilder.directed().<String, Integer>immutable().addEdge("A", "B", 10).build();
+
+ assertThat(network.nodes()).containsExactly("A", "B");
+ assertThat(network.edges()).containsExactly(10);
+ assertThat(network.incidentNodes(10)).isEqualTo(EndpointPair.ordered("A", "B"));
+ }
+
+ @Test
+ public void immutableNetworkBuilder_putEdgeFromEndpointPair() {
+ ImmutableNetwork<String, Integer> network =
+ NetworkBuilder.directed()
+ .<String, Integer>immutable()
+ .addEdge(EndpointPair.ordered("A", "B"), 10)
+ .build();
+
+ assertThat(network.nodes()).containsExactly("A", "B");
+ assertThat(network.edges()).containsExactly(10);
+ assertThat(network.incidentNodes(10)).isEqualTo(EndpointPair.ordered("A", "B"));
+ }
}