Index: trunk/test/atmsdriver/model/HighwaysTest.java
===================================================================
--- trunk/test/atmsdriver/model/HighwaysTest.java	(revision 343)
+++ trunk/test/atmsdriver/model/HighwaysTest.java	(revision 354)
@@ -51,4 +51,80 @@
             writer.println("1204215 ML ML_4");
             writer.close();
+            
+            writer = new PrintWriter(new FileWriter("test/atmsdriver/model/ldssample2.txt"));
+            writer.println("1");
+            writer.println("44 0 6");
+            writer.println("1204390 6 5 S 7.99 5 AEROPUERTO");
+            writer.println("1204391 ML ML_1");
+            writer.println("1204392 ML ML_2");
+            writer.println("1204393 ML ML_3");
+            writer.println("1204394 ML ML_4");
+            writer.println("1210062 ML ML_5");
+            writer.println("1204384 5 5 N 7.46 4 CAPISTRANO");
+            writer.println("1204385 ML ML_1");
+            writer.println("1204386 ML ML_2");
+            writer.println("1204387 ML ML_3");
+            writer.println("1204388 ML ML_4");
+            writer.println("1204316 1 5 N 5.73 4 ESTRELLA1");
+            writer.println("1204317 ML ML_1");
+            writer.println("1204318 ML ML_2");
+            writer.println("1204319 ML ML_3");
+            writer.println("1204320 ML ML_4");
+            writer.println("1204340 3 5 N 6.47 4 SACRAMENTO");
+            writer.println("1204341 ML ML_1");
+            writer.println("1204342 ML ML_2");
+            writer.println("1204343 ML ML_3");
+            writer.println("1204344 ML ML_4");
+            writer.println("1204345 3 5 S 6.47 5 SACRAMENTO");
+            writer.println("1204346 OS OS_1");
+            writer.println("1204347 OS OS_2");
+            writer.println("1204348 OS OS_3");
+            writer.println("1204349 OS OS_4");
+            writer.println("1204350 OS OS_5");
+            writer.println("1211075 5 5 S 7.46 5 CAPISTRANO");
+            writer.println("1211069 OS OS_1");
+            writer.println("1211070 OS OS_2");
+            writer.println("1211071 OS OS_3");
+            writer.println("1211072 OS OS_4");
+            writer.println("1211073 OS OS_5");
+            writer.close();
+
+            writer = new PrintWriter(new FileWriter("test/atmsdriver/model/ldssample3.txt"));
+            writer.println("1");
+            writer.println("44 0 6");
+            writer.println("1204390 6 73 N 23.9 5 BISON 2");
+            writer.println("1204391 ML ML_1");
+            writer.println("1204392 ML ML_2");
+            writer.println("1204393 ML ML_3");
+            writer.println("1204394 ML ML_4");
+            writer.println("1210062 ML ML_5");
+            writer.println("1204384 2 55 S 6.88 4 MACARTHU1");
+            writer.println("1204385 ML ML_1");
+            writer.println("1204386 ML ML_2");
+            writer.println("1204387 ML ML_3");
+            writer.println("1204388 ML ML_4");
+            writer.println("1204316 1 5 N 5.73 4 ESTRELLA1");
+            writer.println("1204317 ML ML_1");
+            writer.println("1204318 ML ML_2");
+            writer.println("1204319 ML ML_3");
+            writer.println("1204320 ML ML_4");
+            writer.println("1204340 3 5 N 6.47 4 SACRAMENTO");
+            writer.println("1204341 ML ML_1");
+            writer.println("1204342 ML ML_2");
+            writer.println("1204343 ML ML_3");
+            writer.println("1204344 ML ML_4");
+            writer.println("1204345 4 405 N 6.21 5 HARVARD");
+            writer.println("1204346 OS OS_1");
+            writer.println("1204347 OS OS_2");
+            writer.println("1204348 OS OS_3");
+            writer.println("1204349 OS OS_4");
+            writer.println("1204350 OS OS_5");
+            writer.println("1211075 5 405 S 6.8 5 JAMBOREE1");
+            writer.println("1211069 OS OS_1");
+            writer.println("1211070 OS OS_2");
+            writer.println("1211071 OS OS_3");
+            writer.println("1211072 OS OS_4");
+            writer.println("1211073 OS OS_5");
+            writer.close();
         } catch (Exception e) {
             e.printStackTrace();
@@ -61,4 +137,8 @@
         Path path = FileSystems.getDefault().getPath("test/atmsdriver/model", "ldssample.txt");
         Files.delete(path);
+        path = FileSystems.getDefault().getPath("test/atmsdriver/model", "ldssample2.txt");
+        Files.delete(path);
+        path = FileSystems.getDefault().getPath("test/atmsdriver/model", "ldssample3.txt");
+        Files.delete(path);
     }
 
@@ -84,14 +164,13 @@
         highways.getHighwayByRouteNumber(5).stations.get(0).loops.get(0).vol = 1;
         String result = highways.toString();
-        System.out.println(result);
         String[] resultLines = result.split("\n");
         String actual = resultLines[3].substring(0,9);
         assertEquals("  5 S @.-",actual);
-        highways.applyColorToHighwayStretch(241, Station.DIRECTION.NORTH, 18.08, 1.0, 
+        highways.applyColorToHighwayStretch(241, Station.DIRECTION.NORTH, 18.8, 0.8, 
                 LoopDetector.DOTCOLOR.RED);
         result = highways.toString();
         System.out.println("bravo:\n"+result);
         assertEquals("241 N -@.@@.-",result.substring(0,13));
-        highways.applyColorToHighwayStretch(241, Station.DIRECTION.SOUTH, 20.13, 2.0, 
+        highways.applyColorToHighwayStretch(241, Station.DIRECTION.SOUTH, 18.8, 2.0, 
                 LoopDetector.DOTCOLOR.YELLOW);
         result = highways.toString();
@@ -99,5 +178,5 @@
         resultLines = result.split("\n");
         actual = resultLines[1].substring(0,16);
-        assertEquals("241 S ..+..+.++.",actual);
+        assertEquals("241 S ..-..+.++.",actual);
     }
 
@@ -117,11 +196,61 @@
         JSONObject item1 = (JSONObject)array.get(0);
         String id1 = (String) item1.get("id");
-        assertEquals("5 S 0.9", id1);
         JSONObject item2 = (JSONObject)array.get(1);
         String id2 = (String) item2.get("id");
-        assertEquals("5 N 1.26", id2);
         JSONObject item3 = (JSONObject)array.get(2);
         String id3 = (String) item3.get("id");
+        assertEquals("5 N 1.26", id1);
+        assertEquals("5 S 0.9", id2);
         assertEquals("5 S 1.49", id3);
+    }
+    public void testStationSort() throws ParseException {
+        System.out.println("stationSort");
+        Highways highways = new Highways(
+                "test/atmsdriver/model/ldssample2.txt",
+                "localhost", 8080);
+        String result = highways.toJson();
+        JSONParser parser = new JSONParser();
+        JSONObject obj = (JSONObject) parser.parse(result);
+        JSONArray array = (JSONArray)obj.get("features");
+        JSONObject item1 = (JSONObject)array.get(0);
+        String id1 = (String) item1.get("id");
+        JSONObject item2 = (JSONObject)array.get(1);
+        String id2 = (String) item2.get("id");
+        JSONObject item3 = (JSONObject)array.get(2);
+        String id3 = (String) item3.get("id");
+        assertEquals("5 N 5.73", id1);
+        assertEquals("5 N 6.47", id2);
+        assertEquals("5 N 7.46", id3);
+        JSONObject item4 = (JSONObject)array.get(3);
+        String id4 = (String) item4.get("id");
+        JSONObject item5 = (JSONObject)array.get(4);
+        String id5 = (String) item5.get("id");
+        assertEquals("5 S 6.47", id4);
+        assertEquals("5 S 7.46", id5);
+    }
+    public void testRouteSort() throws ParseException {
+        System.out.println("routeSort");
+        Highways highways = new Highways(
+                "test/atmsdriver/model/ldssample3.txt",
+                "localhost", 8080);
+        String result = highways.toJson();
+        JSONParser parser = new JSONParser();
+        JSONObject obj = (JSONObject) parser.parse(result);
+        JSONArray array = (JSONArray)obj.get("features");
+        JSONObject item1 = (JSONObject)array.get(0);
+        String id1 = (String) item1.get("id");
+        JSONObject item2 = (JSONObject)array.get(1);
+        String id2 = (String) item2.get("id");
+        JSONObject item3 = (JSONObject)array.get(2);
+        String id3 = (String) item3.get("id");
+        JSONObject item4 = (JSONObject)array.get(3);
+        String id4 = (String) item4.get("id");
+        JSONObject item5 = (JSONObject)array.get(4);
+        String id5 = (String) item5.get("id");
+        assertEquals("5 N 5.73", id1);
+        assertEquals("5 N 6.47", id2);
+        assertEquals("55 S 6.88", id3);
+        assertEquals("73 N 23.9", id4);
+        assertEquals("405 N 6.21", id5);
     }
    
@@ -138,20 +267,20 @@
         String result = highways.toString();
         System.out.println("applyto:\n"+result);
-        assertEquals("5 N .-.\n  5 S @.-", result.trim());
+        assertEquals("5 N .-.\n  5 S @.@", result.trim());
         
         highways.applyColorToHighwayStretch(5, Station.DIRECTION.SOUTH, 1.49, 2.0, 
                 LoopDetector.DOTCOLOR.YELLOW);
         result = highways.toString();
-        assertEquals("5 N .-.\n  5 S +.+", result.trim());
+        assertEquals("5 N .-.\n  5 S @.+", result.trim());
         
         highways.applyColorToHighwayStretch(5, Station.DIRECTION.SOUTH, 1.49, 0.59, 
                 LoopDetector.DOTCOLOR.GREEN);
         result = highways.toString();
-        assertEquals("5 N .-.\n  5 S -.-", result.trim());
-
-        highways.applyColorToHighwayStretch(5, Station.DIRECTION.NORTH, 0.1, 2.0, 
+        assertEquals("5 N .-.\n  5 S @.-", result.trim());
+
+        highways.applyColorToHighwayStretch(5, Station.DIRECTION.NORTH, 1.83, 2.0, 
                 LoopDetector.DOTCOLOR.RED);
         result = highways.toString();
-        assertEquals("5 N .@.\n  5 S -.-", result.trim());
+        assertEquals("5 N .@.\n  5 S @.-", result.trim());
         
         //highways.applyColorToHighwayStretch(241, Station.DIRECTION.NORTH, 20.13, 4.0, LoopDetector.DOTCOLOR.RED);
