diff --git a/gradle/nshm.gradle b/gradle/nshm.gradle index 910405dd30dff0410b22d2590505eceed173c249..008bf38fdcf524bb3a96b179b22d5c2c083600e0 100644 --- a/gradle/nshm.gradle +++ b/gradle/nshm.gradle @@ -152,7 +152,7 @@ task testConus2018(type: Test) { ) filter { - includeTestsMatching "gov.usgs.earthquake.nshmp.model.NshmTests.testConus2018" + includeTestsMatching "gov.usgs.earthquake.nshmp.model.Conus2018Tests" } } diff --git a/src/test/java/gov/usgs/earthquake/nshmp/model/Conus2018Tests.java b/src/test/java/gov/usgs/earthquake/nshmp/model/Conus2018Tests.java new file mode 100644 index 0000000000000000000000000000000000000000..baeb1da4b682e479a626fc7533961d463b1211fd --- /dev/null +++ b/src/test/java/gov/usgs/earthquake/nshmp/model/Conus2018Tests.java @@ -0,0 +1,42 @@ +package gov.usgs.earthquake.nshmp.model; + +import java.io.IOException; +import java.util.stream.Stream; + +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; + +import gov.usgs.earthquake.nshmp.NamedLocation; +import gov.usgs.earthquake.nshmp.model.NshmTestUtils.Nshm; +import gov.usgs.earthquake.nshmp.model.NshmTestUtils.NshmModel; + +@TestInstance(Lifecycle.PER_CLASS) +class Conus2018Tests { + + Nshm nshm = NshmTests.NSHMS.get("nshm-conus-2018"); + NshmModel nshmModel; + + @BeforeAll + void load() { + nshmModel = NshmTestUtils.loadModel(nshm); + } + + @AfterAll + void stop() { + nshmModel.exec.shutdown(); + } + + @ParameterizedTest + @MethodSource("conusSites") + final void testConus2018(NamedLocation location) throws IOException { + NshmTestUtils.testNshm(nshmModel, location); + } + + private static Stream<NamedLocation> conusSites() { + return NshmTests.CONUS_LOCATIONS.stream(); + } +} diff --git a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java index 8edc45346e7f4d693748b4aeb1b4e3b6bd31ed81..91d95cf6b32d12611f5b61e80d7b1fc0a900ca24 100644 --- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java +++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java @@ -100,6 +100,18 @@ class NshmTestUtils { nshmModel.exec.shutdown(); } + static void testNshm(Nshm nshm, NamedLocation location) { + NshmModel nshmModel = loadModel(nshm); + LOGGER.info("Location: " + location.toString()); + compareCurves(nshmModel, location); + nshmModel.exec.shutdown(); + } + + static void testNshm(NshmModel nshmModel, NamedLocation location) { + LOGGER.info("Location: " + location.toString()); + compareCurves(nshmModel, location); + } + /** * Write expected values * diff --git a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java index 58cc6adcd30c6530cc8e542ba045cdd3e7719830..a5ba46a7e40802c0e3eb4eb62954f5e5891e5a62 100644 --- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java +++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java @@ -10,8 +10,8 @@ import java.util.Optional; import java.util.Set; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.TestInstance; -import org.junit.jupiter.api.TestInstance.Lifecycle; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import gov.usgs.earthquake.nshmp.NamedLocation; import gov.usgs.earthquake.nshmp.gmm.Imt; @@ -23,10 +23,9 @@ import gov.usgs.earthquake.nshmp.site.NshmpSite; /** * Test NSHMs. */ -@TestInstance(Lifecycle.PER_CLASS) class NshmTests { /* Alaska test sites */ - private static final List<NamedLocation> ALASKA_LOCATIONS = List.of( + static final List<NamedLocation> ALASKA_LOCATIONS = List.of( NshmpSite.ANCHORAGE_AK, NshmpSite.FAIRBANKS_AK, NshmpSite.JUNEAU_AK, @@ -34,7 +33,7 @@ class NshmTests { NshmpSite.VALDEZ_AK); /* CONUS test sites */ - private static final List<NamedLocation> CONUS_LOCATIONS = List.of( + static final List<NamedLocation> CONUS_LOCATIONS = List.of( NshmpSite.LOS_ANGELES_CA, NshmpSite.SAN_FRANCISCO_CA, NshmpSite.SEATTLE_WA, @@ -54,7 +53,7 @@ class NshmTests { private static final Set<Imt> IMTS = EnumSet.of(Imt.PGA, Imt.SA0P2, Imt.SA1P0, Imt.SA5P0); private static final Set<Imt> AK_2007_IMTS = EnumSet.of(Imt.PGA, Imt.SA0P2, Imt.SA1P0); - private static final Map<String, Nshm> NSHMS; + static final Map<String, Nshm> NSHMS; static { Map<String, Nshm> nshms = new HashMap<>(); @@ -137,9 +136,10 @@ class NshmTests { * * To run test: ./gradlew testConus2018 */ - @Test - final void testConus2018() throws IOException { - NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2018"), Optional.ofNullable(getSite())); + @ParameterizedTest + @MethodSource("conusSites") + final void testConus2018(NamedLocation location) throws IOException { + NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2018"), location); } /**