diff --git a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java new file mode 100644 index 0000000000000000000000000000000000000000..e430ee8a60d2a288376dbf2dcac0e41f07bb411c --- /dev/null +++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java @@ -0,0 +1,131 @@ +package gov.usgs.earthquake.nshmp.model; + +import java.io.IOException; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.EnumSet; +import java.util.List; +import java.util.Set; + +import org.junit.jupiter.api.Test; + +import gov.usgs.earthquake.nshmp.NamedLocation; +import gov.usgs.earthquake.nshmp.gmm.Imt; +import gov.usgs.earthquake.nshmp.site.NshmpSite; + +/** + * Test NSHMs. + */ +class NshmTests { + /* Alaska test sites */ + private static final List<NamedLocation> ALASKA_LOCATIONS = List.of( + NshmpSite.ANCHORAGE_AK, + NshmpSite.FAIRBANKS_AK, + NshmpSite.JUNEAU_AK, + NshmpSite.KODIAK_AK, + NshmpSite.VALDEZ_AK); + + /* CONUS test sites */ + private static final List<NamedLocation> CONUS_LOCATIONS = List.of( + NshmpSite.LOS_ANGELES_CA, + NshmpSite.SAN_FRANCISCO_CA, + NshmpSite.SEATTLE_WA, + NshmpSite.SALT_LAKE_CITY_UT, + NshmpSite.RENO_NV, + NshmpSite.NEW_MADRID_MO, + NshmpSite.BOSTON_MA, + NshmpSite.NEW_YORK_NY, + NshmpSite.CHICAGO_IL); + + /* Hawaii test sites */ + private static final List<NamedLocation> HAWAII_LOCATIONS = List.of( + NshmpSite.HILO_HI, + NshmpSite.HONOLULU_HI, + NshmpSite.KAILUA_KONA_HI); + + private static final Set<Imt> IMTS = EnumSet.of(Imt.PGA, Imt.SA0P2, Imt.SA1P0, Imt.SA5P0); + + /** + * Test Alaska 2023 NSHM, {@link Nshm.ALASKA_2023}. + * + * To run test: ./gradlew testAlaska2023 + */ + @Test + final void testAlaska2023() throws IOException { + NshmTestUtils.testNshm(Nshm.ALASKA_2023); + } + + /** + * Test CONUS 2018 NSHM, {@link Nshm.CONUS_2018}. + * + * To run test: ./gradlew testConus2018 + */ + @Test + final void testConus2018() throws IOException { + NshmTestUtils.testNshm(Nshm.CONUS_2018); + } + + /** + * Test CONUS 2023 NSHM, {@link Nshm.CONUS_2023}. + * + * To run test: ./gradlew testConus2023 + */ + @Test + final void testConus2023() throws IOException { + NshmTestUtils.testNshm(Nshm.CONUS_2023); + } + + /** + * Test Hawaii 2021 NSHM, {@link Nshm.HAWAII_2021}. + * + * To run test: ./gradlew testHawaii2021 + */ + @Test + final void testHawaii2021() throws IOException { + NshmTestUtils.testNshm(Nshm.HAWAII_2021); + } + + static enum Nshm { + ALASKA_2023("nshm-alaska-3.a.0", ALASKA_LOCATIONS, IMTS), + + CONUS_2018("nshm-conus-5.2.0", CONUS_LOCATIONS, IMTS), + + CONUS_2023("nshm-conus-6.a.3", CONUS_LOCATIONS, IMTS), + + HAWAII_2021("nshm-hawaii-2.0.2", HAWAII_LOCATIONS, IMTS); + + private final String modelName; + private final List<NamedLocation> locations; + private final Set<Imt> imts; + + Nshm(String modelName, List<NamedLocation> locations, Set<Imt> imts) { + this.locations = locations; + this.imts = imts; + this.modelName = modelName; + } + + Path modelPath() { + return Paths.get("nshms", modelName); + } + + String modelName() { + return modelName; + } + + List<NamedLocation> locations() { + return List.copyOf(locations); + } + + Set<Imt> imts() { + return Set.copyOf(imts); + } + + int year() { + return Integer.parseInt(name().split("_")[1]); + } + + String resultFilename(NamedLocation location) { + return String.format("%s-%s-%s.json", modelName, year(), location.name()); + } + } +} diff --git a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestsConus2018.java b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestsConus2018.java deleted file mode 100644 index 76cafffd02e4114c5fd6f999598a1955374d6521..0000000000000000000000000000000000000000 --- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestsConus2018.java +++ /dev/null @@ -1,18 +0,0 @@ -package gov.usgs.earthquake.nshmp.model; - -import org.junit.jupiter.api.Test; - -import gov.usgs.earthquake.nshmp.model.NshmTestUtils.Nshm; - -/** - * Test CONUS 2018 NSHM, {@link Nshm.CONUS_2018}. - * - * To run test: ./gradlew testConus2018 - */ -class NshmTestsConus2018 { - - @Test - final void testNshm() { - NshmTestUtils.testNshm(Nshm.CONUS_2018); - } -} diff --git a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestsHawaii2021.java b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestsHawaii2021.java deleted file mode 100644 index f90ecec48fe61761e7786153e77f21d9d20e271c..0000000000000000000000000000000000000000 --- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestsHawaii2021.java +++ /dev/null @@ -1,18 +0,0 @@ -package gov.usgs.earthquake.nshmp.model; - -import org.junit.jupiter.api.Test; - -import gov.usgs.earthquake.nshmp.model.NshmTestUtils.Nshm; - -/** - * Test Hawaii 2021 NSHM, {@link Nshm.HAWAII_2021}. - * - * To run test: ./gradlew testHawaii2021 - */ -class NshmTestsHawaii2021 { - - @Test - final void testNshm() { - NshmTestUtils.testNshm(Nshm.HAWAII_2021); - } -}