package edu.kit.pse.ws2013.routekit.map; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import java.io.File; import java.io.IOException; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import edu.kit.pse.ws2013.routekit.util.DummyProgressReporter; public class TestGraph { public static final double EPSILON = 0.00001; Graph g; @Before public void setUp() throws Exception { g = new TestDummies().getGraph(); } @Ignore @Test public void testGetNodeProperties() { fail("Not yet implemented"); } @Test public void testGetCoordinates() { assertEquals(1, g.getCoordinates(0).getLatitude(), EPSILON); assertEquals(0, g.getCoordinates(0).getLongitude(), EPSILON); assertEquals(1, g.getCoordinates(1).getLatitude(), EPSILON); assertEquals(1, g.getCoordinates(1).getLongitude(), EPSILON); assertEquals(0, g.getCoordinates(2).getLatitude(), EPSILON); assertEquals(0, g.getCoordinates(2).getLongitude(), EPSILON); assertEquals(0, g.getCoordinates(3).getLatitude(), EPSILON); assertEquals(1, g.getCoordinates(3).getLongitude(), EPSILON); } @Test public void testGetStartNode() { assertEquals(0, g.getStartNode(0)); assertEquals(0, g.getStartNode(1)); assertEquals(0, g.getStartNode(2)); assertEquals(1, g.getStartNode(3)); assertEquals(1, g.getStartNode(4)); assertEquals(1, g.getStartNode(5)); assertEquals(3, g.getStartNode(6)); } @Test public void testGetTargetNode() { assertEquals(1, g.getTargetNode(0)); assertEquals(2, g.getTargetNode(1)); assertEquals(3, g.getTargetNode(2)); } @Test public void testGetOutgoing() { Integer[] data = g.getOutgoingEdges(0).toArray(new Integer[0]); assertArrayEquals(new Integer[] { 0, 1, 2 }, data); data = g.getOutgoingEdges(1).toArray(new Integer[0]); assertArrayEquals(new Integer[] { 3, 4, 5 }, data); data = g.getOutgoingEdges(2).toArray(new Integer[0]); assertArrayEquals(new Integer[] {}, data); data = g.getOutgoingEdges(3).toArray(new Integer[0]); assertArrayEquals(new Integer[] { 6, 7, 8 }, data); } @Ignore @Test public void testGetEdgeProperties() { fail("Not yet implemented"); } @Test public void testGetCorresponding() { int[] corres = new int[] { 3, -1, 6, 0, -1, 7, 2, 5, -1 }; for (int i = 0; i < corres.length; i++) { assertEquals("index: " + i, corres[i], g.getCorrespondingEdge(i)); } } @Test public void testSaveLoad() throws IOException { File f = File.createTempFile("routeKit_testGraph_", ".graph"); g.save(f); Graph loaded = Graph.load(f, new DummyProgressReporter()); assertEquals(1, loaded.getTargetNode(0)); assertEquals(2, loaded.getTargetNode(1)); assertEquals(3, loaded.getTargetNode(2)); g = loaded; testGetOutgoing(); // TODO test lats, lons, {Node,Edge}Properties } }