package tmcsim.highwaymodel; import tmcsim.highwaymodel.Station; import tmcsim.highwaymodel.Highways; import tmcsim.highwaymodel.Highway; import java.io.FileWriter; import java.io.PrintWriter; import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import junit.framework.TestCase; /** * * @author jdalbey */ public class LoadHighwaysTest extends TestCase { public LoadHighwaysTest(String testName) { super(testName); } @Override protected void setUp() throws Exception { super.setUp(); PrintWriter writer = null; try { writer = new PrintWriter(new FileWriter("test/atmsdriver/postmiles1.txt")); writer.println("5 S 0.9,33.408425,-117.599923,CALAFIA,0,0"); writer.println("5 N 1.24,33.413051,-117.601964,MAGDALENA,0,0"); writer.println("5 S 1.49,33.416348,-117.603827,EL CAMINO REAL,0,0"); writer.close(); writer = new PrintWriter(new FileWriter("test/atmsdriver/postmiles3.txt")); writer.println("73 N 23.9,33.643656,-117.859875,BISON 2,0.976131,0.217185"); writer.println("55 S 6.88,33.697495,-117.862677,MACARTHU1,-0.710326,0.703873"); writer.println("5 N 5.73,33.458342,-117.655008,ESTRELLA1,0,0"); writer.println("5 N 6.47,33.464404,-117.665509,SACRAMENTO,0.523797,0.851843"); writer.println("405 N 6.21,33.672851,-117.832271,HARVARD,0.320278,0.947323"); writer.println("405 S 6.8,33.675863,-117.84179,JAMBOREE1,-0.402558,-0.915394"); writer.close(); } catch (Exception e) { e.printStackTrace(); } } @Override protected void tearDown() throws Exception { super.tearDown(); Path path = FileSystems.getDefault().getPath("test/atmsdriver", "postmiles1.txt"); Files.delete(path); path = FileSystems.getDefault().getPath("test/atmsdriver", "postmiles3.txt"); Files.delete(path); } /** * Test of Highways constructor */ public void testLoadHighways() { System.out.println("testLoadHighways"); Highways highways = new Highways( "test/atmsdriver/postmiles1.txt"); // Test for correct number of highways List result = (ArrayList) highways.highways; assertEquals(1, result.size()); // Test 5 was loaded Highway fiveS = result.get(0); assertEquals(new Integer(5), fiveS.routeNumber); // Test for correct number of stations assertEquals(new Integer(3), new Integer(fiveS.stations.size())); // Test hwy5 stations are sorted by postmile List stations = (ArrayList) fiveS.stations; ArrayList stationsPostmiles = new ArrayList<>(); for(Station station : stations) { stationsPostmiles.add(station.postmile); } // Create expected station postmile list (sorted) ArrayList expectedStationsPostmiles = new ArrayList<>(); expectedStationsPostmiles.add(new Double(0.9)); expectedStationsPostmiles.add(new Double(1.24)); expectedStationsPostmiles.add(new Double(1.49)); for(int i = 0; i < 3; i++) { assertEquals(expectedStationsPostmiles.get(i), stationsPostmiles.get(i)); } } public void testLoadHighways2() { System.out.println("testLoadHighways2"); Highways highways = new Highways( "test/atmsdriver/postmiles3.txt"); // Test for correct number of highways List result = (ArrayList) highways.highways; assertEquals(4, result.size()); Highway five = result.get(0); assertEquals(new Integer(5), five.routeNumber); assertEquals(new Integer(405), result.get(1).routeNumber); assertEquals(new Integer(55), result.get(2).routeNumber); assertEquals(new Integer(73), result.get(3).routeNumber); } }