/** * This software was developed and / or modified by Raytheon Company, * pursuant to Contract DG133W-05-CQ-1067 with the US Government. * * U.S. EXPORT CONTROLLED TECHNICAL DATA * This software product contains export-restricted data whose * export/transfer/disclosure is restricted by U.S. law. Dissemination * to non-U.S. persons whether in the United States or abroad requires * an export license or other authorization. * * Contractor Name: Raytheon Company * Contractor Address: 6825 Pine Street, Suite 340 * Mail Stop B8 * Omaha, NE 68106 * 402.291.0100 * * See the AWIPS II Master Rights File ("Master Rights File.pdf") for * further licensing information. **/ package test.pirep; import java.util.List; import org.junit.Test; import static org.junit.Assert.*; import com.raytheon.edex.plugin.pirep.PirepSeparator; import com.raytheon.edex.plugin.pirep.decoder.PirepTools; import com.raytheon.edex.plugin.pirep.decoder.TEI; import com.raytheon.edex.plugin.pirep.decoder.TEIInfo; /** * Various unit tests for the TEIInfo parser class. * *
 * 
 * SOFTWARE HISTORY
 * 
 * Date         Ticket#    Engineer    Description
 * ------------ ---------- ----------- --------------------------
 * Aug 7, 2012            jkorman     Initial creation
 * 
 * 
* * @author jkorman * @version 1.0 */ public class TestTEIInfo { /** * Test that a legal PIREP is parsed correctly. */ @Test public void testParseNormal() { final String data = "LYH UA /OV LYH/TM 1226/FL210/TP P180/SK OVC100/WX FV99SM/TA 0/WV 27035KT/TB MDT/IC LGT RIME/RM CB W="; List parts = TEIInfo.findTEIs(data); assertNotNull(parts); assertEquals(12, parts.size()); assertEquals(TEI.PIREP, parts.get(0).getTei()); assertEquals(TEI.OV, parts.get(1).getTei()); assertEquals(TEI.TM, parts.get(2).getTei()); assertEquals(TEI.FL, parts.get(3).getTei()); assertEquals(TEI.TP, parts.get(4).getTei()); assertEquals(TEI.SK, parts.get(5).getTei()); assertEquals(TEI.WX, parts.get(6).getTei()); assertEquals(TEI.TA, parts.get(7).getTei()); assertEquals(TEI.WV, parts.get(8).getTei()); assertEquals(TEI.TB, parts.get(9).getTei()); assertEquals(TEI.IC, parts.get(10).getTei()); assertEquals(TEI.RM, parts.get(11).getTei()); } /** * Test that out of order elements are parsed correctly. */ @Test public void testParseBadOrder() { final String data = "LYH UA /OV LYH/TM 1226/FL210/SK OVC100/TP P180/WX FV99SM/TA 0/WV 27035KT/IC LGT RIME/TB MDT/RM CB W="; List parts = TEIInfo.findTEIs(data); assertNotNull(parts); assertEquals(12, parts.size()); assertEquals(TEI.PIREP, parts.get(0).getTei()); assertEquals(TEI.OV, parts.get(1).getTei()); assertEquals(TEI.TM, parts.get(2).getTei()); assertEquals(TEI.FL, parts.get(3).getTei()); assertEquals(TEI.SK, parts.get(4).getTei()); assertEquals(TEI.TP, parts.get(5).getTei()); assertEquals(TEI.WX, parts.get(6).getTei()); assertEquals(TEI.TA, parts.get(7).getTei()); assertEquals(TEI.WV, parts.get(8).getTei()); assertEquals(TEI.IC, parts.get(9).getTei()); assertEquals(TEI.TB, parts.get(10).getTei()); assertEquals(TEI.RM, parts.get(11).getTei()); } /** * Test that "/SKC" does not get confused with the "/SK" TEI. */ @Test public void testSky() { final String data = "LYH UA /OV LYH/TM 1226/FL210/SK OVC100/SKC/TA 0/WV 27035KT="; final String skyData = "OVC100/SKC"; List parts = TEIInfo.findTEIs(data); assertNotNull(parts); assertEquals(7, parts.size()); assertEquals(TEI.PIREP, parts.get(0).getTei()); assertEquals(TEI.OV, parts.get(1).getTei()); assertEquals(TEI.TM, parts.get(2).getTei()); assertEquals(TEI.FL, parts.get(3).getTei()); assertEquals(TEI.SK, parts.get(4).getTei()); assertEquals(skyData, parts.get(4).getTeiText()); assertEquals(TEI.TA, parts.get(5).getTei()); assertEquals(TEI.WV, parts.get(6).getTei()); } /** * Test that "/SKC" does not get confused with the "/SK" TEI. */ @Test public void testNoTurbDecode() { final String data = "UBUS01 KMSC 061800\nCAO UA /OV DHT310017 /TM 1850 /FL125 /TP BE35 /WX FV30SM /TA 12\n/WV 24021KT /TB NEG="; PirepSeparator sep = PirepSeparator.separate(data.getBytes(), null); while(sep.hasNext()) { List parts = TEIInfo.findTEIs(sep.next().getReport()); PirepTools tools = null; for(TEIInfo info : parts) { System.out.println(info.getTeiText()); if(TEI.TB.equals(info.getTei())) { tools = new PirepTools(info.getTeiText()); System.out.println(tools.decodeTurbulenceData()); } } } } }