package i5.las2peer.services.ocd.graphs; import static org.junit.Assert.*; import i5.las2peer.services.ocd.graphs.CustomGraph; import org.junit.Test; import y.base.Edge; import y.base.Node; public class CustomGraphTest { @Test public void testCopyConstructor() { CustomGraph graph = new CustomGraph(); Node node0 = graph.createNode(); Node node1 = graph.createNode(); graph.createEdge(node0, node1); graph.createEdge(node1, node0); graph.createEdge(node0, node0); Node node2 = graph.createNode(); graph.createEdge(node0, node2); graph.createEdge(node1, node2); Edge edge5 = graph.createEdge(node2, node1); graph.setEdgeWeight(edge5, 5); CustomGraph copy = new CustomGraph(graph); assertEquals(graph.nodeCount(), copy.nodeCount()); assertEquals(graph.edgeCount(), copy.edgeCount()); Edge copyEdge5 = copy.getEdgeArray()[5]; assertEquals(5, copy.getEdgeWeight(copyEdge5), 0); graph.setEdgeWeight(edge5, 2); assertEquals(5, copy.getEdgeWeight(copyEdge5), 0); copy.removeEdge(copyEdge5); assertEquals(graph.edgeCount() - 1, copy.edgeCount()); } @Test(expected = NullPointerException.class) public void testEdgeRemoval() { CustomGraph graph = new CustomGraph(); Node node0 = graph.createNode(); Node node1 = graph.createNode(); graph.createEdge(node0, node1); graph.createEdge(node1, node0); graph.createEdge(node0, node0); Node node2 = graph.createNode(); graph.createEdge(node0, node2); graph.createEdge(node1, node2); Edge edge5 = graph.createEdge(node2, node1); graph.setEdgeWeight(edge5, 5); assertEquals(6, graph.edgeCount()); graph.removeEdge(edge5); assertEquals(5, graph.edgeCount()); graph.getEdgeWeight(edge5); } }