source: tmcsimulator/trunk/test/atmsdriver/model/HighwaysTest.java @ 354

Revision 354, 14.2 KB checked in by jdalbey, 7 years ago (diff)

HighwaysTest?.java updated to include test for station sorting.

Line 
1package atmsdriver.model;
2
3import archive.ATMSDriver;
4import atmsdriver.model.LoopDetector.DOTCOLOR;
5import atmsdriver.model.Station.DIRECTION;
6import java.io.File;
7import java.io.FileWriter;
8import java.io.PrintWriter;
9import java.nio.file.FileSystems;
10import java.nio.file.Files;
11import java.nio.file.Path;
12import junit.framework.TestCase;
13import org.json.simple.JSONArray;
14import org.json.simple.JSONObject;
15import org.json.simple.parser.JSONParser;
16import org.json.simple.parser.ParseException;
17
18/**
19 *
20 * @author jdalbey
21 */
22public class HighwaysTest extends TestCase {
23
24    public HighwaysTest(String testName) {
25        super(testName);
26    }
27
28    @Override
29    protected void setUp() throws Exception {
30        super.setUp();
31        PrintWriter writer = null;
32        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");
52            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");
90            writer.close();
91
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");
128            writer.close();
129        } catch (Exception e) {
130            e.printStackTrace();
131        }
132    }
133
134    @Override
135    protected void tearDown() throws Exception {
136        super.tearDown();
137        Path path = FileSystems.getDefault().getPath("test/atmsdriver/model", "ldssample.txt");
138        Files.delete(path);
139        path = FileSystems.getDefault().getPath("test/atmsdriver/model", "ldssample2.txt");
140        Files.delete(path);
141        path = FileSystems.getDefault().getPath("test/atmsdriver/model", "ldssample3.txt");
142        Files.delete(path);
143    }
144
145    public void testFindStation()
146    {
147        System.out.println("test FindStation()");
148        Highways highways = new Highways(
149                "test/atmsdriver/model/ldssample.txt",
150                "localhost", 8080);
151        assertTrue(null != highways.findStation(5, DIRECTION.SOUTH, 0.9));
152        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    }
156    /**
157     * Test of toString method
158     */
159    public void testToString() {
160        System.out.println("toString");
161        Highways highways = new Highways(
162                "config/vds_data/highways_fullmap.txt",
163                "localhost", 8080);
164        highways.getHighwayByRouteNumber(5).stations.get(0).loops.get(0).vol = 1;
165        String result = highways.toString();
166        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, 
175                LoopDetector.DOTCOLOR.YELLOW);
176        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
183
184    public void testToJson() throws ParseException {
185        System.out.println("toJson");
186        Highways highways = new Highways(
187                "test/atmsdriver/model/ldssample.txt",
188                "localhost", 8080);
189        String result = highways.toJson();
190        System.out.println(result);
191        assertTrue(result.indexOf("33.416348") > 0);
192        JSONParser parser = new JSONParser();
193        JSONObject obj = (JSONObject) parser.parse(result);
194        System.out.println(obj);
195        JSONArray array = (JSONArray)obj.get("features");
196        JSONObject item1 = (JSONObject)array.get(0);
197        String id1 = (String) item1.get("id");
198        JSONObject item2 = (JSONObject)array.get(1);
199        String id2 = (String) item2.get("id");
200        JSONObject item3 = (JSONObject)array.get(2);
201        String id3 = (String) item3.get("id");
202        assertEquals("5 N 1.26", id1);
203        assertEquals("5 S 0.9", id2);
204        assertEquals("5 S 1.49", id3);
205    }
206    public void testStationSort() throws ParseException {
207        System.out.println("stationSort");
208        Highways highways = new Highways(
209                "test/atmsdriver/model/ldssample2.txt",
210                "localhost", 8080);
211        String result = highways.toJson();
212        JSONParser parser = new JSONParser();
213        JSONObject obj = (JSONObject) parser.parse(result);
214        JSONArray array = (JSONArray)obj.get("features");
215        JSONObject item1 = (JSONObject)array.get(0);
216        String id1 = (String) item1.get("id");
217        JSONObject item2 = (JSONObject)array.get(1);
218        String id2 = (String) item2.get("id");
219        JSONObject item3 = (JSONObject)array.get(2);
220        String id3 = (String) item3.get("id");
221        assertEquals("5 N 5.73", id1);
222        assertEquals("5 N 6.47", id2);
223        assertEquals("5 N 7.46", id3);
224        JSONObject item4 = (JSONObject)array.get(3);
225        String id4 = (String) item4.get("id");
226        JSONObject item5 = (JSONObject)array.get(4);
227        String id5 = (String) item5.get("id");
228        assertEquals("5 S 6.47", id4);
229        assertEquals("5 S 7.46", id5);
230    }
231    public void testRouteSort() throws ParseException {
232        System.out.println("routeSort");
233        Highways highways = new Highways(
234                "test/atmsdriver/model/ldssample3.txt",
235                "localhost", 8080);
236        String result = highways.toJson();
237        JSONParser parser = new JSONParser();
238        JSONObject obj = (JSONObject) parser.parse(result);
239        JSONArray array = (JSONArray)obj.get("features");
240        JSONObject item1 = (JSONObject)array.get(0);
241        String id1 = (String) item1.get("id");
242        JSONObject item2 = (JSONObject)array.get(1);
243        String id2 = (String) item2.get("id");
244        JSONObject item3 = (JSONObject)array.get(2);
245        String id3 = (String) item3.get("id");
246        JSONObject item4 = (JSONObject)array.get(3);
247        String id4 = (String) item4.get("id");
248        JSONObject item5 = (JSONObject)array.get(4);
249        String id5 = (String) item5.get("id");
250        assertEquals("5 N 5.73", id1);
251        assertEquals("5 N 6.47", id2);
252        assertEquals("55 S 6.88", id3);
253        assertEquals("73 N 23.9", id4);
254        assertEquals("405 N 6.21", id5);
255    }
256   
257    public void testApplyColor()
258    {
259        System.out.println("apply color");
260        Highways highways = new Highways(
261            "test/atmsdriver/model/ldssample.txt",
262            "localhost", 8080);
263        highways.applyColorToHighwayStretch(5, Station.DIRECTION.SOUTH, 0.9, 2.0, 
264                LoopDetector.DOTCOLOR.RED);
265        Station target = highways.findStation(5, DIRECTION.SOUTH, 0.9);
266        assertEquals('@',target.getColor());
267        String result = highways.toString();
268        System.out.println("applyto:\n"+result);
269        assertEquals("5 N .-.\n  5 S @.@", result.trim());
270       
271        highways.applyColorToHighwayStretch(5, Station.DIRECTION.SOUTH, 1.49, 2.0, 
272                LoopDetector.DOTCOLOR.YELLOW);
273        result = highways.toString();
274        assertEquals("5 N .-.\n  5 S @.+", result.trim());
275       
276        highways.applyColorToHighwayStretch(5, Station.DIRECTION.SOUTH, 1.49, 0.59, 
277                LoopDetector.DOTCOLOR.GREEN);
278        result = highways.toString();
279        assertEquals("5 N .-.\n  5 S @.-", result.trim());
280
281        highways.applyColorToHighwayStretch(5, Station.DIRECTION.NORTH, 1.83, 2.0, 
282                LoopDetector.DOTCOLOR.RED);
283        result = highways.toString();
284        assertEquals("5 N .@.\n  5 S @.-", result.trim());
285       
286        //highways.applyColorToHighwayStretch(241, Station.DIRECTION.NORTH, 20.13, 4.0, LoopDetector.DOTCOLOR.RED);
287        //result = highways.toString();
288        //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   
345}
Note: See TracBrowser for help on using the repository browser.