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

Revision 248, 15.2 KB checked in by jdalbey, 7 years ago (diff)

TrafficModelManager?: multi-file commit to enhance Traffic Mgr to output highway status to json file for viewing in Google Map.

Line 
1package atmsdriver.model;
2
3import atmsdriver.ATMSDriver;
4import java.io.File;
5import java.io.FileWriter;
6import java.io.PrintWriter;
7import java.nio.file.FileSystems;
8import java.nio.file.Files;
9import java.nio.file.Path;
10import junit.framework.TestCase;
11
12/**
13 *
14 * @author jdalbey
15 */
16public class HighwaysTest extends TestCase {
17
18    public HighwaysTest(String testName) {
19        super(testName);
20    }
21
22    @Override
23    protected void setUp() throws Exception {
24        super.setUp();
25        PrintWriter writer = null;
26        try {
27            writer = new PrintWriter(new FileWriter("test/atmsdriver/model/ldssample.txt"));
28            writer.println("2");
29            writer.println("32 0 2");
30            writer.println("1210831 1 5 S 0.9 8 CALAFIA");
31            writer.println("1210832 ML ML_1");
32            writer.println("1210833 ML ML_2");
33            writer.println("1210834 ML ML_3");
34            writer.println("1210835 ML ML_4");
35            writer.println("1210836 PA PASSAGE");
36            writer.println("1210837 DM DEMAND");
37            writer.println("1210838 QU QUEUE");
38            writer.println("1210839 FR RAMP_OFF");
39            writer.println("1210845 2 5 S 1.49 9 EL CAMINO REAL");
40            writer.println("1210846 ML ML_1");
41            writer.println("1210847 ML ML_2");
42            writer.println("1210848 ML ML_3");
43            writer.println("1210849 ML ML_4");
44            writer.println("1210850 OR RAMP_ON");
45            writer.println("1210851 PA PASSAGE");
46            writer.println("1210853 DM DEMAND");
47            writer.println("1210854 QU QUEUE");
48            writer.println("1210855 FR RAMP_OFF");
49            writer.println("74 0 1");
50            writer.println("1204203 2 5 N 1.26 13 MAGDALENA");
51            writer.println("1204205 OR RAMP_ON");
52            writer.println("1204206 QU QUEUE");
53            writer.println("1204207 DM DEMAND");
54            writer.println("1204208 PA PASSAGE");
55            writer.println("1204210 FR RAMP_OFF");
56            writer.println("1204212 ML ML_1");
57            writer.println("1204213 ML ML_2");
58            writer.println("1204214 ML ML_3");
59            writer.println("1204215 ML ML_4");
60            writer.println("1204217 OS OS_1");
61            writer.println("1204218 OS OS_2");
62            writer.println("1204219 OS OS_3");
63            writer.println("1204220 OS OS_4");
64            writer.close();
65        } catch (Exception e) {
66            e.printStackTrace();
67        }
68    }
69
70    @Override
71    protected void tearDown() throws Exception {
72        super.tearDown();
73        Path path = FileSystems.getDefault().getPath("test/atmsdriver/model", "ldssample.txt");
74        Files.delete(path);
75    }
76
77    /**
78     * Test of toString method
79     */
80    public void testToString() {
81        System.out.println("toString");
82        Highways highways = new Highways(
83                "config/vds_data/highways_fullmap.txt",
84                "localhost", 8080);
85        highways.getHighwayByRouteNumber(5).stations.get(0).loops.get(0).vol = 1;
86        String result = highways.toString();
87        System.out.println(result);
88        assertTrue(result.startsWith(expToString1));
89    }
90    String expToString1 = 
91    "241 N -- ------ -- ------- -------------------------------------  \n" +
92"241 S   - --- --  --------- ------------------------------------  \n" +
93"  5 N  - - ------ ---  --- -- --- ----  - -- - -  -- - - -    -- -- - ---- -- -- --- - - -- -  ----- ----- --- -  - -- --  - - ---- - - - ------- \n" +
94"  5 S @--";
95
96    public void testToJson() {
97        System.out.println("toJson");
98        Highways highways = new Highways(
99                "test/atmsdriver/model/ldssample.txt",
100                "localhost", 8080);
101        //highways.getHighwayByRouteNumber(5).stations.get(0).loops.get(0).vol = 1;
102        String result = highways.toJson();
103        System.out.println(result);
104        assertTrue(result.indexOf("33.416348") > 0);
105    }
106   
107
108   
109    public void testToCondensedFormat()
110    {
111        System.out.println("ToCondensedFormat");
112        Highways highways = new Highways(
113                "test/atmsdriver/model/ldssample.txt",
114                "localhost", 8080);
115
116        String actualCondensedFormatMeta = highways.toCondensedFormat(true);
117        String actualCondensedFormatFEP = highways.toCondensedFormat(false);
118       
119        assertEquals(expectedCondensedFormatFEP, actualCondensedFormatFEP);
120        assertEquals(expectedCondensedFormatMeta, actualCondensedFormatMeta);
121    }
122    String expectedCondensedFormatMeta = 
123            "2\n" +
124            "32 0 2\n" +
125            "1210831 1 5 S 0.9 8 CALAFIA\n" +
126            "1210832 ML_1\n" +
127            "1210833 ML_2\n" +
128            "1210834 ML_3\n" +
129            "1210835 ML_4\n" +
130            "1210836 PASSAGE\n" +
131            "1210837 DEMAND\n" +
132            "1210838 QUEUE\n" +
133            "1210839 RAMP_OFF\n" +
134            "1210845 2 5 S 1.49 9 EL CAMINO REAL\n" +
135            "1210846 ML_1\n" +
136            "1210847 ML_2\n" +
137            "1210848 ML_3\n" +
138            "1210849 ML_4\n" +
139            "1210850 RAMP_ON\n" +
140            "1210851 PASSAGE\n" +
141            "1210853 DEMAND\n" +
142            "1210854 QUEUE\n" +
143            "1210855 RAMP_OFF\n" +
144            "74 0 1\n" +
145            "1204203 2 5 N 1.26 13 MAGDALENA\n" +
146            "1204205 RAMP_ON\n" +
147            "1204206 QUEUE\n" +
148            "1204207 DEMAND\n" +
149            "1204208 PASSAGE\n" +
150            "1204210 RAMP_OFF\n" +
151            "1204212 ML_1\n" +
152            "1204213 ML_2\n" +
153            "1204214 ML_3\n" +
154            "1204215 ML_4\n" +
155            "1204217 OS_1\n" +
156            "1204218 OS_2\n" +
157            "1204219 OS_3\n" +
158            "1204220 OS_4\n";
159    String expectedCondensedFormatFEP = 
160            "2\n" +
161            "32 0 2\n" +
162            "1210831 1 5 S 0.9 8 \n" +
163            "1210832  0.0 0 ML_1\n" +
164            "1210833  0.0 0 ML_2\n" +
165            "1210834  0.0 0 ML_3\n" +
166            "1210835  0.0 0 ML_4\n" +
167            "1210836  0.0 0 PASSAGE\n" +
168            "1210837  0.0 0 DEMAND\n" +
169            "1210838  0.0 0 QUEUE\n" +
170            "1210839  0.0 0 RAMP_OFF\n" +
171            "1210845 2 5 S 1.49 9 \n" +
172            "1210846  0.0 0 ML_1\n" +
173            "1210847  0.0 0 ML_2\n" +
174            "1210848  0.0 0 ML_3\n" +
175            "1210849  0.0 0 ML_4\n" +
176            "1210850  0.0 0 RAMP_ON\n" +
177            "1210851  0.0 0 PASSAGE\n" +
178            "1210853  0.0 0 DEMAND\n" +
179            "1210854  0.0 0 QUEUE\n" +
180            "1210855  0.0 0 RAMP_OFF\n" +
181            "74 0 1\n" +
182            "1204203 2 5 N 1.26 13 \n" +
183            "1204205  0.0 0 RAMP_ON\n" +
184            "1204206  0.0 0 QUEUE\n" +
185            "1204207  0.0 0 DEMAND\n" +
186            "1204208  0.0 0 PASSAGE\n" +
187            "1204210  0.0 0 RAMP_OFF\n" +
188            "1204212  0.0 0 ML_1\n" +
189            "1204213  0.0 0 ML_2\n" +
190            "1204214  0.0 0 ML_3\n" +
191            "1204215  0.0 0 ML_4\n" +
192            "1204217  0.0 0 OS_1\n" +
193            "1204218  0.0 0 OS_2\n" +
194            "1204219  0.0 0 OS_3\n" +
195            "1204220  0.0 0 OS_4\n";
196   
197    /**
198     * Test of toXML method
199     */
200    public void testToXML() {
201        System.out.println("toXML");
202        Highways highways = new Highways(
203                "test/atmsdriver/model/ldssample.txt",
204                "localhost", 8080);
205        String result = highways.toXML();
206        assertEquals(expXMLResult, result);
207    }
208String expXMLResult =
209"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
210"<Network>\n" +
211"  <Line>\n" +
212"    <Line_Num>32</Line_Num>\n" +
213"    <Count>0</Count>\n" +
214"    <Stations>\n" +
215"      <Station>\n" +
216"        <LDS_ID>1210831</LDS_ID>\n" +
217"        <Line_Num>32</Line_Num>\n" +
218"        <Drop>1</Drop>\n" +
219"        <Location>CALAFIA</Location>\n" +
220"        <Post_Mile>0.9</Post_Mile>\n" +
221"        <Direction>S</Direction>\n" +
222"        <Freeway>5</Freeway>\n" +
223"        <ML_Tot_Vol>0</ML_Tot_Vol>\n" +
224"        <Opp_Tot_Vol>0</Opp_Tot_Vol>\n" +
225"        <Loops>\n" +
226"          <Loop>\n" +
227"            <Loop_ID>1210832</Loop_ID>\n" +
228"            <Loop_Location>ML_1</Loop_Location>\n" +
229"            <Vol>0</Vol>\n" +
230"            <Occ>0.0</Occ>\n" +
231"          </Loop>\n" +
232"          <Loop>\n" +
233"            <Loop_ID>1210833</Loop_ID>\n" +
234"            <Loop_Location>ML_2</Loop_Location>\n" +
235"            <Vol>0</Vol>\n" +
236"            <Occ>0.0</Occ>\n" +
237"          </Loop>\n" +
238"          <Loop>\n" +
239"            <Loop_ID>1210834</Loop_ID>\n" +
240"            <Loop_Location>ML_3</Loop_Location>\n" +
241"            <Vol>0</Vol>\n" +
242"            <Occ>0.0</Occ>\n" +
243"          </Loop>\n" +
244"          <Loop>\n" +
245"            <Loop_ID>1210835</Loop_ID>\n" +
246"            <Loop_Location>ML_4</Loop_Location>\n" +
247"            <Vol>0</Vol>\n" +
248"            <Occ>0.0</Occ>\n" +
249"          </Loop>\n" +
250"          <Loop>\n" +
251"            <Loop_ID>1210836</Loop_ID>\n" +
252"            <Loop_Location>PASSAGE</Loop_Location>\n" +
253"            <Vol>0</Vol>\n" +
254"            <Occ>0.0</Occ>\n" +
255"          </Loop>\n" +
256"          <Loop>\n" +
257"            <Loop_ID>1210837</Loop_ID>\n" +
258"            <Loop_Location>DEMAND</Loop_Location>\n" +
259"            <Vol>0</Vol>\n" +
260"            <Occ>0.0</Occ>\n" +
261"          </Loop>\n" +
262"          <Loop>\n" +
263"            <Loop_ID>1210838</Loop_ID>\n" +
264"            <Loop_Location>QUEUE</Loop_Location>\n" +
265"            <Vol>0</Vol>\n" +
266"            <Occ>0.0</Occ>\n" +
267"          </Loop>\n" +
268"          <Loop>\n" +
269"            <Loop_ID>1210839</Loop_ID>\n" +
270"            <Loop_Location>RAMP_OFF</Loop_Location>\n" +
271"            <Vol>0</Vol>\n" +
272"            <Occ>0.0</Occ>\n" +
273"          </Loop>\n" +
274"        </Loops>\n" +
275"      </Station>\n" +
276"      <Station>\n" +
277"        <LDS_ID>1210845</LDS_ID>\n" +
278"        <Line_Num>32</Line_Num>\n" +
279"        <Drop>2</Drop>\n" +
280"        <Location>EL CAMINO REAL</Location>\n" +
281"        <Post_Mile>1.49</Post_Mile>\n" +
282"        <Direction>S</Direction>\n" +
283"        <Freeway>5</Freeway>\n" +
284"        <ML_Tot_Vol>0</ML_Tot_Vol>\n" +
285"        <Opp_Tot_Vol>0</Opp_Tot_Vol>\n" +
286"        <Loops>\n" +
287"          <Loop>\n" +
288"            <Loop_ID>1210846</Loop_ID>\n" +
289"            <Loop_Location>ML_1</Loop_Location>\n" +
290"            <Vol>0</Vol>\n" +
291"            <Occ>0.0</Occ>\n" +
292"          </Loop>\n" +
293"          <Loop>\n" +
294"            <Loop_ID>1210847</Loop_ID>\n" +
295"            <Loop_Location>ML_2</Loop_Location>\n" +
296"            <Vol>0</Vol>\n" +
297"            <Occ>0.0</Occ>\n" +
298"          </Loop>\n" +
299"          <Loop>\n" +
300"            <Loop_ID>1210848</Loop_ID>\n" +
301"            <Loop_Location>ML_3</Loop_Location>\n" +
302"            <Vol>0</Vol>\n" +
303"            <Occ>0.0</Occ>\n" +
304"          </Loop>\n" +
305"          <Loop>\n" +
306"            <Loop_ID>1210849</Loop_ID>\n" +
307"            <Loop_Location>ML_4</Loop_Location>\n" +
308"            <Vol>0</Vol>\n" +
309"            <Occ>0.0</Occ>\n" +
310"          </Loop>\n" +
311"          <Loop>\n" +
312"            <Loop_ID>1210850</Loop_ID>\n" +
313"            <Loop_Location>RAMP_ON</Loop_Location>\n" +
314"            <Vol>0</Vol>\n" +
315"            <Occ>0.0</Occ>\n" +
316"          </Loop>\n" +
317"          <Loop>\n" +
318"            <Loop_ID>1210851</Loop_ID>\n" +
319"            <Loop_Location>PASSAGE</Loop_Location>\n" +
320"            <Vol>0</Vol>\n" +
321"            <Occ>0.0</Occ>\n" +
322"          </Loop>\n" +
323"          <Loop>\n" +
324"            <Loop_ID>1210853</Loop_ID>\n" +
325"            <Loop_Location>DEMAND</Loop_Location>\n" +
326"            <Vol>0</Vol>\n" +
327"            <Occ>0.0</Occ>\n" +
328"          </Loop>\n" +
329"          <Loop>\n" +
330"            <Loop_ID>1210854</Loop_ID>\n" +
331"            <Loop_Location>QUEUE</Loop_Location>\n" +
332"            <Vol>0</Vol>\n" +
333"            <Occ>0.0</Occ>\n" +
334"          </Loop>\n" +
335"          <Loop>\n" +
336"            <Loop_ID>1210855</Loop_ID>\n" +
337"            <Loop_Location>RAMP_OFF</Loop_Location>\n" +
338"            <Vol>0</Vol>\n" +
339"            <Occ>0.0</Occ>\n" +
340"          </Loop>\n" +
341"        </Loops>\n" +
342"      </Station>\n" +
343"    </Stations>\n" +
344"  </Line>\n" +
345"  <Line>\n" +
346"    <Line_Num>74</Line_Num>\n" +
347"    <Count>0</Count>\n" +
348"    <Stations>\n" +
349"      <Station>\n" +
350"        <LDS_ID>1204203</LDS_ID>\n" +
351"        <Line_Num>74</Line_Num>\n" +
352"        <Drop>2</Drop>\n" +
353"        <Location>MAGDALENA</Location>\n" +
354"        <Post_Mile>1.26</Post_Mile>\n" +
355"        <Direction>N</Direction>\n" +
356"        <Freeway>5</Freeway>\n" +
357"        <ML_Tot_Vol>0</ML_Tot_Vol>\n" +
358"        <Opp_Tot_Vol>0</Opp_Tot_Vol>\n" +
359"        <Loops>\n" +
360"          <Loop>\n" +
361"            <Loop_ID>1204205</Loop_ID>\n" +
362"            <Loop_Location>RAMP_ON</Loop_Location>\n" +
363"            <Vol>0</Vol>\n" +
364"            <Occ>0.0</Occ>\n" +
365"          </Loop>\n" +
366"          <Loop>\n" +
367"            <Loop_ID>1204206</Loop_ID>\n" +
368"            <Loop_Location>QUEUE</Loop_Location>\n" +
369"            <Vol>0</Vol>\n" +
370"            <Occ>0.0</Occ>\n" +
371"          </Loop>\n" +
372"          <Loop>\n" +
373"            <Loop_ID>1204207</Loop_ID>\n" +
374"            <Loop_Location>DEMAND</Loop_Location>\n" +
375"            <Vol>0</Vol>\n" +
376"            <Occ>0.0</Occ>\n" +
377"          </Loop>\n" +
378"          <Loop>\n" +
379"            <Loop_ID>1204208</Loop_ID>\n" +
380"            <Loop_Location>PASSAGE</Loop_Location>\n" +
381"            <Vol>0</Vol>\n" +
382"            <Occ>0.0</Occ>\n" +
383"          </Loop>\n" +
384"          <Loop>\n" +
385"            <Loop_ID>1204210</Loop_ID>\n" +
386"            <Loop_Location>RAMP_OFF</Loop_Location>\n" +
387"            <Vol>0</Vol>\n" +
388"            <Occ>0.0</Occ>\n" +
389"          </Loop>\n" +
390"          <Loop>\n" +
391"            <Loop_ID>1204212</Loop_ID>\n" +
392"            <Loop_Location>ML_1</Loop_Location>\n" +
393"            <Vol>0</Vol>\n" +
394"            <Occ>0.0</Occ>\n" +
395"          </Loop>\n" +
396"          <Loop>\n" +
397"            <Loop_ID>1204213</Loop_ID>\n" +
398"            <Loop_Location>ML_2</Loop_Location>\n" +
399"            <Vol>0</Vol>\n" +
400"            <Occ>0.0</Occ>\n" +
401"          </Loop>\n" +
402"          <Loop>\n" +
403"            <Loop_ID>1204214</Loop_ID>\n" +
404"            <Loop_Location>ML_3</Loop_Location>\n" +
405"            <Vol>0</Vol>\n" +
406"            <Occ>0.0</Occ>\n" +
407"          </Loop>\n" +
408"          <Loop>\n" +
409"            <Loop_ID>1204215</Loop_ID>\n" +
410"            <Loop_Location>ML_4</Loop_Location>\n" +
411"            <Vol>0</Vol>\n" +
412"            <Occ>0.0</Occ>\n" +
413"          </Loop>\n" +
414"          <Loop>\n" +
415"            <Loop_ID>1204217</Loop_ID>\n" +
416"            <Loop_Location>OS_1</Loop_Location>\n" +
417"            <Vol>0</Vol>\n" +
418"            <Occ>0.0</Occ>\n" +
419"          </Loop>\n" +
420"          <Loop>\n" +
421"            <Loop_ID>1204218</Loop_ID>\n" +
422"            <Loop_Location>OS_2</Loop_Location>\n" +
423"            <Vol>0</Vol>\n" +
424"            <Occ>0.0</Occ>\n" +
425"          </Loop>\n" +
426"          <Loop>\n" +
427"            <Loop_ID>1204219</Loop_ID>\n" +
428"            <Loop_Location>OS_3</Loop_Location>\n" +
429"            <Vol>0</Vol>\n" +
430"            <Occ>0.0</Occ>\n" +
431"          </Loop>\n" +
432"          <Loop>\n" +
433"            <Loop_ID>1204220</Loop_ID>\n" +
434"            <Loop_Location>OS_4</Loop_Location>\n" +
435"            <Vol>0</Vol>\n" +
436"            <Occ>0.0</Occ>\n" +
437"          </Loop>\n" +
438"        </Loops>\n" +
439"      </Station>\n" +
440"    </Stations>\n" +
441"  </Line>\n" +
442"</Network>\n";
443}
Note: See TracBrowser for help on using the repository browser.