@Test public void equivalent_propertiesDiffer() { network.addEdge(N1, N2, E12); MutableNetwork<Integer, String> g2 = NetworkBuilder.from(network) .allowsParallelEdges(!network.allowsParallelEdges()) .allowsSelfLoops(!network.allowsSelfLoops()) .build(); g2.addEdge(N1, N2, E12); assertThat(network).isEqualTo(g2); }
@Override public synchronized boolean allowsSelfLoops() { return delegate.allowsSelfLoops(); }
@Override public boolean allowsSelfLoops() { return delegate.allowsSelfLoops(); }
@Override public E addEdge(V sourceVertex, V targetVertex) { assertVertexExist(sourceVertex); assertVertexExist(targetVertex); if (!network.allowsParallelEdges() && containsEdge(sourceVertex, targetVertex)) { return null; } if (!network.allowsSelfLoops() && sourceVertex.equals(targetVertex)) { throw new IllegalArgumentException(LOOPS_NOT_ALLOWED); } if (edgeSupplier == null) { throw new UnsupportedOperationException("The graph contains no edge supplier"); } E e = edgeSupplier.get(); if (network.addEdge(sourceVertex, targetVertex, e)) { return e; } return null; }
@Override public boolean addEdge(V sourceVertex, V targetVertex, E e) { if (e == null) { throw new NullPointerException(); } assertVertexExist(sourceVertex); assertVertexExist(targetVertex); if (!network.allowsParallelEdges() && containsEdge(sourceVertex, targetVertex)) { return false; } if (!network.allowsSelfLoops() && sourceVertex.equals(targetVertex)) { throw new IllegalArgumentException(LOOPS_NOT_ALLOWED); } if (network.addEdge(sourceVertex, targetVertex, e)) { return true; } return false; }
@Test public void equivalent_propertiesDiffer() { network.addEdge(N1, N2, E12); MutableNetwork<Integer, String> g2 = NetworkBuilder.from(network) .allowsParallelEdges(!network.allowsParallelEdges()) .allowsSelfLoops(!network.allowsSelfLoops()) .build(); g2.addEdge(N1, N2, E12); assertThat(network).isEqualTo(g2); }