From c6df64bf0f98bc296262c9f4dc4199969cd5eaef Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 24 Oct 2024 09:37:20 -0600 Subject: [PATCH] generate --- .gitlab-ci.yml | 1 + gradle/nshm.gradle | 14 +++++++++++++ .../nshmp/model/GenerateWebActual.java | 21 +++++++++++++++++++ .../earthquake/nshmp/model/NshmTestUtils.java | 12 +++++++++++ 4 files changed, 48 insertions(+) create mode 100644 src/test/java/gov/usgs/earthquake/nshmp/model/GenerateWebActual.java diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 218e7df5..9b24982b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -263,6 +263,7 @@ NSHM Web Tests: script: - CI_RUNNER_MEMORY="$(awk '/MemTotal/ {printf( "%d\n", $2 / 1024 / 1024 * .90 )}' /proc/meminfo)g" - export CI_RUNNER_MEMORY + - ./gradlew generate${NSHM} --info - ./gradlew test${NSHM} --info - cat ${JACOCO_HTML_DIR}/index.html stage: test diff --git a/gradle/nshm.gradle b/gradle/nshm.gradle index 2d4bb044..d4bce26c 100644 --- a/gradle/nshm.gradle +++ b/gradle/nshm.gradle @@ -100,6 +100,20 @@ task generateAlaska2023(type: JavaExec) { main = "gov.usgs.earthquake.nshmp.model.GenerateActual" } +// Generate Alaska 2023 for CI +task generateWebAlaska2023(type: JavaExec) { + description = "Generate alaska-2023 acutal for CI/CD" + classpath = sourceSets.test.runtimeClasspath + + doFirst { + downloadNshm(findNshm("nshm-alaska", 2023)) + } + + jvmArgs("-DNSHM=nshm-alaska-2023") + + main = "gov.usgs.earthquake.nshmp.model.GenerateWebActual" +} + // Generate CONUS 2018 for CI task generateConus2018(type: JavaExec) { diff --git a/src/test/java/gov/usgs/earthquake/nshmp/model/GenerateWebActual.java b/src/test/java/gov/usgs/earthquake/nshmp/model/GenerateWebActual.java new file mode 100644 index 00000000..8c3bd048 --- /dev/null +++ b/src/test/java/gov/usgs/earthquake/nshmp/model/GenerateWebActual.java @@ -0,0 +1,21 @@ +package gov.usgs.earthquake.nshmp.model; + +import java.util.Optional; + +import gov.usgs.earthquake.nshmp.model.NshmTestUtils.Nshm; +import gov.usgs.earthquake.nshmp.www.Application; +import io.micronaut.runtime.Micronaut; + +public class GenerateWebActual { + + public static void main(String[] args) { + Nshm nshm = NshmTests.NSHMS.get(System.getProperty("NSHM")); + var context = Micronaut + .build("--model=" + nshm.modelPath()) + .mainClass(Application.class) + .start(); + NshmTestUtils.writeWebExpecteds(nshm, Optional.of(NshmTests.DATA_PATH)); + context.close(); + } + +} 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 d786a262..e356db56 100644 --- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java +++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java @@ -139,6 +139,18 @@ class NshmTestUtils { } } + static void writeWebExpecteds( + Nshm nshm, + Optional<Path> dataPath) throws InterruptedException, ExecutionException, IOException { + for (NamedLocation location: nshm.locations()) { + Map<String, XySequence> xyMap = HazardServiceUtils.generateActual(location, nshm.imts()); + String json = new StringBuilder(GSON.toJson(xyMap)) + .append(Text.NEWLINE) + .toString(); + writeExpected(nshm, location, json, dataPath); + } + } + private static void assertCurveEquals(XySequence expected, XySequence actual, double tol) { // IMLs close but not exact due to exp() transform assertArrayEquals( -- GitLab