package edu.kit.pse.ws2013.routekit.map; import static org.junit.Assert.assertEquals; import java.io.File; import java.io.IOException; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import org.junit.Test; import edu.kit.pse.ws2013.routekit.profiles.VehicleType; public class TestEdgeBasedGraph { @Test public void testSaveLoad() throws IOException { int[] edges = new int[] { 0, 3, 6, 6 }; int[] turns = new int[] { 1, 2, 3, 0, 2, 3, 0, 1, 2 }; TurnType[] turnTypes = new TurnType[] { TurnType.HalfLeftTurn, TurnType.HalfRightTurn, TurnType.MotorwayJunction, TurnType.RightTurn, TurnType.NoTurn, TurnType.StraightOn, TurnType.RoundaboutNoExit, TurnType.RoundaboutEntry, TurnType.HalfLeftTurn }; int[] partitions = new int[] { 0, 1, 2, 3 }; Map<Integer, Restriction> restrictions = new HashMap<>(); restrictions.put(0, WeightRestriction.getInstance(100)); restrictions.put(2, MultipleRestrictions.getInstance(Arrays.asList( VehicleTypeRestriction.getInstance(VehicleType.Truck), VehicleTypeRestriction.getInstance(VehicleType.Bus)))); EdgeBasedGraph e = new EdgeBasedGraph(edges, turns, turnTypes, restrictions); e.setPartitions(partitions); File f = File.createTempFile("routeKit_testEdgeBasedGraph_", ".graph"); e.save(f); EdgeBasedGraph loaded = EdgeBasedGraph.load(f); assertEquals(turns.length, loaded.getNumberOfTurns()); for (int edge = 0; edge < edges.length; edge++) { // assertEquals(e.getIncomingTurns(edge), // TODO unimplemented // loaded.getIncomingTurns(edge)); // assertEquals(e.getOutgoingTurns(edge), // loaded.getOutgoingTurns(edge)); assertEquals(e.getPartition(edge), loaded.getPartition(edge)); } for (int turn = 0; turn < turns.length; turn++) { // assertEquals(e.getStartEdge(turn), loaded.getStartEdge(turn)); // assertEquals(e.getTargetEdge(turn), loaded.getTargetEdge(turn)); assertEquals(e.getTurnType(turn), loaded.getTurnType(turn)); } } }