package org.esa.beam.smos; import org.junit.Test; import java.io.File; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.TimeZone; import static org.junit.Assert.*; public class SmosUtilsTest { @Test public void testFindDblFile() { File[] inputFiles = new File[0]; assertNull(SmosUtils.findDblFile(inputFiles)); inputFiles = new File[]{new File("murks.txt"), new File("blärks.dot")}; assertNull(SmosUtils.findDblFile(inputFiles)); inputFiles = new File[]{new File("murks.DBL"), new File("blärks.dot")}; File dblFile = SmosUtils.findDblFile(inputFiles); assertEquals("murks.DBL", dblFile.getName()); inputFiles = new File[]{new File("murks.txt"), new File("blärks.dbl")}; dblFile = SmosUtils.findDblFile(inputFiles); assertEquals("blärks.dbl", dblFile.getName()); inputFiles = new File[]{new File("hoppla.dbl")}; dblFile = SmosUtils.findDblFile(inputFiles); assertEquals("hoppla.dbl", dblFile.getName()); } @Test public void testGetSensingTimesFromFilename() { final DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); df.setTimeZone(TimeZone.getTimeZone("UTC")); final Date startTime = SmosUtils.getSensingStartTimeFromFilename("SM_OPER_MIR_SMUDP2_20101019T050111_20101019T055510_309_002_1.zip"); final Date stopTime = SmosUtils.getSensingStopTimeFromFilename("SM_OPER_MIR_SMUDP2_20101019T050111_20101019T055510_309_002_1.zip"); assertEquals("2010-10-19T05:01:11", df.format(startTime)); assertEquals("2010-10-19T05:55:10", df.format(stopTime)); } @Test public void testGetSensingTimesFromFilename_InvalidDateFormat() { assertNull(SmosUtils.getSensingStartTimeFromFilename("SM_OPER_MIR_SMUDP2_20101MART050111_20101019T055510_309_002_1.zip")); assertNull(SmosUtils.getSensingStopTimeFromFilename("SM_OPER_MIR_SMUDP2_20101019T050111_20101SEPT055510_309_002_1.zip")); } @Test public void testGetSensingTimesFromTooShortFilename() { assertNull(SmosUtils.getSensingStartTimeFromFilename("SM_OPER_MIR_SMUDP2_20101019T0501")); assertNull(SmosUtils.getSensingStopTimeFromFilename("SM_OPER_MIR_SMUDP2_20101019T050111_20101019T0555")); } @SuppressWarnings("MagicConstant") @Test public void testGetStartDateFromFilename() { final Calendar cal = GregorianCalendar.getInstance(); cal.set(2007, 0, 1); assertTrue(isSameDay(cal.getTime(), SmosUtils.getSensingStartDayFromFilename("SM_TEST_AUX_PATT99_20070101T000000_20781231T235959_00000006.EEF"))); assertTrue(isSameDay(cal.getTime(), SmosUtils.getSensingStartDayFromFilename("SM_TEST_AUX_BWGHT__20070101T000000_20781231T235959_00000003.EEF"))); assertTrue(isSameDay(cal.getTime(), SmosUtils.getSensingStartDayFromFilename("SM_TEST_AUX_RFI____20070101T000000_20781231T235959_00000001.EEF"))); assertTrue(isSameDay(cal.getTime(), SmosUtils.getSensingStartDayFromFilename("SM_TEST_AUX_RFI____20070101T235959_20781231T235959_00000001.EEF"))); cal.set(2007, 1, 23); assertTrue(isSameDay(cal.getTime(), SmosUtils.getSensingStartDayFromFilename("SM_TEST_AUX_VTEC___20070223T000000_20070224T000000_00000001.EEF"))); cal.set(2012, 10, 18); assertTrue(isSameDay(cal.getTime(), SmosUtils.getSensingStartDayFromFilename("SM_OPER_MIR_BWLD1C_20121118T002733_20121118T012104_116_001_1.zip"))); cal.set(2012, 10, 20); assertTrue(isSameDay(cal.getTime(), SmosUtils.getSensingStartDayFromFilename("SM_OPER_MIR_UNCU1A_20121120T010256_20121120T014313_116_001_1.zip"))); cal.set(2005, 0, 1); assertTrue(isSameDay(cal.getTime(), SmosUtils.getSensingStartDayFromFilename("SM_TEST_AUX_MOONT__20050101T000000_20500101T000000_001_001_4.zip"))); } @Test public void testGetProductType() { assertEquals("AUX_DATA", SmosUtils.getProductType("SM_TEST_AUX_LSMASK_20070101T000000_20781231T235959_00000001.EEF")); assertEquals("AUX_DATA", SmosUtils.getProductType("SM_TEST_AUX_BFP____20070101T000000_20781231T235959_00000004.EEF")); assertEquals("AUX_DATA", SmosUtils.getProductType("SM_TEST_AUX_SUNT___20070101T000000_20781231T235959_00000001.EEF")); assertEquals("MIR_GMATD_", SmosUtils.getProductType("SM_TEST_MIR_GMATD__20121117T020130_20781231T235959_115_001_3.tgz")); assertEquals("AUX_DATA", SmosUtils.getProductType("SM_TEST_AUX_CNFL1P_20120101T000000_20500101T000000_101_001_3.EEF")); assertEquals("MIR_CRSD1A", SmosUtils.getProductType("SM_OPER_MIR_CRSD1a_20121117T025249_20121117T043300_116_001_1.zip")); assertEquals("RQC_RQD", SmosUtils.getProductType("SM_OPER_RQC_VTEC_C_20090512T230000_20090514T010000_311_001_1.EEF")); assertEquals("RQC_RQD", SmosUtils.getProductType("SM_TEST_RQD_SCND1C_20121117T120515_20121117T122512_311_001_1.EEF")); } @Test public void testIsDBLFileName() { assertFalse(SmosUtils.isDblFileName("plupsi.txt")); assertFalse(SmosUtils.isDblFileName("SM_OPER_MIR_BWLD1C_20121118T002733_20121118T012104_116_001_1.zip")); assertFalse(SmosUtils.isDblFileName("noExtensionFile")); assertTrue(SmosUtils.isDblFileName("SM_xxxx_MIR_CORN0__20070223T061024_20070223T062500_001_001_0.DBL")); assertTrue(SmosUtils.isDblFileName("SM_BLAH_MIR_TARD1A_20070223T112710_20070223T121514_001_001_0.DBL")); } @Test public void testIsHDRFileName() { assertFalse(SmosUtils.isHdrFileName("plupsi.txt")); assertFalse(SmosUtils.isHdrFileName("SM_OPER_MIR_BWLD1C_20121118T002733_20121118T012104_116_001_1.zip")); assertFalse(SmosUtils.isHdrFileName("noExtensionFile")); assertTrue(SmosUtils.isHdrFileName("SM_xxxx_MIR_CORN0__20070223T061024_20070223T062500_001_001_0.HDR")); assertTrue(SmosUtils.isHdrFileName("SM_BLAH_MIR_TARD1A_20070223T112710_20070223T121514_001_001_0.hdr")); } @Test public void testIsL0FileType() { assertTrue(SmosUtils.isL0Type("SM_HELP_MIR_SC_F0__20070223T061024_20070223T062500_001_001_0.DBL")); assertTrue(SmosUtils.isL0Type("SM_xxxx_MIR_UNCU0__20070223T061024_20070223T062500_001_001_0.DBL")); assertTrue(SmosUtils.isL0Type("SM_xxxx_MIR_CORN0__20070223T061024_20070223T062500_001_001_0.DBL")); assertTrue(SmosUtils.isL0Type("SM_TEST_MIR_SC_F0__20070223T112710_20070223T121514_001_001_0.DBL")); assertFalse(SmosUtils.isL0Type("SM_TEST_AUX_IGRF___20080102T010000_20080102T025959_105_001_0.zip")); assertFalse(SmosUtils.isL0Type("SM_TEST_AUX_PATT99_20070101T000000_20781231T235959_00000006.EEF")); assertFalse(SmosUtils.isL0Type("SM_TEST_AUX_IGRF___20080102T010000_20080102T025959_105_001_0.zip")); } @Test public void testIsL1aFileType() { assertTrue(SmosUtils.isL1aType("SM_OPER_MIR_TARD1A_20121117T102025_20121117T105144_203_001_1.EEF")); assertTrue(SmosUtils.isL1aType("SM_OPER_MIR_CRSD1A_20121117T025249_20121117T043300_116_001_1.zip")); assertTrue(SmosUtils.isL1aType("SM_TEST_MIR_AFWU1A_20121117T022130_20121117T024030_203_001_1.EEF")); assertTrue(SmosUtils.isL1aType("SM_TEST_MIR_ANIR1A_20121119T213500_20121119T231156_306_001_3.zip")); assertFalse(SmosUtils.isL1aType("SM_TEST_MIR_GMATD__20121117T020130_20781231T235959_115_001_3.tgz")); assertFalse(SmosUtils.isL1aType("SM_OPER_RQD_BWSF1C_20121120T015956_20121120T023316_203_001_1.EEF")); assertFalse(SmosUtils.isL1aType("SM_OPER_AUX_ORBRES_20121118T000000_20121125T000000_240_028_1.EEF")); } @Test public void testIsL1bFileType() { assertTrue(SmosUtils.isL1bType("SM_OPER_MIR_SC_D1B_20121118T002704_20121118T012104_116_001_1.zip")); assertTrue(SmosUtils.isL1bType("SM_OPER_MIR_TARD1B_20121117T102025_20121117T105144_116_001_1.zip")); assertTrue(SmosUtils.isL1bType("SM_TEST_MIR_GMATU__20121117T022130_20781231T235959_115_001_3.tgz")); assertTrue(SmosUtils.isL1bType("SM_TEST_MIR_FTTD___20091228T124638_20091228T125235_307_002_3.zip")); assertTrue(SmosUtils.isL1bType("SM_TEST_MIR_FTTF___20121120T005052_20121120T005310_308_001_1.zip")); assertFalse(SmosUtils.isL1bType("M_OPER_MIR_CRSD1A_20121117T025249_20121117T043300_116_001_1.zip")); assertFalse(SmosUtils.isL1bType("SM_OPER_RQD_BWSF1C_20121120T015956_20121120T023316_203_001_1.EEF")); assertFalse(SmosUtils.isL1bType("SM_OPER_AUX_ORBRES_20121118T000000_20121125T000000_240_028_1.EEF")); } @Test public void testIsL1cFileType() { assertTrue(SmosUtils.isL1cType("SM_TEST_MIR_SCLD1C_20070223T061024_20070223T070437_141_000_0.DBL")); assertTrue(SmosUtils.isL1cType("SM_TEST_MIR_BWLD1C_20070223T061024_20070223T070437_141_000_0.HDR")); assertTrue(SmosUtils.isL1cType("SM_TEST_MIR_BWLF1C_20070223T112729_20070223T121644_141_000_0.DBL")); assertFalse(SmosUtils.isL1cType("SM_TEST_AUX_RFI____20070101T000000_20781231T235959_00000001.EEF")); assertFalse(SmosUtils.isL1cType("SM_TEST_AUX_RFI____20070101T000000_20781231T235959_00000001.EEF")); assertFalse(SmosUtils.isL1cType("SM_BLAH_MIR_TARD1A_20070223T112710_20070223T121514_001_001_0.DBL")); } @Test public void testIsL2FileType() { assertTrue(SmosUtils.isL2Type("SO_GNAT_MIR_TSM_2__20070223T061024_20070223T062500_001_001_0.DBL")); assertTrue(SmosUtils.isL2Type("SO_GNOT_MIR_TOS_2__20070223T061024_20070223T062500_001_001_0.DBL")); assertTrue(SmosUtils.isL2Type("SO_GNAT_MIR_SM__2__20070223T061024_20070223T062500_001_001_0.DBL")); assertTrue(SmosUtils.isL2Type("SO_GNOT_MIR_OS__2__20070223T061024_20070223T062500_001_001_0.DBL")); assertTrue(SmosUtils.isL2Type("SM_TEST_MIR_SMUDP2_20121118T143742_20121118T153047_303_002_1.zip")); assertTrue(SmosUtils.isL2Type("SM_TEST_MIR_SMDAP2_20121118T135052_20121118T144140_303_007_1.zip")); assertTrue(SmosUtils.isL2Type("SM_TEST_MIR_OSUDP2_20121118T143742_20121118T153047_306_002_1.zip")); assertTrue(SmosUtils.isL2Type("SM_TEST_MIR_OSDAP2_20121118T143742_20121118T153047_306_002_1.zip")); assertFalse(SmosUtils.isL2Type("SM_TEST_AUX_IGRF___20080102T010000_20080102T025959_105_001_0.zip")); assertFalse(SmosUtils.isL2Type("SM_TEST_AUX_PATT99_20070101T000000_20781231T235959_00000006.EEF")); assertFalse(SmosUtils.isL2Type("SM_TEST_MIR_SC_F0__20070223T112710_20070223T121514_001_001_0.DBL")); } @Test public void testIsL2Format() { assertTrue(SmosUtils.isL2Format("SM_TEST_MIR_SMUDP2_20121118T143742_20121118T153047_303_002_1.zip")); assertTrue(SmosUtils.isL2Format("SM_TEST_MIR_SMDAP2_20121118T135052_20121118T144140_303_007_1.zip")); assertTrue(SmosUtils.isL2Format("SM_TEST_MIR_OSUDP2_20121118T143742_20121118T153047_306_002_1.zip")); assertTrue(SmosUtils.isL2Format("SM_TEST_MIR_OSDAP2_20121118T143742_20121118T153047_306_002_1.zip")); assertFalse(SmosUtils.isL2Format("SM_TEST_AUX_IGRF___20080102T010000_20080102T025959_105_001_0.zip")); assertFalse(SmosUtils.isL2Format("SM_TEST_AUX_PATT99_20070101T000000_20781231T235959_00000006.EEF")); assertFalse(SmosUtils.isL2Format("SM_TEST_MIR_SC_F0__20070223T112710_20070223T121514_001_001_0.DBL")); } @Test public void testIsLightBufrSpecification() throws Exception { assertTrue(SmosUtils.isLightBufrType( "W_ES-ESA-ESAC,SMOS,N256_C_LEMM_20131028030552_20131028003256_20131028020943_bufr_v505.bin")); assertTrue(SmosUtils.isLightBufrType( "W_ES-ESA-ESAC,SMOS,N256_C_LEMM_20131028033037_20131028002942_20131028003302_bufr_v505.bin")); assertTrue(SmosUtils.isLightBufrType( "W_ES-ESA-ESAC,SMOS,N256_C_LEMM_20131028044206_20131028020942_20131028034943_bufr_v505.bin")); assertTrue(SmosUtils.isLightBufrType( "W_ES-ESA-ESAC,SMOS,N256_C_LEMM_20131028044206_20131028020942_20131028034943_bufr_v647.bin")); assertFalse(SmosUtils.isLightBufrType( "W_ES-ESA-ESAC,SMOS,N256_D_LEMM_20131028044206_20131028020942_20131028034943_bufr_v505.bin")); assertFalse(SmosUtils.isLightBufrType( "W_ES-ESA-ESAC,SMOS,N256_C_LEMN_20131028044206_20131028020942_20131028034943_bufr_v505.bin")); assertFalse(SmosUtils.isLightBufrType( "W_ES-ESA-ESAC,SMOS,N256_C_LEMN_20131028044206_20131028020942_20131028034943_bufr_v505.zip")); } @Test public void testIsAuxFileType() { assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_ORBPRE_20121117T000000_20121124T000000_240_034_1.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_APOD01_20070101T000000_20781231T235959_00000002.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_BFP____20070101T000000_20781231T235959_00000003.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_BSCAT__20070101T000000_20781231T235959_00000002.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_BWGHT__20070101T000000_20781231T235959_00000001.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_CNFL1P_20120101T000000_20500101T000000_101_001_3.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_DGG____20050101T000000_20500101T000000_001_002_4.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_DGG____20070101T000000_20781231T235959_00000001.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_FAIL___20070101T000000_20781231T235959_00000002.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_FLATT__20070101T000000_20781231T235959_00000014.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_GALAXY_20050101T000000_20500101T000000_001_001_4.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_GLXY___20070101T000000_20781231T235959_000000007.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_GALNIR_20050101T000000_20500101T000000_300_001_5.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_LCF____20070101T000000_20781231T235959_00000004.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_MASK___20050101T000000_20500101T000000_001_001_4.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_MASK___20070101T000000_20781231T235959_00000006.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_MOONT__20070101T000000_20781231T235959_00000001.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_NIR____20070101T000000_20781231T235959_00000006.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_PLM____20070101T000000_20781231T235959_0000000012.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_PMS____20070101T000000_20781231T235959_00000005.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_VTEC___20080102T010000_20080102T025959_105_001_0.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_RFI____20070101T000000_20781231T235959_00000001.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_IGRF___20080102T010000_20080102T025959_105_001_0.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_SPAR___20070101T000000_20781231T235959_00000006.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_SUNT___20050101T000000_20500101T000000_001_001_4.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_SUNT___20070101T000000_20781231T235959_00000001.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_SGLINT_20050101T000000_20500101T000000_001_001_4.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_TIME___20050101T000000_20500101T000000_001_001_4.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_VTEC_C_20080102T010000_20080102T025959_105_001_0.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_VTEC_P_20080414T010000_20080414T025959_105_001_0.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_PATT99_20070101T000000_20781231T235959_00000006.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_PATT12_20070101T000000_20781231T235959_00000004.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_ORBPRE_20121117T000000_20121124T000000_240_034_1.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_APDS00_20050101T000000_20500101T000000_001_001_3.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_LSMASK_20070101T000000_20781231T235959_00000001.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_ECMWF__20090408T005820_20090408T020050_301_001_3.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_DFFFRA_20050101T000000_20500101T000000_001_001_9.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_DFFXYZ_20050101T000000_20500101T000000_001_001_9.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_DFFLAI_20090509T000000_20090608T000000_302_001_3.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_DFFLMX_20050101T000000_20500101T000000_001_001_9.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_DGGXYZ_20050101T000000_20500101T000000_001_001_9.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_DGGTLV_20121129T010000_20121130T030000_301_001_3.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_DGGTFO_20121129T010000_20121130T030000_301_001_3.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_DGGROU_20121129T010000_20121130T030000_301_001_3.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_DGGRFI_20121129T010000_20121130T030000_301_001_3.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_DGGFLO_20121129T010000_20121130T030000_301_001_3.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_WEF____20050101T000000_20500101T000000_001_001_9.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_MN_WEF_20050101T000000_20500101T000000_001_001_9.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_SOIL_P_20050101T000000_20500101T000000_001_001_9.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_GAL_SM_20050101T000000_20500101T000000_001_001_9.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_LANDCL_20050101T000000_20500101T000000_001_001_9.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_CNFSMD_20050101T000000_20500101T000000_001_001_9.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_CNFSMF_20050101T000000_20500101T000000_001_001_9.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_FLTSEA_20050101T000000_20500101T000000_001_010_8.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_RGHNS1_20050101T000000_20500101T000000_001_011_8.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_RGHNS2_20050101T000000_20500101T000000_001_010_8.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_RGHNS3_20050101T000000_20500101T000000_001_010_8.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_GAL_OS_20050101T000000_20500101T000000_001_004_8.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_GAL2OS_20050101T000000_20500101T000000_001_010_8.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_FOAM___20050101T000000_20500101T000000_001_010_8.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_ATMOS__20050101T000000_20500101T000000_001_010_8.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_DISTAN_20050101T000000_20500101T000000_001_010_8.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_SSS____20050101T000000_20500101T000000_001_010_8.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_CNFOSD_20050101T000000_20500101T000000_001_010_8.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_CNFOSF_20050101T000000_20500101T000000_001_010_8.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_AGDPT__20050101T000000_20500101T000000_001_003_8.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_ECOLAI_20050101T000000_20500101T000000_001_003_8.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_BNDLST_20050101T000000_20500101T000000_001_003_8.zip")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_MISP___20050101T000000_20500101T000000_300_001_5.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_APDL___20050101T000000_20500101T000000_300_001_3.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_TEST_AUX_APDS___20050101T000000_20500101T000000_300_001_5.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_ORBRES_20091105T000000_20091106T000000_280_009_1.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_CNFFAR_20050101T000000_20500101T000000_100_002_3.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_OTT1D__20050101T000000_20500101T000000_001_002_3.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_OTT1F__20050101T000000_20500101T000000_001_002_3.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_OTT2D__20050101T000000_20500101T000000_001_002_3.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_OTT3F__20050101T000000_20500101T000000_001_002_3.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_OTT2F__20050101T000000_20500101T000000_001_002_3.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_OTT3D__20050101T000000_20500101T000000_001_004_3.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_BULL_B_20101202T000000_20500101T000000_100_002_3.zip")); // first files delivered, needed to adapt code - testdata did not follow file name specs .... assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_VTEC_R_20091117T230000_20091119T010000_306_001_3.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_PLM____20050101T000000_20500101T000000_300_006_3.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_BFP____20050101T000000_20500101T000000_300_001_3.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_BSCAT__20050101T000000_20500101T000000_300_001_4.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_BWGHT__20050101T000000_20500101T000000_300_003_3.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_FAIL___20050101T000000_20500101T000000_300_001_4.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_LCF____20050101T000000_20500101T000000_300_005_3.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_MOONT__20050101T000000_20500101T000000_300_001_4.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_NIR____20050101T000000_20500101T000000_300_002_4.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_PMS____20050101T000000_20500101T000000_300_005_3.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_RFI____20050101T000000_20500101T000000_300_002_3.zip")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_SPAR___20050101T000000_20500101T000000_320_001_3.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_ORBRES_20091119T000000_20091120T000000_280_023_1.EEF")); assertTrue(SmosUtils.isAuxFileType("SM_OPER_AUX_CNFL0P_20050101T000000_20500101T000000_001_002_3.EEF")); assertFalse(SmosUtils.isAuxFileType("SM_OPER_MIR_BWLD1C_20121118T002733_20121118T012104_116_001_1.zip")); assertFalse(SmosUtils.isAuxFileType("SM_TEST_MIR_GMATD__20121117T020130_20781231T235959_115_001_3.tgz")); } @Test public void testIsQualityControlType() { assertTrue(SmosUtils.isQualityControlType("SM_OPER_RQC_ECMWF__20090405T011500_20090405T021820_301_001_1.EEF")); assertTrue(SmosUtils.isQualityControlType("SM_TEST_RQD_OSDAP2_20121117T065617_20121117T075017_311_001_1.EEF")); assertFalse(SmosUtils.isQualityControlType("SM_OPER_MIR_BWLD1C_20121118T002733_20121118T012104_116_001_1.zip")); assertFalse(SmosUtils.isQualityControlType("SM_xxxx_MIR_CORN0__20070223T061024_20070223T062500_001_001_0.DBL")); } @Test public void testIsMirasPlanType() { assertTrue(SmosUtils.isMirasPlanType("SM_TEST_MPL_ORBSCT_20070223T060002_20781231T235959_00000001.EEF")); assertTrue(SmosUtils.isMirasPlanType("SM_OPER_MPL_PROTEV_20091120T101808_20091221T101153_280_023_1.EEF")); assertTrue(SmosUtils.isMirasPlanType("SM_OPER_MPL_XBDOWN_20091123T000000_20091124T000000_331_001_1.EEF")); assertTrue(SmosUtils.isMirasPlanType("SM_OPER_MPL_APIDPL_20091120T000000_20091123T000000_331_001_1.EEF")); assertTrue(SmosUtils.isMirasPlanType("SM_OPER_MPL_HLPLAN_20091120T000000_20091123T000000_331_001_1.EEF")); assertTrue(SmosUtils.isMirasPlanType("SM_OPER_MPL_XBDPRE_20091123T000000_20091130T000000_110_001_7.EEF")); assertFalse(SmosUtils.isMirasPlanType("SM_OPER_MIR_BWLD1C_20121118T002733_20121118T012104_116_001_1.zip")); assertFalse(SmosUtils.isMirasPlanType("SM_TEST_AUX_IGRF___20080102T010000_20080102T025959_105_001_0.zip")); assertFalse(SmosUtils.isMirasPlanType("TheNewSensoir.txt")); } @Test public void testIsAuxECMWFType() { assertTrue(SmosUtils.isAuxECMWFType("SM_OPER_AUX_ECMWF__20091113T030500_20091113T040730_306_001_3.HDR")); assertTrue(SmosUtils.isAuxECMWFType("SM_OPER_AUX_ECMWF__20110227T182140_20110227T192410_310_001_3.zip")); assertFalse(SmosUtils.isAuxECMWFType("SM_xxxx_MIR_CORN0__20070223T061024_20070223T062500_001_001_0.DBL")); assertFalse(SmosUtils.isAuxECMWFType("SM_TEST_MIR_OSUDP2_20121118T143742_20121118T153047_306_002_1.zip")); assertFalse(SmosUtils.isAuxECMWFType("SM_OPER_MIR_BWLD1C_20121118T002733_20121118T012104_116_001_1.zip")); } @Test public void testIsSmUserFormat() { assertTrue(SmosUtils.isSmUserFormat("SM_TEST_MIR_SMUDP2_20070225T041815_20070225T050750_306_001_8.DBL")); assertFalse(SmosUtils.isSmUserFormat("SM_OPER_MIR_SCSF1C_20100315T144805_20100315T154207_330_001_1")); } @Test public void testIsSmAnalysisFormat() { assertTrue(SmosUtils.isSmAnalysisFormat("SM_TEST_MIR_SMDAP2_20121117T183648_20121117T193048_304_001_1.zip")); assertFalse(SmosUtils.isSmAnalysisFormat("SM_OPER_MIR_SCSF1C_20100315T144805_20100315T154207_330_001_1")); } @Test public void testIsOsUserFormat() { assertTrue(SmosUtils.isOsUserFormat("SM_TEST_MIR_OSUDP2_20070225T041815_20070225T050750_306_001_8.DBL")); assertFalse(SmosUtils.isOsUserFormat("SM_TEST_MIR_BWSF1C_20070223T112729_20070223T121644_141_000_0.zip")); } @Test public void testIsOsAnalysisFormat() { assertTrue(SmosUtils.isOsAnalysisFormat("SM_TEST_MIR_OSDAP2_20070225T041815_20070225T050750_306_001_8.DBL")); assertFalse(SmosUtils.isOsAnalysisFormat("SM_OPER_MIR_OSUDP2_20091204T001853_20091204T011255_310_001_1.zip")); } @Test public void testIsDualPolBrowseFormat() { assertTrue(SmosUtils.isDualPolBrowseFormat("SM_OPER_MIR_BWLD1C_20100405T143038_20100405T152439_330_001_1.HDR")); assertTrue(SmosUtils.isDualPolBrowseFormat("SM_OPER_MIR_BWSD1C_20100201T134256_20100201T140057_324_001_1.HDR")); assertFalse(SmosUtils.isDualPolBrowseFormat("SM_OPER_MIR_OSUDP2_20091204T001853_20091204T011255_310_001_1.zip")); assertFalse(SmosUtils.isDualPolBrowseFormat("SM_OPER_MIR_SMDAP2_20111130T141947_20111130T151305_500_001_1.DBL")); } @Test public void testIsFullPolBrowseFormat() { assertTrue(SmosUtils.isFullPolBrowseFormat("SM_OPER_MIR_BWLF1C_20100405T143038_20100405T152439_330_001_1.HDR")); assertTrue(SmosUtils.isFullPolBrowseFormat("SM_OPER_MIR_BWSF1C_20100201T134256_20100201T140057_324_001_1.HDR")); assertFalse(SmosUtils.isDualPolBrowseFormat("SM_OPER_MIR_OSUDP2_20091204T001853_20091204T011255_310_001_1.zip")); assertFalse(SmosUtils.isDualPolBrowseFormat("SM_OPER_MIR_SMDAP2_20111130T141947_20111130T151305_500_001_1.DBL")); } @Test public void testIsBrowseFormat() { assertTrue(SmosUtils.isBrowseFormat("SM_OPER_MIR_BWLD1C_20100405T143038_20100405T152439_330_001_1.HDR")); assertTrue(SmosUtils.isBrowseFormat("SM_OPER_MIR_BWSD1C_20100201T134256_20100201T140057_324_001_1.HDR")); assertTrue(SmosUtils.isBrowseFormat("SM_OPER_MIR_BWLF1C_20100201T134256_20100201T140057_324_001_1.HDR")); assertTrue(SmosUtils.isBrowseFormat("SM_OPER_MIR_BWSF1C_20100201T134256_20100201T140057_324_001_1.HDR")); assertFalse(SmosUtils.isBrowseFormat("SM_TEST_MIR_OSDAP2_20070225T041815_20070225T050750_306_001_8.DBL")); assertFalse(SmosUtils.isBrowseFormat("SM_OPER_MIR_OSUDP2_20091204T001853_20091204T011255_310_001_1.zip")); } @Test public void testIsDualPolScienceFormat() { assertTrue(SmosUtils.isDualPolScienceFormat("SM_OPER_MIR_SCSD1C_20100405T143038_20100405T152439_330_001_1.HDR")); assertTrue(SmosUtils.isDualPolScienceFormat("SM_OPER_MIR_SCLD1C_20100201T134256_20100201T140057_324_001_1.HDR")); assertFalse(SmosUtils.isDualPolScienceFormat("SM_OPER_MIR_OSUDP2_20091204T001853_20091204T011255_310_001_1.zip")); assertFalse(SmosUtils.isDualPolScienceFormat("SM_OPER_MIR_SMDAP2_20111130T141947_20111130T151305_500_001_1.DBL")); } @Test public void testIsFullPolScienceFormat() { assertTrue(SmosUtils.isFullPolScienceFormat("SM_OPER_MIR_SCSF1C_20100405T143038_20100405T152439_330_001_1.HDR")); assertTrue(SmosUtils.isFullPolScienceFormat("SM_OPER_MIR_SCLF1C_20100201T134256_20100201T140057_324_001_1.HDR")); assertFalse(SmosUtils.isFullPolScienceFormat("SM_OPER_MIR_OSUDP2_20091204T001853_20091204T011255_310_001_1.zip")); assertFalse(SmosUtils.isFullPolScienceFormat("SM_OPER_MIR_SMDAP2_20111130T141947_20111130T151305_500_001_1.DBL")); } @Test public void testIsCompressedFile() { final File fileWithoutExtension = new File("a_file_without_extension"); assertFalse(SmosUtils.isCompressedFile(fileWithoutExtension)); final File textFile = new File("bla.txt"); assertFalse(SmosUtils.isCompressedFile(textFile)); final File zipFile = new File("gna.zip"); assertTrue(SmosUtils.isCompressedFile(zipFile)); final File zipFileWithCapitalExtension = new File("firlefanz.ZIP"); assertTrue(SmosUtils.isCompressedFile(zipFileWithCapitalExtension)); } @Test public void testIsDggTlvFormat() { assertTrue(SmosUtils.isDggTlvFormat("SM_OPER_AUX_DGGTLV_20110605T000000_20110608T000000_307_001_3.DBL")); assertFalse(SmosUtils.isDggTlvFormat("SM_OPER_MIR_BWLF1C_20100201T134256_20100201T140057_324_001_1.DBL")); } @Test public void testIsDggTfoFormat() { assertTrue(SmosUtils.isDggTfoFormat("SM_OPER_AUX_DGGTFO_20140411T001616_20500101T000000_400_001_1.HDR")); assertFalse(SmosUtils.isDggTfoFormat("SM_OPER_MIR_OSUDP2_20091204T001853_20091204T011255_310_001_1.DBL")); } @Test public void testIsDggRouFormat() { assertTrue(SmosUtils.isDggRouFormat("SM_OPER_AUX_DGGROU_20110605T000000_20110608T000000_307_001_3.DBL")); assertFalse(SmosUtils.isDggRouFormat("SM_OPER_MIR_OSUDP2_20091204T001853_20091204T011255_310_001_1.DBL")); } @Test public void testIsDggRfiFormat() { assertTrue(SmosUtils.isDggRfiFormat("SM_OPER_AUX_DGGRFI_20140413T003825_20500101T000000_400_001_1.HDR")); assertFalse(SmosUtils.isDggRfiFormat("SM_TEST_MIR_OSUDP2_20121118T143742_20121118T153047_306_002_1.DBL")); } @Test public void testIsDggFloFormat() { assertTrue(SmosUtils.isDggFloFormat("SM_OPER_AUX_DGGFLO_20140413T003825_20500101T000000_400_001_1.DBL")); assertFalse(SmosUtils.isDggFloFormat("SM_TEST_AUX_RFI____20070101T235959_20781231T235959_00000001.DBL")); } @Test public void testIsLsMaskFormat() { assertTrue(SmosUtils.isLsMaskFormat("SM_OPER_AUX_LSMASK_20050101T000000_20500101T000000_300_003_3.DBL")); assertFalse(SmosUtils.isLsMaskFormat("SM_TEST_MIR_GMATD__20121117T020130_20781231T235959_115_001_3.DBL")); } @Test public void testIsVTecFormat() { assertTrue(SmosUtils.isVTecFormat("SM_OPER_AUX_VTEC_C_20100118T230000_20100120T010000_306_001_3.HDR")); assertTrue(SmosUtils.isVTecFormat("SM_OPER_AUX_VTEC_P_20100207T230000_20100209T010000_306_001_3.DBL")); assertFalse(SmosUtils.isVTecFormat("SO_GNOT_MIR_OS__2__20070223T061024_20070223T062500_001_001_0.DBL")); } @Test public void testIsDffLaiFormat() { assertTrue(SmosUtils.isDffLaiFormat("SM_OPER_AUX_DFFLAI_20100117T000000_20100216T000000_306_001_3.DBL")); assertFalse(SmosUtils.isDffLaiFormat("SM_TEST_MIR_SMDAP2_20121118T135052_20121118T144140_303_007_1.DBL")); } //////////////////////////////////////////////////////////////////////////////// /////// END OF PUBLIC //////////////////////////////////////////////////////////////////////////////// static boolean isSameDay(Date date_1, Date date_2) { if (date_1 == null || date_2 == null) { return false; } final Calendar cal_1 = GregorianCalendar.getInstance(); cal_1.setTime(date_1); final Calendar cal_2 = GregorianCalendar.getInstance(); cal_2.setTime(date_2); //noinspection RedundantIfStatement if (cal_1.get(Calendar.YEAR) == cal_2.get(Calendar.YEAR) && cal_1.get(Calendar.MONTH) == cal_2.get(Calendar.MONTH) && cal_1.get(Calendar.DAY_OF_MONTH) == cal_2.get(Calendar.DAY_OF_MONTH)) { return true; } return false; } }