Ignore:
Timestamp:
06/23/2019 10:27:35 AM (7 years ago)
Author:
jdalbey
Message:

Remove ATMS functionality. Reworked and simplified the Highway model to use only VDS data from PeMS. Updated all unit tests.

Location:
trunk/test/tmcsim/highwaymodel
Files:
1 added
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/test/tmcsim/highwaymodel/HighwaysTest.java

    r354 r422  
    1 package atmsdriver.model; 
    2  
    3 import archive.ATMSDriver; 
    4 import atmsdriver.model.LoopDetector.DOTCOLOR; 
    5 import atmsdriver.model.Station.DIRECTION; 
    6 import java.io.File; 
     1package tmcsim.highwaymodel; 
     2 
     3import tmcsim.highwaymodel.LoopDetector; 
     4import tmcsim.highwaymodel.Station; 
     5import tmcsim.highwaymodel.Highways; 
     6import tmcsim.highwaymodel.Station.DIRECTION; 
    77import java.io.FileWriter; 
    88import java.io.PrintWriter; 
     
    3131        PrintWriter writer = null; 
    3232        try { 
    33             writer = new PrintWriter(new FileWriter("test/atmsdriver/model/ldssample.txt")); 
    34             writer.println("2"); 
    35             writer.println("32 0 2"); 
    36             writer.println("1210831 1 5 S 0.9 4 CALAFIA"); 
    37             writer.println("1210832 ML ML_1"); 
    38             writer.println("1210833 ML ML_2"); 
    39             writer.println("1210834 ML ML_3"); 
    40             writer.println("1210835 ML ML_4"); 
    41             writer.println("1210845 2 5 S 1.49 4 EL CAMINO REAL"); 
    42             writer.println("1210846 ML ML_1"); 
    43             writer.println("1210847 ML ML_2"); 
    44             writer.println("1210848 ML ML_3"); 
    45             writer.println("1210849 ML ML_4"); 
    46             writer.println("74 0 1"); 
    47             writer.println("1204203 2 5 N 1.26 4 MAGDALENA"); 
    48             writer.println("1204212 ML ML_1"); 
    49             writer.println("1204213 ML ML_2"); 
    50             writer.println("1204214 ML ML_3"); 
    51             writer.println("1204215 ML ML_4"); 
     33            writer = new PrintWriter(new FileWriter("test/atmsdriver/postmiles1.txt")); 
     34            writer.println("5 S 0.9,33.408425,-117.599923,CALAFIA,0,0"); 
     35            writer.println("5 N 1.24,33.413051,-117.601964,MAGDALENA,0,0"); 
     36            writer.println("5 S 1.49,33.416348,-117.603827,EL CAMINO REAL,0,0"); 
    5237            writer.close(); 
    53              
    54             writer = new PrintWriter(new FileWriter("test/atmsdriver/model/ldssample2.txt")); 
    55             writer.println("1"); 
    56             writer.println("44 0 6"); 
    57             writer.println("1204390 6 5 S 7.99 5 AEROPUERTO"); 
    58             writer.println("1204391 ML ML_1"); 
    59             writer.println("1204392 ML ML_2"); 
    60             writer.println("1204393 ML ML_3"); 
    61             writer.println("1204394 ML ML_4"); 
    62             writer.println("1210062 ML ML_5"); 
    63             writer.println("1204384 5 5 N 7.46 4 CAPISTRANO"); 
    64             writer.println("1204385 ML ML_1"); 
    65             writer.println("1204386 ML ML_2"); 
    66             writer.println("1204387 ML ML_3"); 
    67             writer.println("1204388 ML ML_4"); 
    68             writer.println("1204316 1 5 N 5.73 4 ESTRELLA1"); 
    69             writer.println("1204317 ML ML_1"); 
    70             writer.println("1204318 ML ML_2"); 
    71             writer.println("1204319 ML ML_3"); 
    72             writer.println("1204320 ML ML_4"); 
    73             writer.println("1204340 3 5 N 6.47 4 SACRAMENTO"); 
    74             writer.println("1204341 ML ML_1"); 
    75             writer.println("1204342 ML ML_2"); 
    76             writer.println("1204343 ML ML_3"); 
    77             writer.println("1204344 ML ML_4"); 
    78             writer.println("1204345 3 5 S 6.47 5 SACRAMENTO"); 
    79             writer.println("1204346 OS OS_1"); 
    80             writer.println("1204347 OS OS_2"); 
    81             writer.println("1204348 OS OS_3"); 
    82             writer.println("1204349 OS OS_4"); 
    83             writer.println("1204350 OS OS_5"); 
    84             writer.println("1211075 5 5 S 7.46 5 CAPISTRANO"); 
    85             writer.println("1211069 OS OS_1"); 
    86             writer.println("1211070 OS OS_2"); 
    87             writer.println("1211071 OS OS_3"); 
    88             writer.println("1211072 OS OS_4"); 
    89             writer.println("1211073 OS OS_5"); 
     38 
     39            writer = new PrintWriter(new FileWriter("test/atmsdriver/postmiles2.txt")); 
     40            writer.println("5 N 5.89,33.459637,-117.657305,ESTRELLA2,0,0"); 
     41            writer.println("5 S 6.47,33.464281,-117.665631,SACRAMENTO,-0.56275,-0.826627"); 
     42            writer.println("5 N 6.47,33.464404,-117.665509,SACRAMENTO,0.523797,0.851843"); 
     43            writer.println("5 S 7.46,33.475102,-117.674584,CAPISTRANO,-0.815879,0.578222"); 
     44            writer.println("5 N 7.46,33.475073,-117.674271,CAPISTRANO,0.816519,-0.577318"); 
     45            writer.println("5 S 7.99,33.481738,-117.669881,AEROPUERTO,-0.815879,0.578222"); 
     46            writer.println("5 N 7.99,33.481685,-117.669596,AEROPUERTO,0.816519,-0.577318"); 
    9047            writer.close(); 
    9148 
    92             writer = new PrintWriter(new FileWriter("test/atmsdriver/model/ldssample3.txt")); 
    93             writer.println("1"); 
    94             writer.println("44 0 6"); 
    95             writer.println("1204390 6 73 N 23.9 5 BISON 2"); 
    96             writer.println("1204391 ML ML_1"); 
    97             writer.println("1204392 ML ML_2"); 
    98             writer.println("1204393 ML ML_3"); 
    99             writer.println("1204394 ML ML_4"); 
    100             writer.println("1210062 ML ML_5"); 
    101             writer.println("1204384 2 55 S 6.88 4 MACARTHU1"); 
    102             writer.println("1204385 ML ML_1"); 
    103             writer.println("1204386 ML ML_2"); 
    104             writer.println("1204387 ML ML_3"); 
    105             writer.println("1204388 ML ML_4"); 
    106             writer.println("1204316 1 5 N 5.73 4 ESTRELLA1"); 
    107             writer.println("1204317 ML ML_1"); 
    108             writer.println("1204318 ML ML_2"); 
    109             writer.println("1204319 ML ML_3"); 
    110             writer.println("1204320 ML ML_4"); 
    111             writer.println("1204340 3 5 N 6.47 4 SACRAMENTO"); 
    112             writer.println("1204341 ML ML_1"); 
    113             writer.println("1204342 ML ML_2"); 
    114             writer.println("1204343 ML ML_3"); 
    115             writer.println("1204344 ML ML_4"); 
    116             writer.println("1204345 4 405 N 6.21 5 HARVARD"); 
    117             writer.println("1204346 OS OS_1"); 
    118             writer.println("1204347 OS OS_2"); 
    119             writer.println("1204348 OS OS_3"); 
    120             writer.println("1204349 OS OS_4"); 
    121             writer.println("1204350 OS OS_5"); 
    122             writer.println("1211075 5 405 S 6.8 5 JAMBOREE1"); 
    123             writer.println("1211069 OS OS_1"); 
    124             writer.println("1211070 OS OS_2"); 
    125             writer.println("1211071 OS OS_3"); 
    126             writer.println("1211072 OS OS_4"); 
    127             writer.println("1211073 OS OS_5"); 
     49            writer = new PrintWriter(new FileWriter("test/atmsdriver/postmiles3.txt")); 
     50            writer.println("73 N 23.9,33.643656,-117.859875,BISON 2,0.976131,0.217185"); 
     51            writer.println("55 S 6.88,33.697495,-117.862677,MACARTHU1,-0.710326,0.703873"); 
     52            writer.println("5 N 5.73,33.458342,-117.655008,ESTRELLA1,0,0"); 
     53            writer.println("5 N 6.47,33.464404,-117.665509,SACRAMENTO,0.523797,0.851843"); 
     54            writer.println("405 N 6.21,33.672851,-117.832271,HARVARD,0.320278,0.947323"); 
     55            writer.println("405 S 6.8,33.675863,-117.84179,JAMBOREE1,-0.402558,-0.915394"); 
    12856            writer.close(); 
    12957        } catch (Exception e) { 
     
    13563    protected void tearDown() throws Exception { 
    13664        super.tearDown(); 
    137         Path path = FileSystems.getDefault().getPath("test/atmsdriver/model", "ldssample.txt"); 
     65        Path path = FileSystems.getDefault().getPath("test/atmsdriver", "postmiles1.txt"); 
    13866        Files.delete(path); 
    139         path = FileSystems.getDefault().getPath("test/atmsdriver/model", "ldssample2.txt"); 
     67        path = FileSystems.getDefault().getPath("test/atmsdriver", "postmiles2.txt"); 
    14068        Files.delete(path); 
    141         path = FileSystems.getDefault().getPath("test/atmsdriver/model", "ldssample3.txt"); 
     69        path = FileSystems.getDefault().getPath("test/atmsdriver", "postmiles3.txt"); 
    14270        Files.delete(path); 
    14371    } 
    14472 
    145     public void testFindStation() 
    146     { 
     73    public void testFindStation() { 
    14774        System.out.println("test FindStation()"); 
    14875        Highways highways = new Highways( 
    149                 "test/atmsdriver/model/ldssample.txt", 
    150                 "localhost", 8080); 
     76                "test/atmsdriver/postmiles1.txt"); 
    15177        assertTrue(null != highways.findStation(5, DIRECTION.SOUTH, 0.9)); 
    15278        assertTrue(null != highways.findStation(5, DIRECTION.SOUTH, 1.49)); 
    153         assertTrue(null != highways.findStation(5, DIRECTION.NORTH, 1.26)); 
    154         assertTrue(null == highways.findStation(5, DIRECTION.SOUTH, 1.1)); 
    155     } 
     79        assertTrue(null != highways.findStation(5, DIRECTION.NORTH, 1.24)); 
     80    } 
     81 
    15682    /** 
    15783     * Test of toString method 
     
    16086        System.out.println("toString"); 
    16187        Highways highways = new Highways( 
    162                 "config/vds_data/highways_fullmap.txt", 
    163                 "localhost", 8080); 
     88                "test/atmsdriver/postmiles2.txt"); 
    16489        highways.getHighwayByRouteNumber(5).stations.get(0).loops.get(0).vol = 1; 
    16590        String result = highways.toString(); 
    16691        String[] resultLines = result.split("\n"); 
    167         String actual = resultLines[3].substring(0,9); 
    168         assertEquals("  5 S @.-",actual); 
    169         highways.applyColorToHighwayStretch(241, Station.DIRECTION.NORTH, 18.8, 0.8,  
    170                 LoopDetector.DOTCOLOR.RED); 
    171         result = highways.toString(); 
    172         System.out.println("bravo:\n"+result); 
    173         assertEquals("241 N -@.@@.-",result.substring(0,13)); 
    174         highways.applyColorToHighwayStretch(241, Station.DIRECTION.SOUTH, 18.8, 2.0,  
     92        String actual = resultLines[0]; 
     93        assertEquals("  5 N @.-.-.-", actual); 
     94        highways.applyColorToHighwayStretch(5, Station.DIRECTION.NORTH, 7.99, 2.0, 
    17595                LoopDetector.DOTCOLOR.YELLOW); 
    17696        result = highways.toString(); 
    177         System.out.println("charly:\n"+result); 
    178         resultLines = result.split("\n"); 
    179         actual = resultLines[1].substring(0,16); 
    180         assertEquals("241 S ..-..+.++.",actual); 
    181     } 
    182  
     97        System.out.println("bravo:\n" + result); 
     98        assertEquals("5 N @.+.+.+\n  5 S .-.-.-.", result.trim()); 
     99        highways.applyColorToHighwayStretch(5, Station.DIRECTION.SOUTH, 6.47, 1.51, 
     100                LoopDetector.DOTCOLOR.YELLOW); 
     101        result = highways.toString(); 
     102        System.out.println("charly:\n" + result); 
     103        actual = result.trim(); 
     104        assertEquals("5 N @.+.+.+\n  5 S .+.+.-.", actual); 
     105    } 
    183106 
    184107    public void testToJson() throws ParseException { 
    185108        System.out.println("toJson"); 
    186109        Highways highways = new Highways( 
    187                 "test/atmsdriver/model/ldssample.txt", 
    188                 "localhost", 8080); 
     110                "test/atmsdriver/postmiles1.txt"); 
    189111        String result = highways.toJson(); 
    190112        System.out.println(result); 
     
    193115        JSONObject obj = (JSONObject) parser.parse(result); 
    194116        System.out.println(obj); 
    195         JSONArray array = (JSONArray)obj.get("features"); 
    196         JSONObject item1 = (JSONObject)array.get(0); 
     117        JSONArray array = (JSONArray) obj.get("features"); 
     118        JSONObject item1 = (JSONObject) array.get(0); 
    197119        String id1 = (String) item1.get("id"); 
    198         JSONObject item2 = (JSONObject)array.get(1); 
     120        JSONObject item2 = (JSONObject) array.get(1); 
    199121        String id2 = (String) item2.get("id"); 
    200         JSONObject item3 = (JSONObject)array.get(2); 
     122        JSONObject item3 = (JSONObject) array.get(2); 
    201123        String id3 = (String) item3.get("id"); 
    202         assertEquals("5 N 1.26", id1); 
     124        assertEquals("5 N 1.24", id1); 
    203125        assertEquals("5 S 0.9", id2); 
    204126        assertEquals("5 S 1.49", id3); 
    205127    } 
     128 
    206129    public void testStationSort() throws ParseException { 
    207130        System.out.println("stationSort"); 
    208131        Highways highways = new Highways( 
    209                 "test/atmsdriver/model/ldssample2.txt", 
    210                 "localhost", 8080); 
     132                "test/atmsdriver/postmiles3.txt"); 
    211133        String result = highways.toJson(); 
    212134        JSONParser parser = new JSONParser(); 
    213135        JSONObject obj = (JSONObject) parser.parse(result); 
    214         JSONArray array = (JSONArray)obj.get("features"); 
    215         JSONObject item1 = (JSONObject)array.get(0); 
     136        JSONArray array = (JSONArray) obj.get("features"); 
     137        JSONObject item1 = (JSONObject) array.get(0); 
    216138        String id1 = (String) item1.get("id"); 
    217         JSONObject item2 = (JSONObject)array.get(1); 
     139        JSONObject item2 = (JSONObject) array.get(1); 
    218140        String id2 = (String) item2.get("id"); 
    219         JSONObject item3 = (JSONObject)array.get(2); 
     141        JSONObject item3 = (JSONObject) array.get(2); 
    220142        String id3 = (String) item3.get("id"); 
    221143        assertEquals("5 N 5.73", id1); 
    222144        assertEquals("5 N 6.47", id2); 
    223         assertEquals("5 N 7.46", id3); 
    224         JSONObject item4 = (JSONObject)array.get(3); 
     145        assertEquals("55 S 6.88", id3); 
     146        JSONObject item4 = (JSONObject) array.get(3); 
    225147        String id4 = (String) item4.get("id"); 
    226         JSONObject item5 = (JSONObject)array.get(4); 
     148        JSONObject item5 = (JSONObject) array.get(4); 
    227149        String id5 = (String) item5.get("id"); 
    228         assertEquals("5 S 6.47", id4); 
    229         assertEquals("5 S 7.46", id5); 
    230     } 
     150        assertEquals("73 N 23.9", id4); 
     151        assertEquals("405 N 6.21", id5); 
     152    } 
     153 
    231154    public void testRouteSort() throws ParseException { 
    232155        System.out.println("routeSort"); 
    233156        Highways highways = new Highways( 
    234                 "test/atmsdriver/model/ldssample3.txt", 
    235                 "localhost", 8080); 
     157                "test/atmsdriver/postmiles3.txt"); 
    236158        String result = highways.toJson(); 
    237159        JSONParser parser = new JSONParser(); 
    238160        JSONObject obj = (JSONObject) parser.parse(result); 
    239         JSONArray array = (JSONArray)obj.get("features"); 
    240         JSONObject item1 = (JSONObject)array.get(0); 
     161        JSONArray array = (JSONArray) obj.get("features"); 
     162        JSONObject item1 = (JSONObject) array.get(0); 
    241163        String id1 = (String) item1.get("id"); 
    242         JSONObject item2 = (JSONObject)array.get(1); 
     164        JSONObject item2 = (JSONObject) array.get(1); 
    243165        String id2 = (String) item2.get("id"); 
    244         JSONObject item3 = (JSONObject)array.get(2); 
     166        JSONObject item3 = (JSONObject) array.get(2); 
    245167        String id3 = (String) item3.get("id"); 
    246         JSONObject item4 = (JSONObject)array.get(3); 
     168        JSONObject item4 = (JSONObject) array.get(3); 
    247169        String id4 = (String) item4.get("id"); 
    248         JSONObject item5 = (JSONObject)array.get(4); 
     170        JSONObject item5 = (JSONObject) array.get(4); 
    249171        String id5 = (String) item5.get("id"); 
    250172        assertEquals("5 N 5.73", id1); 
     
    254176        assertEquals("405 N 6.21", id5); 
    255177    } 
    256     
    257     public void testApplyColor() 
    258     { 
     178 
     179    public void testApplyColor() { 
    259180        System.out.println("apply color"); 
    260181        Highways highways = new Highways( 
    261             "test/atmsdriver/model/ldssample.txt", 
    262             "localhost", 8080); 
    263         highways.applyColorToHighwayStretch(5, Station.DIRECTION.SOUTH, 0.9, 2.0,  
     182                "test/atmsdriver/postmiles1.txt"); 
     183        highways.applyColorToHighwayStretch(5, Station.DIRECTION.SOUTH, 0.9, 2.0, 
    264184                LoopDetector.DOTCOLOR.RED); 
    265185        Station target = highways.findStation(5, DIRECTION.SOUTH, 0.9); 
    266         assertEquals('@',target.getColor()); 
     186        assertEquals('@', target.getColor().symbol()); 
    267187        String result = highways.toString(); 
    268         System.out.println("applyto:\n"+result); 
     188        System.out.println("applyto:\n" + result); 
    269189        assertEquals("5 N .-.\n  5 S @.@", result.trim()); 
    270          
    271         highways.applyColorToHighwayStretch(5, Station.DIRECTION.SOUTH, 1.49, 2.0,  
     190 
     191        highways.applyColorToHighwayStretch(5, Station.DIRECTION.SOUTH, 1.49, 2.0, 
    272192                LoopDetector.DOTCOLOR.YELLOW); 
    273193        result = highways.toString(); 
    274194        assertEquals("5 N .-.\n  5 S @.+", result.trim()); 
    275          
    276         highways.applyColorToHighwayStretch(5, Station.DIRECTION.SOUTH, 1.49, 0.59,  
     195 
     196        highways.applyColorToHighwayStretch(5, Station.DIRECTION.SOUTH, 1.49, 0.59, 
    277197                LoopDetector.DOTCOLOR.GREEN); 
    278198        result = highways.toString(); 
    279199        assertEquals("5 N .-.\n  5 S @.-", result.trim()); 
    280200 
    281         highways.applyColorToHighwayStretch(5, Station.DIRECTION.NORTH, 1.83, 2.0,  
     201        highways.applyColorToHighwayStretch(5, Station.DIRECTION.NORTH, 1.83, 2.0, 
    282202                LoopDetector.DOTCOLOR.RED); 
    283203        result = highways.toString(); 
    284204        assertEquals("5 N .@.\n  5 S @.-", result.trim()); 
    285          
     205 
    286206        //highways.applyColorToHighwayStretch(241, Station.DIRECTION.NORTH, 20.13, 4.0, LoopDetector.DOTCOLOR.RED); 
    287207        //result = highways.toString(); 
    288208        //assertTrue(result.length()>0); //"241 N @@ @@@@@-",result.substring(0,15)); 
    289  
    290     }             
    291      
    292     public void testToCondensedFormat() 
    293     { 
    294         System.out.println("ToCondensedFormat"); 
    295         Highways highways = new Highways( 
    296                 "test/atmsdriver/model/ldssample.txt", 
    297                 "localhost", 8080); 
    298  
    299         String actualCondensedFormatMeta = highways.toCondensedFormat(true); 
    300         String actualCondensedFormatFEP = highways.toCondensedFormat(false); 
    301         System.out.println(actualCondensedFormatMeta); 
    302          
    303         assertEquals(expectedCondensedFormatFEP, actualCondensedFormatFEP); 
    304         assertEquals(expectedCondensedFormatMeta, actualCondensedFormatMeta); 
    305     } 
    306     String expectedCondensedFormatMeta =  
    307             "2\n" + 
    308             "32 0 2\n" + 
    309             "1210831 1 5 S 0.9 4 CALAFIA\n" + 
    310             "1210832 ML ML_1\n" + 
    311             "1210833 ML ML_2\n" + 
    312             "1210834 ML ML_3\n" + 
    313             "1210835 ML ML_4\n" + 
    314             "1210845 2 5 S 1.49 4 EL CAMINO REAL\n" + 
    315             "1210846 ML ML_1\n" + 
    316             "1210847 ML ML_2\n" + 
    317             "1210848 ML ML_3\n" + 
    318             "1210849 ML ML_4\n" + 
    319             "74 0 1\n" + 
    320             "1204203 2 5 N 1.26 4 MAGDALENA\n" + 
    321             "1204212 ML ML_1\n" + 
    322             "1204213 ML ML_2\n" + 
    323             "1204214 ML ML_3\n" + 
    324             "1204215 ML ML_4\n"; 
    325     String expectedCondensedFormatFEP =  
    326             "2\n" + 
    327             "32 0 2\n" + 
    328             "1210831 1 5 S 0.9 4 \n" + 
    329             "1210832  0.0 0 ML_1\n" + 
    330             "1210833  0.0 0 ML_2\n" + 
    331             "1210834  0.0 0 ML_3\n" + 
    332             "1210835  0.0 0 ML_4\n" + 
    333             "1210845 2 5 S 1.49 4 \n" + 
    334             "1210846  0.0 0 ML_1\n" + 
    335             "1210847  0.0 0 ML_2\n" + 
    336             "1210848  0.0 0 ML_3\n" + 
    337             "1210849  0.0 0 ML_4\n" + 
    338             "74 0 1\n" + 
    339             "1204203 2 5 N 1.26 4 \n" + 
    340             "1204212  0.0 0 ML_1\n" + 
    341             "1204213  0.0 0 ML_2\n" + 
    342             "1204214  0.0 0 ML_3\n" + 
    343             "1204215  0.0 0 ML_4\n"; 
    344      
     209                 
     210        highways.reset(); 
     211        result = highways.toString(); 
     212        assertEquals("5 N .-.\n  5 S -.-", result.trim()); 
     213    } 
     214 
     215 
    345216} 
Note: See TracChangeset for help on using the changeset viewer.