package thredds.inventory; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import ucar.nc2.time.CalendarDate; import ucar.unidata.util.test.TestDir; import java.util.ArrayList; import java.util.List; /** * Test DateExtractorFromName * * @author caron * @since 12/8/2014 */ @RunWith(Parameterized.class) public class TestDateExtractorFromName { static String base = "thredds:resolve:http://"+ TestDir.threddsTestServer+"/thredds/"; @Parameterized.Parameters(name="{0}") public static List<Object[]> getTestParameters() { List<Object[]> result = new ArrayList<>(); // Grib files, one from each model result.add(new Object[]{"/san4/work/jcaron/cfsrr/198507", "#cfsrr/#yyyyMM", false, "1985-07-01T00:00:00Z"}); result.add(new Object[]{"/data/ldm/pub/native/grid/NCEP/GFS/Alaska_191km/20111226/Run_1200.grib1", "#Alaska_191km/#yyyyMMdd'/Run_'HHmm",false, "2011-12-26T12:00:00Z"}); result.add(new Object[]{"/data/ldm/pub/native/grid/NCEP/GFS/Alaska_191km/20111226/Run_1200/stuff/random.grib1", "#Alaska_191km/#yyyyMMdd'/Run_'HHmm",false, "2011-12-26T12:00:00Z"}); result.add(new Object[]{"pgb.ft06.198407", "pgb.ft06.#yyyyMM", true, "1984-07-01T00:00:00Z"}); result.add(new Object[]{"/random/shit/pgb.ft06.198407", "pgb.ft06.#yyyyMM", true, "1984-07-01T00:00:00Z"}); result.add(new Object[]{"e20c.oper.an.pl.3hr.128_248_cc.regn80sc.1949120100_1949123121.grb", "#regn80sc.#yyyyMMddHH", false, "1949-12-01T00:00:00Z"}); result.add(new Object[]{"e20c.oper.an.pl.3hr.128_248_cc.regn80sc.1949120100_1949123121.grb", "#regn80#'sc.'yyyyMMddHH", false, "1949-12-01T00:00:00Z"}); result.add(new Object[]{"e20c.oper.an.pl.3hr.128_248_cc.regn80sc.1949120100_1949123121.grb", "#regn80#...yyyyMMddHH", false, "1949-12-01T00:00:00Z"}); result.add(new Object[]{"e20c.oper.an.pl.3hr.128_248_cc.regn80uv.1949120100_1949123121.grb", "#regn80#...yyyyMMddHH", false, "1949-12-01T00:00:00Z"}); return result; } String name; String dateFormatMark; boolean useName; String result; public TestDateExtractorFromName(String name, String dateFormatMark, boolean useName, String result) { this.name = name; this.dateFormatMark = dateFormatMark; this.useName = useName; this.result = result; } @Test public void doit() { DateExtractorFromName de = new DateExtractorFromName(dateFormatMark, useName); CalendarDate d = de.getCalendarDateFromPath(name); System.out.printf("%s == %s%n", name , d); assert d.toString().equals(result); } }