From 313cd9914a36eb2ba54f7e8eafdb957d7e6d7434 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 30 Aug 2023 09:47:08 -0600
Subject: [PATCH 01/52] add memory

---
 .gitlab-ci.yml     |  3 +++
 gradle/nshm.gradle | 12 +++++++-----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b2f90721..11392805 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -239,6 +239,9 @@ NSHM Tests:
       - CMD: testConus2023
       - CMD: testHawaii2021
   script:
+    - memory="$(free -g | awk '/^Mem:/{print $2}')";
+    - export CI_RUNNER_MEMORY="$(printf "%.f" "$(echo "${memory} * 0.90" | bc)")g";
+    - echo "${CI_RUNNER_MEMORY}"
     - ./gradlew ${CMD}
     - cat ${JACOCO_HTML_DIR}/index.html
   stage: test
diff --git a/gradle/nshm.gradle b/gradle/nshm.gradle
index 0aad9e2f..6a761b87 100644
--- a/gradle/nshm.gradle
+++ b/gradle/nshm.gradle
@@ -13,6 +13,8 @@ import org.yaml.snakeyaml.Yaml
 
 ext {
   nshmDir = "nshms";
+  envMemory = System.getenv("CI_RUNNER_MEMORY")
+  def xmx = envMemory ? envMemory : "16g"
 
   // Download and unzip NSHM
   downloadNshm = {nshm ->
@@ -92,7 +94,7 @@ task testAlaska2007(type: Test) {
   useJUnitPlatform()
   jvmArgs(
       "-Xms2g",
-      "-Xmx8g",
+      "-Xmx${xmx}",
       )
 
   filter {
@@ -116,7 +118,7 @@ task testAlaska2023(type: Test) {
   useJUnitPlatform()
   jvmArgs(
       "-Xms2g",
-      "-Xmx8g",
+      "-Xmx${xmx}",
       )
 
   filter {
@@ -140,7 +142,7 @@ task testConus2018(type: Test) {
   useJUnitPlatform()
   jvmArgs(
       "-Xms2g",
-      "-Xmx8g",
+      "-Xmx${xmx}",
       )
 
   filter {
@@ -164,7 +166,7 @@ task testConus2023(type: Test) {
   useJUnitPlatform()
   jvmArgs(
       "-Xms2g",
-      "-Xmx16g",
+      "-Xmx${xmx}",
       )
 
   filter {
@@ -188,7 +190,7 @@ task testHawaii2021(type: Test) {
   useJUnitPlatform()
   jvmArgs(
       "-Xms2g",
-      "-Xmx8g",
+      "-Xmx${xmx}",
       )
 
   filter {
-- 
GitLab


From 021ea0e64a8cc5bf5ccce31ce5c36b66341667bc Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 30 Aug 2023 09:50:01 -0600
Subject: [PATCH 02/52] remove def

---
 gradle/nshm.gradle | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gradle/nshm.gradle b/gradle/nshm.gradle
index 6a761b87..f4ba1718 100644
--- a/gradle/nshm.gradle
+++ b/gradle/nshm.gradle
@@ -14,7 +14,7 @@ import org.yaml.snakeyaml.Yaml
 ext {
   nshmDir = "nshms";
   envMemory = System.getenv("CI_RUNNER_MEMORY")
-  def xmx = envMemory ? envMemory : "16g"
+  xmx = envMemory ? envMemory : "16g"
 
   // Download and unzip NSHM
   downloadNshm = {nshm ->
-- 
GitLab


From 930db2b04a0f6dcdb17f1fb0479f2daddb8c232c Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 30 Aug 2023 09:58:34 -0600
Subject: [PATCH 03/52] install free

---
 .gitlab-ci.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 11392805..811a74a9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -239,6 +239,7 @@ NSHM Tests:
       - CMD: testConus2023
       - CMD: testHawaii2021
   script:
+    - yum install procps -y
     - memory="$(free -g | awk '/^Mem:/{print $2}')";
     - export CI_RUNNER_MEMORY="$(printf "%.f" "$(echo "${memory} * 0.90" | bc)")g";
     - echo "${CI_RUNNER_MEMORY}"
-- 
GitLab


From e38ae50db70f4389891a847bb190aeb815dc5c4b Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 30 Aug 2023 10:03:41 -0600
Subject: [PATCH 04/52] test

---
 .gitlab-ci.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 811a74a9..e8d3faf9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -208,6 +208,7 @@ Container Registry:
 
 Build Project:
   script:
+    - cat /proc/meminfo
     - ./gradlew assemble
   stage: build
 
-- 
GitLab


From e5369e309632ae7dacb563e0db99176930cdea05 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 30 Aug 2023 10:11:21 -0600
Subject: [PATCH 05/52] get mem

---
 .gitlab-ci.yml | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e8d3faf9..467daa0f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -208,7 +208,6 @@ Container Registry:
 
 Build Project:
   script:
-    - cat /proc/meminfo
     - ./gradlew assemble
   stage: build
 
@@ -240,9 +239,7 @@ NSHM Tests:
       - CMD: testConus2023
       - CMD: testHawaii2021
   script:
-    - yum install procps -y
-    - memory="$(free -g | awk '/^Mem:/{print $2}')";
-    - export CI_RUNNER_MEMORY="$(printf "%.f" "$(echo "${memory} * 0.90" | bc)")g";
+    - export CI_RUNNER_MEMORY="$(awk '/MemTotal/ {printf( "%d\n", $2 / 1024 / 1024 * .90 )}' /proc/meminfo)"
     - echo "${CI_RUNNER_MEMORY}"
     - ./gradlew ${CMD}
     - cat ${JACOCO_HTML_DIR}/index.html
-- 
GitLab


From 2b45b5d261eb830979841b3255ce193979be740c Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 30 Aug 2023 10:19:38 -0600
Subject: [PATCH 06/52] export mem

---
 .gitlab-ci.yml     | 3 ++-
 gradle/nshm.gradle | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 467daa0f..b7d2133e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -239,7 +239,8 @@ NSHM Tests:
       - CMD: testConus2023
       - CMD: testHawaii2021
   script:
-    - export CI_RUNNER_MEMORY="$(awk '/MemTotal/ {printf( "%d\n", $2 / 1024 / 1024 * .90 )}' /proc/meminfo)"
+    - CI_RUNNER_MEMORY="$(awk '/MemTotal/ {printf( "%d\n", $2 / 1024 / 1024 * .90 )}' /proc/meminfo)"
+    - export CI_RUNNER_MEMORY
     - echo "${CI_RUNNER_MEMORY}"
     - ./gradlew ${CMD}
     - cat ${JACOCO_HTML_DIR}/index.html
diff --git a/gradle/nshm.gradle b/gradle/nshm.gradle
index f4ba1718..e42ccd41 100644
--- a/gradle/nshm.gradle
+++ b/gradle/nshm.gradle
@@ -82,6 +82,7 @@ task nshms() {
 task testAlaska2007(type: Test) {
   description = "Test Alaska 2007 NSHM"
   group = "verification"
+  println("Memory: " + xmx)
 
   doFirst {
     downloadNshm(findNshm("nshm-alaska", 2007))
-- 
GitLab


From 4bc81c2fe5637f7fa8879d78defa106711a0602a Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 30 Aug 2023 10:21:11 -0600
Subject: [PATCH 07/52] add g

---
 .gitlab-ci.yml | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b7d2133e..28321b70 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -239,9 +239,8 @@ NSHM Tests:
       - CMD: testConus2023
       - CMD: testHawaii2021
   script:
-    - CI_RUNNER_MEMORY="$(awk '/MemTotal/ {printf( "%d\n", $2 / 1024 / 1024 * .90 )}' /proc/meminfo)"
+    - CI_RUNNER_MEMORY="$(awk '/MemTotal/ {printf( "%d\n", $2 / 1024 / 1024 * .90 )}' /proc/meminfo)g"
     - export CI_RUNNER_MEMORY
-    - echo "${CI_RUNNER_MEMORY}"
     - ./gradlew ${CMD}
     - cat ${JACOCO_HTML_DIR}/index.html
   stage: test
-- 
GitLab


From 27082174a921ef734e85720b4ac3ccebc8a9181b Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 30 Aug 2023 10:55:34 -0600
Subject: [PATCH 08/52] test parallel stream

---
 gradle/nshm.gradle                                        | 1 -
 .../gov/usgs/earthquake/nshmp/model/NshmTestUtils.java    | 8 ++++++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/gradle/nshm.gradle b/gradle/nshm.gradle
index e42ccd41..f4ba1718 100644
--- a/gradle/nshm.gradle
+++ b/gradle/nshm.gradle
@@ -82,7 +82,6 @@ task nshms() {
 task testAlaska2007(type: Test) {
   description = "Test Alaska 2007 NSHM"
   group = "verification"
-  println("Memory: " + xmx)
 
   doFirst {
     downloadNshm(findNshm("nshm-alaska", 2007))
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 b8769966..ec4802e4 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
@@ -81,9 +81,13 @@ class NshmTestUtils {
   static void testNshm(Nshm nshm) {
     NshmModel nshmModel = loadModel(nshm);
 
-    for (NamedLocation location : nshm.locations()) {
+    nshm.locations().parallelStream().forEach(location -> {
       compareCurves(nshmModel, location);
-    }
+    });
+
+    // for (NamedLocation location : nshm.locations()) {
+    //   compareCurves(nshmModel, location);
+    // }
 
     nshmModel.exec.shutdown();
   }
-- 
GitLab


From 7e89466033abe7a8b4f006d52ad1125a70213e55 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 30 Aug 2023 11:36:02 -0600
Subject: [PATCH 09/52] remove stream

---
 .../gov/usgs/earthquake/nshmp/model/NshmTestUtils.java    | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

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 ec4802e4..b8769966 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
@@ -81,13 +81,9 @@ class NshmTestUtils {
   static void testNshm(Nshm nshm) {
     NshmModel nshmModel = loadModel(nshm);
 
-    nshm.locations().parallelStream().forEach(location -> {
+    for (NamedLocation location : nshm.locations()) {
       compareCurves(nshmModel, location);
-    });
-
-    // for (NamedLocation location : nshm.locations()) {
-    //   compareCurves(nshmModel, location);
-    // }
+    }
 
     nshmModel.exec.shutdown();
   }
-- 
GitLab


From c84cb368b6d46ff45457c1407b50cf52c85323cd Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 30 Aug 2023 11:37:44 -0600
Subject: [PATCH 10/52] add info

---
 .gitlab-ci.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 28321b70..53a0001f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -241,7 +241,7 @@ NSHM Tests:
   script:
     - CI_RUNNER_MEMORY="$(awk '/MemTotal/ {printf( "%d\n", $2 / 1024 / 1024 * .90 )}' /proc/meminfo)g"
     - export CI_RUNNER_MEMORY
-    - ./gradlew ${CMD}
+    - ./gradlew ${CMD} --info
     - cat ${JACOCO_HTML_DIR}/index.html
   stage: test
 
-- 
GitLab


From b384c88dd1fb2409c8145a7396e90444a569c9d4 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 30 Aug 2023 11:51:33 -0600
Subject: [PATCH 11/52] test

---
 .../java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java | 6 ++++++
 1 file changed, 6 insertions(+)

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 b8769966..5c0e00b0 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
@@ -16,6 +16,7 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.logging.Logger;
 import java.util.stream.Collectors;
 
 import com.fasterxml.jackson.databind.JsonNode;
@@ -40,6 +41,7 @@ import io.swagger.v3.core.util.Yaml;
  * Utilities to run tests on a NSHM.
  */
 class NshmTestUtils {
+  private static Logger LOGGER = Logger.getAnonymousLogger();
   private static final Path DATA_PATH = Paths.get("src/test/resources/e2e");
 
   private static final double TOLERANCE = 1e-12;
@@ -55,6 +57,7 @@ class NshmTestUtils {
    */
   static NshmModel loadModel(Nshm nshm) {
     int cores = Runtime.getRuntime().availableProcessors();
+    LOGGER.info("Cores: " + cores);
     return new NshmModel(
         nshm,
         ModelLoader.load(nshm.modelPath()),
@@ -80,8 +83,11 @@ class NshmTestUtils {
    */
   static void testNshm(Nshm nshm) {
     NshmModel nshmModel = loadModel(nshm);
+    LOGGER.info("Model loaded");
+    LOGGER.info("Number of sites: " + nshm.locations().size());
 
     for (NamedLocation location : nshm.locations()) {
+      LOGGER.info("Location: " + location.toString());
       compareCurves(nshmModel, location);
     }
 
-- 
GitLab


From 73b0cfb531bf003bb7a92981fa559f459db2e813 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 30 Aug 2023 12:17:07 -0600
Subject: [PATCH 12/52] test

---
 .../java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java    | 3 +++
 1 file changed, 3 insertions(+)

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 5c0e00b0..10e95153 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
@@ -135,8 +135,11 @@ class NshmTestUtils {
   }
 
   private static void compareCurves(NshmModel nshmModel, NamedLocation location) {
+    LOGGER.info("Compare curves");
     Map<String, XySequence> actual = generateActual(nshmModel, location);
+    LOGGER.info("Generated acutal");
     Map<String, XySequence> expected = readExpected(nshmModel, location);
+    LOGGER.info("Read expected");
 
     for (String key : actual.keySet()) {
       assertCurveEquals(expected.get(key), actual.get(key), TOLERANCE);
-- 
GitLab


From 21175bc0aa5c6809c80d02abc505726e9711d2b7 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 30 Aug 2023 12:25:16 -0600
Subject: [PATCH 13/52] test

---
 .../java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

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 10e95153..bea84d4b 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
@@ -149,25 +149,29 @@ class NshmTestUtils {
   private static Map<String, XySequence> generateActual(
       NshmModel nshmModel,
       NamedLocation location) {
-
+    LOGGER.info("Generate acutal");
     Site site = createSite(
         location.location(),
         nshmModel.model.siteData());
+    LOGGER.info("site created ");
 
     CalcConfig config = CalcConfig.copyOf(nshmModel.model.config())
         .imts(nshmModel.nshm.imts())
         .build();
+    LOGGER.info("calc created ");
 
     Hazard hazard = HazardCalcs.hazard(
         nshmModel.model,
         config,
         site,
         nshmModel.exec);
+    LOGGER.info("hazard created ");
 
     Map<String, XySequence> xyMap = hazard.curves().entrySet().stream()
         .collect(Collectors.toMap(
             e -> e.getKey().toString(),
             Entry::getValue));
+    LOGGER.info("xyMap created ");
 
     return xyMap;
   }
-- 
GitLab


From d04d9b81dbc7a858b79d7215c9cb8580d1d034c0 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 30 Aug 2023 15:20:27 -0600
Subject: [PATCH 14/52] test

---
 .../gov/usgs/earthquake/nshmp/model/NshmTestUtils.java   | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

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 bea84d4b..5c0e00b0 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
@@ -135,11 +135,8 @@ class NshmTestUtils {
   }
 
   private static void compareCurves(NshmModel nshmModel, NamedLocation location) {
-    LOGGER.info("Compare curves");
     Map<String, XySequence> actual = generateActual(nshmModel, location);
-    LOGGER.info("Generated acutal");
     Map<String, XySequence> expected = readExpected(nshmModel, location);
-    LOGGER.info("Read expected");
 
     for (String key : actual.keySet()) {
       assertCurveEquals(expected.get(key), actual.get(key), TOLERANCE);
@@ -149,29 +146,25 @@ class NshmTestUtils {
   private static Map<String, XySequence> generateActual(
       NshmModel nshmModel,
       NamedLocation location) {
-    LOGGER.info("Generate acutal");
+
     Site site = createSite(
         location.location(),
         nshmModel.model.siteData());
-    LOGGER.info("site created ");
 
     CalcConfig config = CalcConfig.copyOf(nshmModel.model.config())
         .imts(nshmModel.nshm.imts())
         .build();
-    LOGGER.info("calc created ");
 
     Hazard hazard = HazardCalcs.hazard(
         nshmModel.model,
         config,
         site,
         nshmModel.exec);
-    LOGGER.info("hazard created ");
 
     Map<String, XySequence> xyMap = hazard.curves().entrySet().stream()
         .collect(Collectors.toMap(
             e -> e.getKey().toString(),
             Entry::getValue));
-    LOGGER.info("xyMap created ");
 
     return xyMap;
   }
-- 
GitLab


From 5dcc5888e1beb847d0c5831671dae14119416398 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 30 Aug 2023 15:26:21 -0600
Subject: [PATCH 15/52] test

---
 .../java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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 5c0e00b0..f867f6d9 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
@@ -61,7 +61,7 @@ class NshmTestUtils {
     return new NshmModel(
         nshm,
         ModelLoader.load(nshm.modelPath()),
-        Executors.newFixedThreadPool(cores));
+        Executors.newFixedThreadPool(4));
   }
 
   /**
-- 
GitLab


From 6edafea04a9cae7aaccb8ed2e2463b415bb1852c Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 30 Aug 2023 15:34:16 -0600
Subject: [PATCH 16/52] test

---
 gradle/nshm.gradle                                        | 8 ++++----
 .../gov/usgs/earthquake/nshmp/model/NshmTestUtils.java    | 4 +++-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/gradle/nshm.gradle b/gradle/nshm.gradle
index f4ba1718..2597e0c2 100644
--- a/gradle/nshm.gradle
+++ b/gradle/nshm.gradle
@@ -140,10 +140,10 @@ task testConus2018(type: Test) {
   }
 
   useJUnitPlatform()
-  jvmArgs(
-      "-Xms2g",
-      "-Xmx${xmx}",
-      )
+  // jvmArgs(
+  //     "-Xms2g",
+  //     "-Xmx${xmx}",
+  //     )
 
   filter {
     includeTestsMatching "gov.usgs.earthquake.nshmp.model.NshmTests.testConus2018"
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 f867f6d9..04c7e2a2 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
@@ -61,7 +61,7 @@ class NshmTestUtils {
     return new NshmModel(
         nshm,
         ModelLoader.load(nshm.modelPath()),
-        Executors.newFixedThreadPool(4));
+        Executors.newFixedThreadPool(cores));
   }
 
   /**
@@ -155,6 +155,8 @@ class NshmTestUtils {
         .imts(nshmModel.nshm.imts())
         .build();
 
+    LOGGER.info(config.toString());
+
     Hazard hazard = HazardCalcs.hazard(
         nshmModel.model,
         config,
-- 
GitLab


From 60757614e220aa05d948aef2e1e7bc3ef928ec6d Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 30 Aug 2023 15:42:15 -0600
Subject: [PATCH 17/52] test

---
 gradle/nshm.gradle | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gradle/nshm.gradle b/gradle/nshm.gradle
index 2597e0c2..db97e35b 100644
--- a/gradle/nshm.gradle
+++ b/gradle/nshm.gradle
@@ -140,10 +140,10 @@ task testConus2018(type: Test) {
   }
 
   useJUnitPlatform()
-  // jvmArgs(
-  //     "-Xms2g",
-  //     "-Xmx${xmx}",
-  //     )
+  jvmArgs(
+      "-Xms${xmx}",
+      "-Xmx${xmx}",
+      )
 
   filter {
     includeTestsMatching "gov.usgs.earthquake.nshmp.model.NshmTests.testConus2018"
-- 
GitLab


From 350042ac4d84a781f6b5336c556706972d7846a9 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 30 Aug 2023 15:43:39 -0600
Subject: [PATCH 18/52] test

---
 .../java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java     | 2 --
 1 file changed, 2 deletions(-)

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 04c7e2a2..5c0e00b0 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
@@ -155,8 +155,6 @@ class NshmTestUtils {
         .imts(nshmModel.nshm.imts())
         .build();
 
-    LOGGER.info(config.toString());
-
     Hazard hazard = HazardCalcs.hazard(
         nshmModel.model,
         config,
-- 
GitLab


From d008b9ce502fadbd899fb518c0a8a30199be44ba Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 10:20:39 -0600
Subject: [PATCH 19/52] test

---
 .../earthquake/nshmp/model/NshmTestUtils.java | 16 +++++++----
 .../earthquake/nshmp/model/NshmTests.java     | 28 +++++++++++++------
 src/test/resources/junit-platform.properties  |  4 +++
 3 files changed, 34 insertions(+), 14 deletions(-)
 create mode 100644 src/test/resources/junit-platform.properties

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 5c0e00b0..52bbd353 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
@@ -12,6 +12,7 @@ import java.nio.file.Paths;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Map.Entry;
 import java.util.Set;
 import java.util.concurrent.ExecutorService;
@@ -34,7 +35,7 @@ import gov.usgs.earthquake.nshmp.calc.Site;
 import gov.usgs.earthquake.nshmp.data.XySequence;
 import gov.usgs.earthquake.nshmp.geo.Location;
 import gov.usgs.earthquake.nshmp.gmm.Imt;
-
+import gov.usgs.earthquake.nshmp.site.NshmpSite;
 import io.swagger.v3.core.util.Yaml;
 
 /**
@@ -81,14 +82,19 @@ class NshmTestUtils {
    *
    * @param nshm The NSHM to test
    */
-  static void testNshm(Nshm nshm) {
+  static void testNshm(Nshm nshm, Optional<NshmpSite> site) {
     NshmModel nshmModel = loadModel(nshm);
     LOGGER.info("Model loaded");
     LOGGER.info("Number of sites: " + nshm.locations().size());
 
-    for (NamedLocation location : nshm.locations()) {
-      LOGGER.info("Location: " + location.toString());
-      compareCurves(nshmModel, location);
+    if (site.isPresent()) {
+      LOGGER.info("Location: " + site.get().toString());
+      compareCurves(nshmModel, site.get());
+    } else {
+      for (NamedLocation location : nshm.locations()) {
+        LOGGER.info("Location: " + location.toString());
+        compareCurves(nshmModel, location);
+      }
     }
 
     nshmModel.exec.shutdown();
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 85927eac..30823fee 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
@@ -6,7 +6,9 @@ import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
+import java.util.logging.Logger;
 
 import org.junit.jupiter.api.Test;
 
@@ -21,6 +23,7 @@ import gov.usgs.earthquake.nshmp.site.NshmpSite;
  * Test NSHMs.
  */
 class NshmTests {
+  private static Logger LOGGER = Logger.getAnonymousLogger();
   /* Alaska test sites */
   private static final List<NamedLocation> ALASKA_LOCATIONS = List.of(
       NshmpSite.ANCHORAGE_AK,
@@ -33,10 +36,10 @@ class NshmTests {
   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.SEATTLE_WA,
+      // NshmpSite.SALT_LAKE_CITY_UT,
+      // NshmpSite.RENO_NV,
+      // NshmpSite.NEW_MADRID_MO,
       NshmpSite.BOSTON_MA,
       NshmpSite.NEW_YORK_NY,
       NshmpSite.CHICAGO_IL);
@@ -108,6 +111,13 @@ class NshmTests {
     // }
   }
 
+  private NshmpSite getSite() {
+    var arg = System.getProperty("TEST_SITE");
+    LOGGER.info("\n\n ---------------- TEST SITE: " + arg + "\n\n-------------");
+
+    return arg == null ? null : NshmpSite.valueOf(arg);
+  }
+
   /**
    * Test Alaska 2007 NSHM
    *
@@ -115,7 +125,7 @@ class NshmTests {
    */
   @Test
   final void testAlaska2007() throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-alaska-2007"));
+    NshmTestUtils.testNshm(NSHMS.get("nshm-alaska-2007"), Optional.ofNullable(getSite()));
   }
 
   /**
@@ -125,7 +135,7 @@ class NshmTests {
    */
   @Test
   final void testAlaska2023() throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-alaska-2023"));
+    NshmTestUtils.testNshm(NSHMS.get("nshm-alaska-2023"), Optional.ofNullable(getSite()));
   }
 
   /**
@@ -135,7 +145,7 @@ class NshmTests {
    */
   @Test
   final void testConus2018() throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2018"));
+    NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2018"), Optional.ofNullable(getSite()));
   }
 
   /**
@@ -145,7 +155,7 @@ class NshmTests {
    */
   @Test
   final void testConus2023() throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2023"));
+    NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2023"), Optional.of(getSite()));
   }
 
   /**
@@ -155,6 +165,6 @@ class NshmTests {
    */
   @Test
   final void testHawaii2021() throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-hawaii-2021"));
+    NshmTestUtils.testNshm(NSHMS.get("nshm-hawaii-2021"), Optional.of(getSite()));
   }
 }
diff --git a/src/test/resources/junit-platform.properties b/src/test/resources/junit-platform.properties
new file mode 100644
index 00000000..8f308f80
--- /dev/null
+++ b/src/test/resources/junit-platform.properties
@@ -0,0 +1,4 @@
+junit.jupiter.execution.parallel.enabled = true
+junit.jupiter.execution.parallel.mode.default = concurrent
+junit.jupiter.execution.parallel.mode.classes.default = concurrent
+junit.jupiter.execution.parallel.config.fixed.parallelism
-- 
GitLab


From 0c6e8db298d703d0cedb3300161f8dfcc7e26bef Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 10:27:14 -0600
Subject: [PATCH 20/52] test 1 core

---
 .../java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java  | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

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 52bbd353..42ac001f 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
@@ -12,8 +12,8 @@ import java.nio.file.Paths;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
-import java.util.Optional;
 import java.util.Map.Entry;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -36,6 +36,7 @@ import gov.usgs.earthquake.nshmp.data.XySequence;
 import gov.usgs.earthquake.nshmp.geo.Location;
 import gov.usgs.earthquake.nshmp.gmm.Imt;
 import gov.usgs.earthquake.nshmp.site.NshmpSite;
+
 import io.swagger.v3.core.util.Yaml;
 
 /**
@@ -62,7 +63,7 @@ class NshmTestUtils {
     return new NshmModel(
         nshm,
         ModelLoader.load(nshm.modelPath()),
-        Executors.newFixedThreadPool(cores));
+        Executors.newFixedThreadPool(1));
   }
 
   /**
-- 
GitLab


From 4fcec0ed7e2ee2421ef349361aa257664f571bc3 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 10:33:13 -0600
Subject: [PATCH 21/52] test threaded

---
 .../java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java | 2 +-
 .../java/gov/usgs/earthquake/nshmp/model/NshmTests.java     | 6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

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 42ac001f..7546fb6b 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
@@ -63,7 +63,7 @@ class NshmTestUtils {
     return new NshmModel(
         nshm,
         ModelLoader.load(nshm.modelPath()),
-        Executors.newFixedThreadPool(1));
+        Executors.newFixedThreadPool(cores));
   }
 
   /**
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 30823fee..8d033a6b 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
@@ -8,6 +8,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
+import java.util.concurrent.Executors;
 import java.util.logging.Logger;
 
 import org.junit.jupiter.api.Test;
@@ -145,7 +146,10 @@ class NshmTests {
    */
   @Test
   final void testConus2018() throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2018"), Optional.ofNullable(getSite()));
+    var service = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
+    service.execute(() -> {
+      NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2018"), Optional.ofNullable(getSite()));
+    });
   }
 
   /**
-- 
GitLab


From 1d9c002a9c9632fd8219e244915763557a51ad63 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 10:44:55 -0600
Subject: [PATCH 22/52] test latch

---
 .../gov/usgs/earthquake/nshmp/model/NshmTests.java     | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

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 8d033a6b..be1cd6c8 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
@@ -8,6 +8,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
+import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.Executors;
 import java.util.logging.Logger;
 
@@ -143,13 +144,18 @@ class NshmTests {
    * Test CONUS 2018 NSHM
    *
    * To run test: ./gradlew testConus2018
+   * @throws InterruptedException
    */
   @Test
-  final void testConus2018() throws IOException {
-    var service = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
+  final void testConus2018() throws IOException, InterruptedException {
+    var cores = Runtime.getRuntime().availableProcessors();
+    var service = Executors.newFixedThreadPool(cores);
+    CountDownLatch latch = new CountDownLatch(1);
     service.execute(() -> {
       NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2018"), Optional.ofNullable(getSite()));
+      latch.countDown();
     });
+    latch.await();
   }
 
   /**
-- 
GitLab


From eb6c9985033ca0d8e17d48eb2b6f8af41eb8541e Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 11:07:32 -0600
Subject: [PATCH 23/52] single site

---
 gradle/nshm.gradle                            | 10 ++++++++
 .../earthquake/nshmp/model/NshmTestUtils.java |  5 ++--
 .../earthquake/nshmp/model/NshmTests.java     | 25 ++++++-------------
 src/test/resources/junit-platform.properties  |  4 ---
 4 files changed, 20 insertions(+), 24 deletions(-)
 delete mode 100644 src/test/resources/junit-platform.properties

diff --git a/gradle/nshm.gradle b/gradle/nshm.gradle
index db97e35b..910405dd 100644
--- a/gradle/nshm.gradle
+++ b/gradle/nshm.gradle
@@ -91,6 +91,8 @@ task testAlaska2007(type: Test) {
     exceptionFormat "full"
   }
 
+  systemProperties(System.getProperties())
+
   useJUnitPlatform()
   jvmArgs(
       "-Xms2g",
@@ -115,6 +117,8 @@ task testAlaska2023(type: Test) {
     exceptionFormat "full"
   }
 
+  systemProperties(System.getProperties())
+
   useJUnitPlatform()
   jvmArgs(
       "-Xms2g",
@@ -139,6 +143,8 @@ task testConus2018(type: Test) {
     exceptionFormat "full"
   }
 
+  systemProperties(System.getProperties())
+
   useJUnitPlatform()
   jvmArgs(
       "-Xms${xmx}",
@@ -163,6 +169,8 @@ task testConus2023(type: Test) {
     exceptionFormat "full"
   }
 
+  systemProperties(System.getProperties())
+
   useJUnitPlatform()
   jvmArgs(
       "-Xms2g",
@@ -187,6 +195,8 @@ task testHawaii2021(type: Test) {
     exceptionFormat "full"
   }
 
+  systemProperties(System.getProperties())
+
   useJUnitPlatform()
   jvmArgs(
       "-Xms2g",
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 7546fb6b..8edc4534 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
@@ -43,7 +43,8 @@ import io.swagger.v3.core.util.Yaml;
  * Utilities to run tests on a NSHM.
  */
 class NshmTestUtils {
-  private static Logger LOGGER = Logger.getAnonymousLogger();
+  private static Logger LOGGER = Logger.getLogger(NshmTestUtils.class.getName());
+
   private static final Path DATA_PATH = Paths.get("src/test/resources/e2e");
 
   private static final double TOLERANCE = 1e-12;
@@ -85,8 +86,6 @@ class NshmTestUtils {
    */
   static void testNshm(Nshm nshm, Optional<NshmpSite> site) {
     NshmModel nshmModel = loadModel(nshm);
-    LOGGER.info("Model loaded");
-    LOGGER.info("Number of sites: " + nshm.locations().size());
 
     if (site.isPresent()) {
       LOGGER.info("Location: " + site.get().toString());
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 be1cd6c8..6a63f904 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
@@ -113,13 +113,6 @@ class NshmTests {
     // }
   }
 
-  private NshmpSite getSite() {
-    var arg = System.getProperty("TEST_SITE");
-    LOGGER.info("\n\n ---------------- TEST SITE: " + arg + "\n\n-------------");
-
-    return arg == null ? null : NshmpSite.valueOf(arg);
-  }
-
   /**
    * Test Alaska 2007 NSHM
    *
@@ -148,14 +141,7 @@ class NshmTests {
    */
   @Test
   final void testConus2018() throws IOException, InterruptedException {
-    var cores = Runtime.getRuntime().availableProcessors();
-    var service = Executors.newFixedThreadPool(cores);
-    CountDownLatch latch = new CountDownLatch(1);
-    service.execute(() -> {
-      NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2018"), Optional.ofNullable(getSite()));
-      latch.countDown();
-    });
-    latch.await();
+    NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2018"), Optional.ofNullable(getSite()));
   }
 
   /**
@@ -165,7 +151,7 @@ class NshmTests {
    */
   @Test
   final void testConus2023() throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2023"), Optional.of(getSite()));
+    NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2023"), Optional.ofNullable(getSite()));
   }
 
   /**
@@ -175,6 +161,11 @@ class NshmTests {
    */
   @Test
   final void testHawaii2021() throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-hawaii-2021"), Optional.of(getSite()));
+    NshmTestUtils.testNshm(NSHMS.get("nshm-hawaii-2021"), Optional.ofNullable(getSite()));
+  }
+
+  private NshmpSite getSite() {
+    var testSite = System.getProperty("TEST_SITE");
+    return testSite == null ? null : NshmpSite.valueOf(testSite);
   }
 }
diff --git a/src/test/resources/junit-platform.properties b/src/test/resources/junit-platform.properties
deleted file mode 100644
index 8f308f80..00000000
--- a/src/test/resources/junit-platform.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-junit.jupiter.execution.parallel.enabled = true
-junit.jupiter.execution.parallel.mode.default = concurrent
-junit.jupiter.execution.parallel.mode.classes.default = concurrent
-junit.jupiter.execution.parallel.config.fixed.parallelism
-- 
GitLab


From 9c743f94d4592ea297ff9c662c32fa9a7539cc3b Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 11:08:18 -0600
Subject: [PATCH 24/52] cleanup

---
 .../gov/usgs/earthquake/nshmp/model/NshmTests.java   | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

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 6a63f904..e49414cd 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
@@ -8,9 +8,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.Executors;
-import java.util.logging.Logger;
 
 import org.junit.jupiter.api.Test;
 
@@ -25,7 +22,6 @@ import gov.usgs.earthquake.nshmp.site.NshmpSite;
  * Test NSHMs.
  */
 class NshmTests {
-  private static Logger LOGGER = Logger.getAnonymousLogger();
   /* Alaska test sites */
   private static final List<NamedLocation> ALASKA_LOCATIONS = List.of(
       NshmpSite.ANCHORAGE_AK,
@@ -38,10 +34,10 @@ class NshmTests {
   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.SEATTLE_WA,
+      NshmpSite.SALT_LAKE_CITY_UT,
+      NshmpSite.RENO_NV,
+      NshmpSite.NEW_MADRID_MO,
       NshmpSite.BOSTON_MA,
       NshmpSite.NEW_YORK_NY,
       NshmpSite.CHICAGO_IL);
-- 
GitLab


From b3d51d89415be39b1e0154dad0210e2b8a13e84f Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 11:13:21 -0600
Subject: [PATCH 25/52] test single site

---
 .gitlab-ci.yml | 38 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 37 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 53a0001f..04bb908d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -234,14 +234,50 @@ NSHM Tests:
   parallel:
     matrix:
       - CMD: testAlaska2007
+        TEST_SITE:
+          - ANCHORAGE_AK
+          - FAIRBANKS_AK
+          - JUNEAU_AK
+          - KODIAK_AK
+          - VALDEZ_AK
       - CMD: testAlaska2023
+        TEST_SITE:
+          - ANCHORAGE_AK
+          - FAIRBANKS_AK
+          - JUNEAU_AK
+          - KODIAK_AK
+          - VALDEZ_AK
       - CMD: testConus2018
+        TEST_SITE:
+          - LOS_ANGELES_CA
+          - SAN_FRANCISCO_CA
+          - SEATTLE_WA
+          - SALT_LAKE_CITY_UT
+          - RENO_NV
+          - NEW_MADRID_MO
+          - BOSTON_MA
+          - NEW_YORK_NY
+          - CHICAGO_IL
       - CMD: testConus2023
+        TEST_SITE:
+          - LOS_ANGELES_CA
+          - SAN_FRANCISCO_CA
+          - SEATTLE_WA
+          - SALT_LAKE_CITY_UT
+          - RENO_NV
+          - NEW_MADRID_MO
+          - BOSTON_MA
+          - NEW_YORK_NY
+          - CHICAGO_IL
       - CMD: testHawaii2021
+        TEST_SITE:
+          - HILO_HI
+          - HONOLULU_HI
+          - KAILUA_KONA_HI
   script:
     - CI_RUNNER_MEMORY="$(awk '/MemTotal/ {printf( "%d\n", $2 / 1024 / 1024 * .90 )}' /proc/meminfo)g"
     - export CI_RUNNER_MEMORY
-    - ./gradlew ${CMD} --info
+    - ./gradlew ${CMD} -DTEST_SITE=${TEST_SITE} --info
     - cat ${JACOCO_HTML_DIR}/index.html
   stage: test
 
-- 
GitLab


From 9ae9951e8c281411c5447244351c483d57004a36 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 12:09:39 -0600
Subject: [PATCH 26/52] test

---
 .gitlab-ci.yml | 134 +++++++++++++++++++++++++++++++++----------------
 1 file changed, 90 insertions(+), 44 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 04bb908d..29219572 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -223,7 +223,7 @@ Markdown Lint:
     - ./gradlew markdownlint
   stage: test
 
-NSHM Tests:
+.nshm-test:
   artifacts:
     paths:
       - ${JACOCO_HTML_DIR}
@@ -231,49 +231,49 @@ NSHM Tests:
       junit: ${JUNIT_FILES}
   coverage: '/Total.*?([0-9]{1,3})%/'
   needs: []
-  parallel:
-    matrix:
-      - CMD: testAlaska2007
-        TEST_SITE:
-          - ANCHORAGE_AK
-          - FAIRBANKS_AK
-          - JUNEAU_AK
-          - KODIAK_AK
-          - VALDEZ_AK
-      - CMD: testAlaska2023
-        TEST_SITE:
-          - ANCHORAGE_AK
-          - FAIRBANKS_AK
-          - JUNEAU_AK
-          - KODIAK_AK
-          - VALDEZ_AK
-      - CMD: testConus2018
-        TEST_SITE:
-          - LOS_ANGELES_CA
-          - SAN_FRANCISCO_CA
-          - SEATTLE_WA
-          - SALT_LAKE_CITY_UT
-          - RENO_NV
-          - NEW_MADRID_MO
-          - BOSTON_MA
-          - NEW_YORK_NY
-          - CHICAGO_IL
-      - CMD: testConus2023
-        TEST_SITE:
-          - LOS_ANGELES_CA
-          - SAN_FRANCISCO_CA
-          - SEATTLE_WA
-          - SALT_LAKE_CITY_UT
-          - RENO_NV
-          - NEW_MADRID_MO
-          - BOSTON_MA
-          - NEW_YORK_NY
-          - CHICAGO_IL
-      - CMD: testHawaii2021
-        TEST_SITE:
-          - HILO_HI
-          - HONOLULU_HI
-          - KAILUA_KONA_HI
+  # parallel:
+  #   matrix:
+  #     - CMD: testAlaska2007
+  #       TEST_SITE:
+  #         - ANCHORAGE_AK
+  #         - FAIRBANKS_AK
+  #         - JUNEAU_AK
+  #         - KODIAK_AK
+  #         - VALDEZ_AK
+  #     - CMD: testAlaska2023
+  #       TEST_SITE:
+  #         - ANCHORAGE_AK
+  #         - FAIRBANKS_AK
+  #         - JUNEAU_AK
+  #         - KODIAK_AK
+  #         - VALDEZ_AK
+  #     - CMD: testConus2018
+  #       TEST_SITE:
+  #         - LOS_ANGELES_CA
+  #         - SAN_FRANCISCO_CA
+  #         - SEATTLE_WA
+  #         - SALT_LAKE_CITY_UT
+  #         - RENO_NV
+  #         - NEW_MADRID_MO
+  #         - BOSTON_MA
+  #         - NEW_YORK_NY
+  #         - CHICAGO_IL
+  #     - CMD: testConus2023
+  #       TEST_SITE:
+  #         - LOS_ANGELES_CA
+  #         - SAN_FRANCISCO_CA
+  #         - SEATTLE_WA
+  #         - SALT_LAKE_CITY_UT
+  #         - RENO_NV
+  #         - NEW_MADRID_MO
+  #         - BOSTON_MA
+  #         - NEW_YORK_NY
+  #         - CHICAGO_IL
+  #     - CMD: testHawaii2021
+  #       TEST_SITE:
+  #         - HILO_HI
+  #         - HONOLULU_HI
+  #         - KAILUA_KONA_HI
   script:
     - CI_RUNNER_MEMORY="$(awk '/MemTotal/ {printf( "%d\n", $2 / 1024 / 1024 * .90 )}' /proc/meminfo)g"
     - export CI_RUNNER_MEMORY
@@ -281,6 +281,52 @@ NSHM Tests:
     - cat ${JACOCO_HTML_DIR}/index.html
   stage: test
 
+Alaska 2007 NSHM Test:
+  extends:
+    - .nshm-test
+  variables:
+    CMD: testAlaska2007
+
+Alaska 2023 NSHM Test:
+  extends:
+    - .nshm-test
+  variables:
+    CMD: testAlaska2023
+
+CONUS 2018 NSHM Test:
+  extends:
+    - .nshm-test
+  parallel:
+    matrix:
+      - TEST_SITE: LOS_ANGELES_CA
+      - TEST_SITE: SAN_FRANCISCO_CA
+      - TEST_SITE: SEATTLE_WA
+      - TEST_SITE: SALT_LAKE_CITY_UT
+      - TEST_SITE: RENO_NV
+      - TEST_SITE: NEW_MADRID_MO
+      - TEST_SITE: BOSTON_MA
+      - TEST_SITE: NEW_YORK_NY
+      - TEST_SITE: CHICAGO_IL
+  variables:
+    CMD: testConus2018
+
+CONUS 2023 NSHM Test:
+  extends:
+    - .nshm-test
+  parallel:
+    matrix:
+      - TEST_SITE: LOS_ANGELES_CA
+      - TEST_SITE: SAN_FRANCISCO_CA
+      - TEST_SITE: SEATTLE_WA
+      - TEST_SITE: SALT_LAKE_CITY_UT
+      - TEST_SITE: RENO_NV
+      - TEST_SITE: NEW_MADRID_MO
+      - TEST_SITE: BOSTON_MA
+      - TEST_SITE: NEW_YORK_NY
+      - TEST_SITE: CHICAGO_IL
+  variables:
+    CMD: testConus2023
+
 YAML Lint:
   allow_failure: true
   needs: []
-- 
GitLab


From d832575744f6946b8dacb68a2d7b261b5227a15e Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 12:32:41 -0600
Subject: [PATCH 27/52] test

---
 .gitlab-ci.yml | 56 +-------------------------------------------------
 1 file changed, 1 insertion(+), 55 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 29219572..dab3a25e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -231,53 +231,10 @@ Markdown Lint:
       junit: ${JUNIT_FILES}
   coverage: '/Total.*?([0-9]{1,3})%/'
   needs: []
-  # parallel:
-  #   matrix:
-  #     - CMD: testAlaska2007
-  #       TEST_SITE:
-  #         - ANCHORAGE_AK
-  #         - FAIRBANKS_AK
-  #         - JUNEAU_AK
-  #         - KODIAK_AK
-  #         - VALDEZ_AK
-  #     - CMD: testAlaska2023
-  #       TEST_SITE:
-  #         - ANCHORAGE_AK
-  #         - FAIRBANKS_AK
-  #         - JUNEAU_AK
-  #         - KODIAK_AK
-  #         - VALDEZ_AK
-  #     - CMD: testConus2018
-  #       TEST_SITE:
-  #         - LOS_ANGELES_CA
-  #         - SAN_FRANCISCO_CA
-  #         - SEATTLE_WA
-  #         - SALT_LAKE_CITY_UT
-  #         - RENO_NV
-  #         - NEW_MADRID_MO
-  #         - BOSTON_MA
-  #         - NEW_YORK_NY
-  #         - CHICAGO_IL
-  #     - CMD: testConus2023
-  #       TEST_SITE:
-  #         - LOS_ANGELES_CA
-  #         - SAN_FRANCISCO_CA
-  #         - SEATTLE_WA
-  #         - SALT_LAKE_CITY_UT
-  #         - RENO_NV
-  #         - NEW_MADRID_MO
-  #         - BOSTON_MA
-  #         - NEW_YORK_NY
-  #         - CHICAGO_IL
-  #     - CMD: testHawaii2021
-  #       TEST_SITE:
-  #         - HILO_HI
-  #         - HONOLULU_HI
-  #         - KAILUA_KONA_HI
   script:
     - CI_RUNNER_MEMORY="$(awk '/MemTotal/ {printf( "%d\n", $2 / 1024 / 1024 * .90 )}' /proc/meminfo)g"
     - export CI_RUNNER_MEMORY
-    - ./gradlew ${CMD} -DTEST_SITE=${TEST_SITE} --info
+    - ./gradlew ${CMD} -DTEST_SITE=${TEST_SITE} --info --no-daemon --no-cache
     - cat ${JACOCO_HTML_DIR}/index.html
   stage: test
 
@@ -296,17 +253,6 @@ Alaska 2023 NSHM Test:
 CONUS 2018 NSHM Test:
   extends:
     - .nshm-test
-  parallel:
-    matrix:
-      - TEST_SITE: LOS_ANGELES_CA
-      - TEST_SITE: SAN_FRANCISCO_CA
-      - TEST_SITE: SEATTLE_WA
-      - TEST_SITE: SALT_LAKE_CITY_UT
-      - TEST_SITE: RENO_NV
-      - TEST_SITE: NEW_MADRID_MO
-      - TEST_SITE: BOSTON_MA
-      - TEST_SITE: NEW_YORK_NY
-      - TEST_SITE: CHICAGO_IL
   variables:
     CMD: testConus2018
 
-- 
GitLab


From eaf9187f464e589d3642f07b7f857f6c345a9a90 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 12:33:16 -0600
Subject: [PATCH 28/52] test

---
 .../java/gov/usgs/earthquake/nshmp/model/NshmTests.java    | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

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 e49414cd..9f375760 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
@@ -96,7 +96,7 @@ class NshmTests {
 
     // run single model
     NshmModel nshmModel =
-        NshmTestUtils.loadModel(NSHMS.get("nshm-conus-2023"));
+        NshmTestUtils.loadModel(NSHMS.get("nshm-alaska-2023"));
 
     NshmTestUtils.writeExpecteds(nshmModel);
     nshmModel.exec.shutdown();
@@ -133,10 +133,9 @@ class NshmTests {
    * Test CONUS 2018 NSHM
    *
    * To run test: ./gradlew testConus2018
-   * @throws InterruptedException
    */
   @Test
-  final void testConus2018() throws IOException, InterruptedException {
+  final void testConus2018() throws IOException {
     NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2018"), Optional.ofNullable(getSite()));
   }
 
@@ -162,6 +161,6 @@ class NshmTests {
 
   private NshmpSite getSite() {
     var testSite = System.getProperty("TEST_SITE");
-    return testSite == null ? null : NshmpSite.valueOf(testSite);
+    return testSite == null || testSite == "" ? null : NshmpSite.valueOf(testSite);
   }
 }
-- 
GitLab


From e91200163c1375d7d898ba03a34b8071ffbbc048 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 12:38:10 -0600
Subject: [PATCH 29/52] test

---
 src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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 9f375760..e174fc11 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
@@ -161,6 +161,6 @@ class NshmTests {
 
   private NshmpSite getSite() {
     var testSite = System.getProperty("TEST_SITE");
-    return testSite == null || testSite == "" ? null : NshmpSite.valueOf(testSite);
+    return testSite == null ? null : NshmpSite.valueOf(testSite);
   }
 }
-- 
GitLab


From 43bfbb14cb32392a8ab87a1976fd9492fefaa0c5 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 12:41:30 -0600
Subject: [PATCH 30/52] test

---
 .gitlab-ci.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index dab3a25e..0c067cae 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -234,7 +234,7 @@ Markdown Lint:
   script:
     - CI_RUNNER_MEMORY="$(awk '/MemTotal/ {printf( "%d\n", $2 / 1024 / 1024 * .90 )}' /proc/meminfo)g"
     - export CI_RUNNER_MEMORY
-    - ./gradlew ${CMD} -DTEST_SITE=${TEST_SITE} --info --no-daemon --no-cache
+    - ./gradlew ${CMD} -DTEST_SITE=${TEST_SITE} --info --no-daemon
     - cat ${JACOCO_HTML_DIR}/index.html
   stage: test
 
-- 
GitLab


From c6a6010d199a5fcf97bc5869d7a4b40f8edf6ac2 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 12:46:21 -0600
Subject: [PATCH 31/52] test

---
 .gitlab-ci.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0c067cae..2472e6b9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -234,7 +234,7 @@ Markdown Lint:
   script:
     - CI_RUNNER_MEMORY="$(awk '/MemTotal/ {printf( "%d\n", $2 / 1024 / 1024 * .90 )}' /proc/meminfo)g"
     - export CI_RUNNER_MEMORY
-    - ./gradlew ${CMD} -DTEST_SITE=${TEST_SITE} --info --no-daemon
+    - ./gradlew ${CMD} --info --no-daemon
     - cat ${JACOCO_HTML_DIR}/index.html
   stage: test
 
-- 
GitLab


From facad472791b3c73ad68eb30d50eb6039278828b Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 13:01:31 -0600
Subject: [PATCH 32/52] test

---
 src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java | 3 +++
 1 file changed, 3 insertions(+)

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 e174fc11..58cc6adc 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
@@ -10,6 +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 gov.usgs.earthquake.nshmp.NamedLocation;
 import gov.usgs.earthquake.nshmp.gmm.Imt;
@@ -21,6 +23,7 @@ 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(
-- 
GitLab


From c6ed898cef42588061c28e6d6196303d7b1b5346 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 13:32:46 -0600
Subject: [PATCH 33/52] test

---
 gradle/nshm.gradle                            |  2 +-
 .../nshmp/model/Conus2018Tests.java           | 42 +++++++++++++++++++
 .../earthquake/nshmp/model/NshmTestUtils.java | 12 ++++++
 .../earthquake/nshmp/model/NshmTests.java     | 18 ++++----
 4 files changed, 64 insertions(+), 10 deletions(-)
 create mode 100644 src/test/java/gov/usgs/earthquake/nshmp/model/Conus2018Tests.java

diff --git a/gradle/nshm.gradle b/gradle/nshm.gradle
index 910405dd..008bf38f 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 00000000..baeb1da4
--- /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 8edc4534..91d95cf6 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 58cc6adc..a5ba46a7 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);
   }
 
   /**
-- 
GitLab


From 87de6fa9834b4d9419dc659a0c696402b3339356 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 13:41:23 -0600
Subject: [PATCH 34/52] test

---
 .../java/gov/usgs/earthquake/nshmp/model/Conus2018Tests.java  | 3 +++
 src/test/resources/e2e/ junit-platform.properties             | 4 ++++
 2 files changed, 7 insertions(+)
 create mode 100644 src/test/resources/e2e/ junit-platform.properties

diff --git a/src/test/java/gov/usgs/earthquake/nshmp/model/Conus2018Tests.java b/src/test/java/gov/usgs/earthquake/nshmp/model/Conus2018Tests.java
index baeb1da4..28b70255 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/Conus2018Tests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/Conus2018Tests.java
@@ -7,6 +7,8 @@ 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.api.parallel.Execution;
+import org.junit.jupiter.api.parallel.ExecutionMode;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.MethodSource;
 
@@ -15,6 +17,7 @@ import gov.usgs.earthquake.nshmp.model.NshmTestUtils.Nshm;
 import gov.usgs.earthquake.nshmp.model.NshmTestUtils.NshmModel;
 
 @TestInstance(Lifecycle.PER_CLASS)
+@Execution(ExecutionMode.CONCURRENT)
 class Conus2018Tests {
 
   Nshm nshm = NshmTests.NSHMS.get("nshm-conus-2018");
diff --git a/src/test/resources/e2e/ junit-platform.properties b/src/test/resources/e2e/ junit-platform.properties
new file mode 100644
index 00000000..fe1e8bb7
--- /dev/null
+++ b/src/test/resources/e2e/ junit-platform.properties	
@@ -0,0 +1,4 @@
+junit.jupiter.execution.parallel.enabled = true
+junit.jupiter.execution.parallel.config.fixed.parallelism
+junit.jupiter.execution.parallel.mode.default = concurrent
+junit.jupiter.execution.parallel.mode.classes.default = concurrent
-- 
GitLab


From 5df8c19e71649a202d26de88c9f4b22a7d7d518f Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 13:49:49 -0600
Subject: [PATCH 35/52] test

---
 .gitlab-ci.yml                                | 30 +++++++++----
 .../nshmp/model/Conus2018Tests.java           | 45 -------------------
 .../earthquake/nshmp/model/NshmTests.java     | 13 +++---
 .../resources/e2e/ junit-platform.properties  |  4 --
 4 files changed, 27 insertions(+), 65 deletions(-)
 delete mode 100644 src/test/java/gov/usgs/earthquake/nshmp/model/Conus2018Tests.java
 delete mode 100644 src/test/resources/e2e/ junit-platform.properties

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2472e6b9..7b1b3fe0 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -231,30 +231,44 @@ Markdown Lint:
       junit: ${JUNIT_FILES}
   coverage: '/Total.*?([0-9]{1,3})%/'
   needs: []
-  script:
+  before_script:
     - CI_RUNNER_MEMORY="$(awk '/MemTotal/ {printf( "%d\n", $2 / 1024 / 1024 * .90 )}' /proc/meminfo)g"
     - export CI_RUNNER_MEMORY
-    - ./gradlew ${CMD} --info --no-daemon
+    - ./gradlew ${CMD} --info
+  after_script:
     - cat ${JACOCO_HTML_DIR}/index.html
   stage: test
 
 Alaska 2007 NSHM Test:
   extends:
     - .nshm-test
-  variables:
-    CMD: testAlaska2007
+  script:
+    - ./gradlew testAlaska2007 --info
 
 Alaska 2023 NSHM Test:
   extends:
     - .nshm-test
   variables:
     CMD: testAlaska2023
+  script:
+    - ./gradlew testAlaska2007 --info
 
 CONUS 2018 NSHM Test:
   extends:
     - .nshm-test
-  variables:
-    CMD: testConus2018
+  parallel:
+    matrix:
+      - TEST_SITE: LOS_ANGELES_CA
+      - TEST_SITE: SAN_FRANCISCO_CA
+      - TEST_SITE: SEATTLE_WA
+      - TEST_SITE: SALT_LAKE_CITY_UT
+      - TEST_SITE: RENO_NV
+      - TEST_SITE: NEW_MADRID_MO
+      - TEST_SITE: BOSTON_MA
+      - TEST_SITE: NEW_YORK_NY
+      - TEST_SITE: CHICAGO_IL
+  script:
+    - ./gradlew testConus2018 -DTEST_SITE=${TEST_SITE} --info
 
 CONUS 2023 NSHM Test:
   extends:
@@ -270,8 +284,8 @@ CONUS 2023 NSHM Test:
       - TEST_SITE: BOSTON_MA
       - TEST_SITE: NEW_YORK_NY
       - TEST_SITE: CHICAGO_IL
-  variables:
-    CMD: testConus2023
+  script:
+    - ./gradlew testConus2023 -DTEST_SITE=${TEST_SITE} --info
 
 YAML Lint:
   allow_failure: true
diff --git a/src/test/java/gov/usgs/earthquake/nshmp/model/Conus2018Tests.java b/src/test/java/gov/usgs/earthquake/nshmp/model/Conus2018Tests.java
deleted file mode 100644
index 28b70255..00000000
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/Conus2018Tests.java
+++ /dev/null
@@ -1,45 +0,0 @@
-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.api.parallel.Execution;
-import org.junit.jupiter.api.parallel.ExecutionMode;
-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)
-@Execution(ExecutionMode.CONCURRENT)
-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/NshmTests.java b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
index a5ba46a7..66b0c143 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,6 @@ import java.util.Optional;
 import java.util.Set;
 
 import org.junit.jupiter.api.Test;
-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;
@@ -25,7 +23,7 @@ import gov.usgs.earthquake.nshmp.site.NshmpSite;
  */
 class NshmTests {
   /* Alaska test sites */
-  static final List<NamedLocation> ALASKA_LOCATIONS = List.of(
+  private static final List<NamedLocation> ALASKA_LOCATIONS = List.of(
       NshmpSite.ANCHORAGE_AK,
       NshmpSite.FAIRBANKS_AK,
       NshmpSite.JUNEAU_AK,
@@ -33,7 +31,7 @@ class NshmTests {
       NshmpSite.VALDEZ_AK);
 
   /* CONUS test sites */
-  static final List<NamedLocation> CONUS_LOCATIONS = List.of(
+  private static final List<NamedLocation> CONUS_LOCATIONS = List.of(
       NshmpSite.LOS_ANGELES_CA,
       NshmpSite.SAN_FRANCISCO_CA,
       NshmpSite.SEATTLE_WA,
@@ -136,10 +134,9 @@ class NshmTests {
    *
    * To run test: ./gradlew testConus2018
    */
-  @ParameterizedTest
-  @MethodSource("conusSites")
-  final void testConus2018(NamedLocation location) throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2018"), location);
+  @Test
+  final void testConus2018() throws IOException {
+    NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2018"), Optional.ofNullable(getSite()));
   }
 
   /**
diff --git a/src/test/resources/e2e/ junit-platform.properties b/src/test/resources/e2e/ junit-platform.properties
deleted file mode 100644
index fe1e8bb7..00000000
--- a/src/test/resources/e2e/ junit-platform.properties	
+++ /dev/null
@@ -1,4 +0,0 @@
-junit.jupiter.execution.parallel.enabled = true
-junit.jupiter.execution.parallel.config.fixed.parallelism
-junit.jupiter.execution.parallel.mode.default = concurrent
-junit.jupiter.execution.parallel.mode.classes.default = concurrent
-- 
GitLab


From 8437a2b0904297f913a5f5be9e0b63a414561f3c Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 13:59:24 -0600
Subject: [PATCH 36/52] test

---
 gradle/nshm.gradle | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gradle/nshm.gradle b/gradle/nshm.gradle
index 008bf38f..910405dd 100644
--- a/gradle/nshm.gradle
+++ b/gradle/nshm.gradle
@@ -152,7 +152,7 @@ task testConus2018(type: Test) {
       )
 
   filter {
-    includeTestsMatching "gov.usgs.earthquake.nshmp.model.Conus2018Tests"
+    includeTestsMatching "gov.usgs.earthquake.nshmp.model.NshmTests.testConus2018"
   }
 }
 
-- 
GitLab


From 266724c5c7ae9d7efeba6bc26d6bf79ff67e43ae Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 14:12:22 -0600
Subject: [PATCH 37/52] add sites

---
 .gitlab-ci.yml | 52 ++++++++++++++++++++++++++++++--------------------
 1 file changed, 31 insertions(+), 21 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7b1b3fe0..d2069a38 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -239,6 +239,14 @@ Markdown Lint:
     - cat ${JACOCO_HTML_DIR}/index.html
   stage: test
 
+
+.alaska-sites: &alaska-sites
+  - TEST_SITE: ANCHORAGE_AK
+  - TEST_SITE: FAIRBANKS_AK
+  - TEST_SITE: JUNEAU_AK
+  - TEST_SITE: KODIAK_AK
+  - TEST_SITE: VALDEZ_AK
+
 Alaska 2007 NSHM Test:
   extends:
     - .nshm-test
@@ -248,25 +256,29 @@ Alaska 2007 NSHM Test:
 Alaska 2023 NSHM Test:
   extends:
     - .nshm-test
-  variables:
-    CMD: testAlaska2023
+  parallel:
+    matrix:
+      *alaska-sites
   script:
-    - ./gradlew testAlaska2007 --info
+    - ./gradlew testAlaksa2023 -DTEST_SITE=${TEST_SITE} --info
+
+.conus-sites: &conus-sites
+  - TEST_SITE: LOS_ANGELES_CA
+  - TEST_SITE: SAN_FRANCISCO_CA
+  - TEST_SITE: SEATTLE_WA
+  - TEST_SITE: SALT_LAKE_CITY_UT
+  - TEST_SITE: RENO_NV
+  - TEST_SITE: NEW_MADRID_MO
+  - TEST_SITE: BOSTON_MA
+  - TEST_SITE: NEW_YORK_NY
+  - TEST_SITE: CHICAGO_IL
 
 CONUS 2018 NSHM Test:
   extends:
     - .nshm-test
   parallel:
     matrix:
-      - TEST_SITE: LOS_ANGELES_CA
-      - TEST_SITE: SAN_FRANCISCO_CA
-      - TEST_SITE: SEATTLE_WA
-      - TEST_SITE: SALT_LAKE_CITY_UT
-      - TEST_SITE: RENO_NV
-      - TEST_SITE: NEW_MADRID_MO
-      - TEST_SITE: BOSTON_MA
-      - TEST_SITE: NEW_YORK_NY
-      - TEST_SITE: CHICAGO_IL
+      *conus-sites
   script:
     - ./gradlew testConus2018 -DTEST_SITE=${TEST_SITE} --info
 
@@ -275,18 +287,16 @@ CONUS 2023 NSHM Test:
     - .nshm-test
   parallel:
     matrix:
-      - TEST_SITE: LOS_ANGELES_CA
-      - TEST_SITE: SAN_FRANCISCO_CA
-      - TEST_SITE: SEATTLE_WA
-      - TEST_SITE: SALT_LAKE_CITY_UT
-      - TEST_SITE: RENO_NV
-      - TEST_SITE: NEW_MADRID_MO
-      - TEST_SITE: BOSTON_MA
-      - TEST_SITE: NEW_YORK_NY
-      - TEST_SITE: CHICAGO_IL
+      *conus-sites
   script:
     - ./gradlew testConus2023 -DTEST_SITE=${TEST_SITE} --info
 
+Hawaii 2021 NSHM Test:
+  extends:
+    - .nshm-test
+  script:
+    - ./gradlew testHawaii2021 --info
+
 YAML Lint:
   allow_failure: true
   needs: []
-- 
GitLab


From 869c7f0eba8b9d95d5f518481146154856417fd7 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 14:17:11 -0600
Subject: [PATCH 38/52] cleanup

---
 .gitlab-ci.yml | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d2069a38..7ba0c439 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -239,7 +239,6 @@ Markdown Lint:
     - cat ${JACOCO_HTML_DIR}/index.html
   stage: test
 
-
 .alaska-sites: &alaska-sites
   - TEST_SITE: ANCHORAGE_AK
   - TEST_SITE: FAIRBANKS_AK
@@ -260,7 +259,7 @@ Alaska 2023 NSHM Test:
     matrix:
       *alaska-sites
   script:
-    - ./gradlew testAlaksa2023 -DTEST_SITE=${TEST_SITE} --info
+    - ./gradlew testAlaska2023 -DTEST_SITE=${TEST_SITE} --info
 
 .conus-sites: &conus-sites
   - TEST_SITE: LOS_ANGELES_CA
-- 
GitLab


From d8beb7eb2e4fa76e2a628eb1fa817e6be20dd46e Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 14:30:02 -0600
Subject: [PATCH 39/52] test

---
 .gitlab-ci.yml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7ba0c439..006be248 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -281,6 +281,12 @@ CONUS 2018 NSHM Test:
   script:
     - ./gradlew testConus2018 -DTEST_SITE=${TEST_SITE} --info
 
+CONUS 2018 NSHM Test 2:
+  extends:
+    - .nshm-test
+  script:
+    - ./gradlew testConus2018 --info
+
 CONUS 2023 NSHM Test:
   extends:
     - .nshm-test
-- 
GitLab


From 8ec53357e5bfb4d6b7002f706135748c9fe145af Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 14:45:57 -0600
Subject: [PATCH 40/52] cleanup

---
 .gitlab-ci.yml | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 006be248..7ba0c439 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -281,12 +281,6 @@ CONUS 2018 NSHM Test:
   script:
     - ./gradlew testConus2018 -DTEST_SITE=${TEST_SITE} --info
 
-CONUS 2018 NSHM Test 2:
-  extends:
-    - .nshm-test
-  script:
-    - ./gradlew testConus2018 --info
-
 CONUS 2023 NSHM Test:
   extends:
     - .nshm-test
-- 
GitLab


From 6230209272c9ef2222db61e8b6db057f9ae99782 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 14:48:37 -0600
Subject: [PATCH 41/52] add stages

---
 .gitlab-ci.yml | 55 ++++++++++++++++++++++++++++++--------------------
 1 file changed, 33 insertions(+), 22 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7ba0c439..3fb882d2 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -15,6 +15,9 @@ workflow:
 stages:
   - build
   - test
+  - alaska-test
+  - conus-test
+  - hawaii-test
   - trigger
 
 default:
@@ -223,6 +226,31 @@ Markdown Lint:
     - ./gradlew markdownlint
   stage: test
 
+YAML Lint:
+  allow_failure: true
+  needs: []
+  script:
+    - ./gradlew nodeInstall
+    - ./gradlew yamllint
+  stage: test
+
+Unit Tests:
+  artifacts:
+    paths:
+      - ${JACOCO_HTML_DIR}
+    reports:
+      junit: ${JUNIT_FILES}
+  coverage: '/Total.*?([0-9]{1,3})%/'
+  needs: []
+  script:
+    - ./gradlew check
+    - cat ${JACOCO_HTML_DIR}/index.html
+  stage: test
+
+####
+# NSHMS Tests
+####
+
 .nshm-test:
   artifacts:
     paths:
@@ -237,7 +265,6 @@ Markdown Lint:
     - ./gradlew ${CMD} --info
   after_script:
     - cat ${JACOCO_HTML_DIR}/index.html
-  stage: test
 
 .alaska-sites: &alaska-sites
   - TEST_SITE: ANCHORAGE_AK
@@ -251,6 +278,7 @@ Alaska 2007 NSHM Test:
     - .nshm-test
   script:
     - ./gradlew testAlaska2007 --info
+  stage: alaska-test
 
 Alaska 2023 NSHM Test:
   extends:
@@ -260,6 +288,7 @@ Alaska 2023 NSHM Test:
       *alaska-sites
   script:
     - ./gradlew testAlaska2023 -DTEST_SITE=${TEST_SITE} --info
+  stage: alaska-test
 
 .conus-sites: &conus-sites
   - TEST_SITE: LOS_ANGELES_CA
@@ -280,6 +309,7 @@ CONUS 2018 NSHM Test:
       *conus-sites
   script:
     - ./gradlew testConus2018 -DTEST_SITE=${TEST_SITE} --info
+  stage: conus-test
 
 CONUS 2023 NSHM Test:
   extends:
@@ -289,33 +319,14 @@ CONUS 2023 NSHM Test:
       *conus-sites
   script:
     - ./gradlew testConus2023 -DTEST_SITE=${TEST_SITE} --info
+  stage: conus-test
 
 Hawaii 2021 NSHM Test:
   extends:
     - .nshm-test
   script:
     - ./gradlew testHawaii2021 --info
-
-YAML Lint:
-  allow_failure: true
-  needs: []
-  script:
-    - ./gradlew nodeInstall
-    - ./gradlew yamllint
-  stage: test
-
-Unit Tests:
-  artifacts:
-    paths:
-      - ${JACOCO_HTML_DIR}
-    reports:
-      junit: ${JUNIT_FILES}
-  coverage: '/Total.*?([0-9]{1,3})%/'
-  needs: []
-  script:
-    - ./gradlew check
-    - cat ${JACOCO_HTML_DIR}/index.html
-  stage: test
+  stage: hawaii-test
 
 ####
 # Stage: trigger
-- 
GitLab


From 9a3b5102a7116fc7b8746a0d549afe248cc128a6 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 31 Aug 2023 14:55:22 -0600
Subject: [PATCH 42/52] cleanup

---
 gradle/nshm.gradle                                   |  2 +-
 .../usgs/earthquake/nshmp/model/NshmTestUtils.java   | 12 ------------
 .../gov/usgs/earthquake/nshmp/model/NshmTests.java   |  2 +-
 3 files changed, 2 insertions(+), 14 deletions(-)

diff --git a/gradle/nshm.gradle b/gradle/nshm.gradle
index 910405dd..86cce87f 100644
--- a/gradle/nshm.gradle
+++ b/gradle/nshm.gradle
@@ -147,7 +147,7 @@ task testConus2018(type: Test) {
 
   useJUnitPlatform()
   jvmArgs(
-      "-Xms${xmx}",
+      "-Xms2g",
       "-Xmx${xmx}",
       )
 
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 91d95cf6..8edc4534 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
@@ -100,18 +100,6 @@ 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 66b0c143..e174fc11 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
@@ -51,7 +51,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);
 
-  static final Map<String, Nshm> NSHMS;
+  private static final Map<String, Nshm> NSHMS;
 
   static {
     Map<String, Nshm> nshms = new HashMap<>();
-- 
GitLab


From 9810d6bf8bade7cb056f18db7cef0f49cef9da38 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Fri, 1 Sep 2023 10:33:01 -0600
Subject: [PATCH 43/52] generate actual

---
 .gitignore                                    |  1 +
 .gitlab-ci.yml                                | 35 +------
 gradle/nshm.gradle                            | 91 +++++++++++++++++++
 .../nshmp/model/GenerateActual.java           | 22 +++++
 .../earthquake/nshmp/model/NshmTestUtils.java | 36 ++++----
 .../earthquake/nshmp/model/NshmTests.java     | 23 +++--
 6 files changed, 149 insertions(+), 59 deletions(-)
 create mode 100644 src/test/java/gov/usgs/earthquake/nshmp/model/GenerateActual.java

diff --git a/.gitignore b/.gitignore
index d4c5e0c3..e5021b74 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,6 +22,7 @@ nshms/
 .factorypath
 .apt_generated*
 *version.json
+src/test/resources/e2e/actual
 
 # Node
 node_modules
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3fb882d2..7e6bcb78 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -266,13 +266,6 @@ Unit Tests:
   after_script:
     - cat ${JACOCO_HTML_DIR}/index.html
 
-.alaska-sites: &alaska-sites
-  - TEST_SITE: ANCHORAGE_AK
-  - TEST_SITE: FAIRBANKS_AK
-  - TEST_SITE: JUNEAU_AK
-  - TEST_SITE: KODIAK_AK
-  - TEST_SITE: VALDEZ_AK
-
 Alaska 2007 NSHM Test:
   extends:
     - .nshm-test
@@ -283,42 +276,24 @@ Alaska 2007 NSHM Test:
 Alaska 2023 NSHM Test:
   extends:
     - .nshm-test
-  parallel:
-    matrix:
-      *alaska-sites
   script:
-    - ./gradlew testAlaska2023 -DTEST_SITE=${TEST_SITE} --info
+    - ./gradlew testAlaska2023 --info
   stage: alaska-test
 
-.conus-sites: &conus-sites
-  - TEST_SITE: LOS_ANGELES_CA
-  - TEST_SITE: SAN_FRANCISCO_CA
-  - TEST_SITE: SEATTLE_WA
-  - TEST_SITE: SALT_LAKE_CITY_UT
-  - TEST_SITE: RENO_NV
-  - TEST_SITE: NEW_MADRID_MO
-  - TEST_SITE: BOSTON_MA
-  - TEST_SITE: NEW_YORK_NY
-  - TEST_SITE: CHICAGO_IL
-
 CONUS 2018 NSHM Test:
   extends:
     - .nshm-test
-  parallel:
-    matrix:
-      *conus-sites
   script:
-    - ./gradlew testConus2018 -DTEST_SITE=${TEST_SITE} --info
+    - ./gradlew generateConus2018 --info
+    - ./gradlew testConus2018 --info
   stage: conus-test
 
 CONUS 2023 NSHM Test:
   extends:
     - .nshm-test
-  parallel:
-    matrix:
-      *conus-sites
   script:
-    - ./gradlew testConus2023 -DTEST_SITE=${TEST_SITE} --info
+    - ./gradlew generateConus2023 --info
+    - ./gradlew testConus2023 --info
   stage: conus-test
 
 Hawaii 2021 NSHM Test:
diff --git a/gradle/nshm.gradle b/gradle/nshm.gradle
index 86cce87f..086ebc77 100644
--- a/gradle/nshm.gradle
+++ b/gradle/nshm.gradle
@@ -78,6 +78,97 @@ task nshms() {
   }
 }
 
+// Generate Alaska 2007 for CI
+task generateAlaska2007(type: JavaExec) {
+  description = "Generate alaska-2007 acutal for CI/CD"
+  classpath = sourceSets.test.runtimeClasspath
+
+  doFirst {
+    downloadNshm(findNshm("nshm-alaska", 2007))
+  }
+
+  jvmArgs(
+      "-Xms2g",
+      "-Xmx${xmx}",
+      "-DNSHM=nshm-alaska-2007"
+      )
+
+  main = "gov.usgs.earthquake.nshmp.model.GenerateActual"
+}
+
+// Generate Alaska 2023 for CI
+task generateAlaska2023(type: JavaExec) {
+  description = "Generate alaska-2023 acutal for CI/CD"
+  classpath = sourceSets.test.runtimeClasspath
+
+  doFirst {
+    downloadNshm(findNshm("nshm-alaska", 2023))
+  }
+
+  jvmArgs(
+      "-Xms2g",
+      "-Xmx${xmx}",
+      "-DNSHM=nshm-alaska-2023"
+      )
+
+  main = "gov.usgs.earthquake.nshmp.model.GenerateActual"
+}
+
+
+// Generate CONUS 2018 for CI
+task generateConus2018(type: JavaExec) {
+  description = "Generate conus-2018 acutal for CI/CD"
+  classpath = sourceSets.test.runtimeClasspath
+
+  doFirst {
+    downloadNshm(findNshm("nshm-conus", 2018))
+  }
+
+  jvmArgs(
+      "-Xms2g",
+      "-Xmx${xmx}",
+      "-DNSHM=nshm-conus-2018"
+      )
+
+  main = "gov.usgs.earthquake.nshmp.model.GenerateActual"
+}
+
+// Generate CONUS 2023 for CI
+task generateConus2023(type: JavaExec) {
+  description = "Generate conus-2023 acutal for CI/CD"
+  classpath = sourceSets.test.runtimeClasspath
+
+  doFirst {
+    downloadNshm(findNshm("nshm-conus", 2023))
+  }
+
+  jvmArgs(
+      "-Xms2g",
+      "-Xmx${xmx}",
+      "-DNSHM=nshm-conus-2023"
+      )
+
+  main = "gov.usgs.earthquake.nshmp.model.GenerateActual"
+}
+
+// Generate Hawaii 2021 for CI
+task generateHawaii2021(type: JavaExec) {
+  description = "Generate hawaii-2021 acutal for CI/CD"
+  classpath = sourceSets.test.runtimeClasspath
+
+  doFirst {
+    downloadNshm(findNshm("nshm-hawaii", 2021))
+  }
+
+  jvmArgs(
+      "-Xms2g",
+      "-Xmx${xmx}",
+      "-DNSHM=nshm-hawaii-2021"
+      )
+
+  main = "gov.usgs.earthquake.nshmp.model.GenerateActual"
+}
+
 // Test Alaska 2007 NSHM
 task testAlaska2007(type: Test) {
   description = "Test Alaska 2007 NSHM"
diff --git a/src/test/java/gov/usgs/earthquake/nshmp/model/GenerateActual.java b/src/test/java/gov/usgs/earthquake/nshmp/model/GenerateActual.java
new file mode 100644
index 00000000..489304c5
--- /dev/null
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/GenerateActual.java
@@ -0,0 +1,22 @@
+package gov.usgs.earthquake.nshmp.model;
+
+import java.io.IOException;
+import java.util.Optional;
+
+import gov.usgs.earthquake.nshmp.model.NshmTestUtils.Nshm;
+import gov.usgs.earthquake.nshmp.model.NshmTestUtils.NshmModel;
+
+/**
+ * Generate actual results to compare to expected results.
+ *
+ * Used in CI environment for faster unit tests.
+ */
+class GenerateActual {
+
+  public static void main(String[] args) throws IOException {
+    Nshm nshm = NshmTests.NSHMS.get(System.getProperty("NSHM"));
+    NshmModel nshmModel = NshmTestUtils.loadModel(nshm);
+    NshmTestUtils.writeExpecteds(nshmModel, Optional.of(NshmTests.DATA_PATH));
+    nshmModel.exec.shutdown();
+  }
+}
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 8edc4534..cb390cc0 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
@@ -35,7 +35,6 @@ import gov.usgs.earthquake.nshmp.calc.Site;
 import gov.usgs.earthquake.nshmp.data.XySequence;
 import gov.usgs.earthquake.nshmp.geo.Location;
 import gov.usgs.earthquake.nshmp.gmm.Imt;
-import gov.usgs.earthquake.nshmp.site.NshmpSite;
 
 import io.swagger.v3.core.util.Yaml;
 
@@ -84,17 +83,12 @@ class NshmTestUtils {
    *
    * @param nshm The NSHM to test
    */
-  static void testNshm(Nshm nshm, Optional<NshmpSite> site) {
+  static void testNshm(Nshm nshm, Optional<Path> dataPath) {
     NshmModel nshmModel = loadModel(nshm);
 
-    if (site.isPresent()) {
-      LOGGER.info("Location: " + site.get().toString());
-      compareCurves(nshmModel, site.get());
-    } else {
-      for (NamedLocation location : nshm.locations()) {
-        LOGGER.info("Location: " + location.toString());
-        compareCurves(nshmModel, location);
-      }
+    for (NamedLocation location : nshm.locations()) {
+      LOGGER.info("Location: " + location.toString());
+      compareCurves(nshmModel, location, dataPath);
     }
 
     nshmModel.exec.shutdown();
@@ -105,11 +99,11 @@ class NshmTestUtils {
    *
    * @param nshmModel The NSHM model
    */
-  static void writeExpecteds(NshmModel nshmModel) throws IOException {
+  static void writeExpecteds(NshmModel nshmModel, Optional<Path> dataPath) throws IOException {
     for (NamedLocation location : nshmModel.nshm.locations()) {
       Map<String, XySequence> xyMap = generateActual(nshmModel, location);
       String json = GSON.toJson(xyMap);
-      writeExpected(nshmModel.nshm, location, json);
+      writeExpected(nshmModel.nshm, location, json, dataPath);
     }
   }
 
@@ -140,9 +134,11 @@ class NshmTestUtils {
         Double.valueOf(expected).equals(Double.valueOf(actual));
   }
 
-  private static void compareCurves(NshmModel nshmModel, NamedLocation location) {
-    Map<String, XySequence> actual = generateActual(nshmModel, location);
-    Map<String, XySequence> expected = readExpected(nshmModel, location);
+  private static void compareCurves(NshmModel nshmModel, NamedLocation location,
+      Optional<Path> dataPath) {
+    Map<String, XySequence> actual = dataPath.isPresent()
+        ? readExpected(nshmModel, location, dataPath) : generateActual(nshmModel, location);
+    Map<String, XySequence> expected = readExpected(nshmModel, location, Optional.empty());
 
     for (String key : actual.keySet()) {
       assertCurveEquals(expected.get(key), actual.get(key), TOLERANCE);
@@ -175,8 +171,9 @@ class NshmTestUtils {
     return xyMap;
   }
 
-  private static Map<String, XySequence> readExpected(NshmModel nshmModel, NamedLocation loc) {
-    Path resultPath = DATA_PATH
+  private static Map<String, XySequence> readExpected(NshmModel nshmModel, NamedLocation loc,
+      Optional<Path> dataPath) {
+    Path resultPath = dataPath.orElse(DATA_PATH)
         .resolve(nshmModel.nshm.modelName())
         .resolve(nshmModel.nshm.resultFilename(loc));
 
@@ -199,8 +196,9 @@ class NshmTestUtils {
   private static void writeExpected(
       Nshm nshm,
       NamedLocation loc,
-      String json) throws IOException {
-    Path modelDir = DATA_PATH.resolve(nshm.modelName());
+      String json,
+      Optional<Path> dataPath) throws IOException {
+    Path modelDir = dataPath.orElse(DATA_PATH).resolve(nshm.modelName());
     if (!Files.exists(modelDir)) {
       Files.createDirectories(modelDir);
     }
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 e174fc11..68417b07 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
@@ -1,6 +1,8 @@
 package gov.usgs.earthquake.nshmp.model;
 
 import java.io.IOException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.EnumSet;
 import java.util.HashMap;
@@ -22,6 +24,8 @@ import gov.usgs.earthquake.nshmp.site.NshmpSite;
  * Test NSHMs.
  */
 class NshmTests {
+  static Path DATA_PATH = Paths.get("src/test/resources/e2e/actual");
+
   /* Alaska test sites */
   private static final List<NamedLocation> ALASKA_LOCATIONS = List.of(
       NshmpSite.ANCHORAGE_AK,
@@ -51,7 +55,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<>();
@@ -98,7 +102,7 @@ class NshmTests {
     NshmModel nshmModel =
         NshmTestUtils.loadModel(NSHMS.get("nshm-alaska-2023"));
 
-    NshmTestUtils.writeExpecteds(nshmModel);
+    NshmTestUtils.writeExpecteds(nshmModel, Optional.empty());
     nshmModel.exec.shutdown();
 
     // run all models
@@ -116,7 +120,7 @@ class NshmTests {
    */
   @Test
   final void testAlaska2007() throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-alaska-2007"), Optional.ofNullable(getSite()));
+    NshmTestUtils.testNshm(NSHMS.get("nshm-alaska-2007"), getDataPath());
   }
 
   /**
@@ -126,7 +130,7 @@ class NshmTests {
    */
   @Test
   final void testAlaska2023() throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-alaska-2023"), Optional.ofNullable(getSite()));
+    NshmTestUtils.testNshm(NSHMS.get("nshm-alaska-2023"), getDataPath());
   }
 
   /**
@@ -136,7 +140,7 @@ class NshmTests {
    */
   @Test
   final void testConus2018() throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2018"), Optional.ofNullable(getSite()));
+    NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2018"), getDataPath());
   }
 
   /**
@@ -146,7 +150,7 @@ class NshmTests {
    */
   @Test
   final void testConus2023() throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2023"), Optional.ofNullable(getSite()));
+    NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2023"), getDataPath());
   }
 
   /**
@@ -156,11 +160,10 @@ class NshmTests {
    */
   @Test
   final void testHawaii2021() throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-hawaii-2021"), Optional.ofNullable(getSite()));
+    NshmTestUtils.testNshm(NSHMS.get("nshm-hawaii-2021"), getDataPath());
   }
 
-  private NshmpSite getSite() {
-    var testSite = System.getProperty("TEST_SITE");
-    return testSite == null ? null : NshmpSite.valueOf(testSite);
+  private static Optional<Path> getDataPath() {
+    return System.getenv("GITLAB_CI") != null ? Optional.of(DATA_PATH) : Optional.empty();
   }
 }
-- 
GitLab


From 1af0478ce919478df8c245719a4bfe0d827d631b Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Fri, 1 Sep 2023 10:56:27 -0600
Subject: [PATCH 44/52] add jvm args

---
 build.gradle       | 10 +++++-----
 gradle/nshm.gradle | 30 +++++-------------------------
 2 files changed, 10 insertions(+), 30 deletions(-)

diff --git a/build.gradle b/build.gradle
index 5ab547bc..78d36a5f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -70,11 +70,11 @@ tasks.withType(JavaExec) {
   }
 
   jvmArgs(
-      '-noverify',
-      '-Xms2g',
-      '-Xmx8g',
-      '-XX:TieredStopAtLevel=1',
-      '-Dcom.sun.management.jmxremote',
+      "-noverify",
+      "-Xms2g",
+      "-Xmx${xmx}",
+      "-XX:TieredStopAtLevel=1",
+      "-Dcom.sun.management.jmxremote",
       )
 }
 
diff --git a/gradle/nshm.gradle b/gradle/nshm.gradle
index 086ebc77..e2bce69e 100644
--- a/gradle/nshm.gradle
+++ b/gradle/nshm.gradle
@@ -87,11 +87,7 @@ task generateAlaska2007(type: JavaExec) {
     downloadNshm(findNshm("nshm-alaska", 2007))
   }
 
-  jvmArgs(
-      "-Xms2g",
-      "-Xmx${xmx}",
-      "-DNSHM=nshm-alaska-2007"
-      )
+  jvmArgs("-DNSHM=nshm-alaska-2007")
 
   main = "gov.usgs.earthquake.nshmp.model.GenerateActual"
 }
@@ -105,11 +101,7 @@ task generateAlaska2023(type: JavaExec) {
     downloadNshm(findNshm("nshm-alaska", 2023))
   }
 
-  jvmArgs(
-      "-Xms2g",
-      "-Xmx${xmx}",
-      "-DNSHM=nshm-alaska-2023"
-      )
+  jvmArgs("-DNSHM=nshm-alaska-2023")
 
   main = "gov.usgs.earthquake.nshmp.model.GenerateActual"
 }
@@ -124,11 +116,7 @@ task generateConus2018(type: JavaExec) {
     downloadNshm(findNshm("nshm-conus", 2018))
   }
 
-  jvmArgs(
-      "-Xms2g",
-      "-Xmx${xmx}",
-      "-DNSHM=nshm-conus-2018"
-      )
+  jvmArgs("-DNSHM=nshm-conus-2018")
 
   main = "gov.usgs.earthquake.nshmp.model.GenerateActual"
 }
@@ -142,11 +130,7 @@ task generateConus2023(type: JavaExec) {
     downloadNshm(findNshm("nshm-conus", 2023))
   }
 
-  jvmArgs(
-      "-Xms2g",
-      "-Xmx${xmx}",
-      "-DNSHM=nshm-conus-2023"
-      )
+  jvmArgs("-DNSHM=nshm-conus-2023")
 
   main = "gov.usgs.earthquake.nshmp.model.GenerateActual"
 }
@@ -160,11 +144,7 @@ task generateHawaii2021(type: JavaExec) {
     downloadNshm(findNshm("nshm-hawaii", 2021))
   }
 
-  jvmArgs(
-      "-Xms2g",
-      "-Xmx${xmx}",
-      "-DNSHM=nshm-hawaii-2021"
-      )
+  jvmArgs("-DNSHM=nshm-hawaii-2021")
 
   main = "gov.usgs.earthquake.nshmp.model.GenerateActual"
 }
-- 
GitLab


From 135b5575f672325809b3f3f60d551471df163857 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Fri, 1 Sep 2023 11:01:56 -0600
Subject: [PATCH 45/52] use data path check

---
 .../earthquake/nshmp/model/NshmTests.java     | 20 ++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

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 68417b07..414c7888 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
@@ -1,6 +1,7 @@
 package gov.usgs.earthquake.nshmp.model;
 
 import java.io.IOException;
+import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.ArrayList;
@@ -120,7 +121,8 @@ class NshmTests {
    */
   @Test
   final void testAlaska2007() throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-alaska-2007"), getDataPath());
+    Nshm nshm = NSHMS.get("nshm-alaska-2007");
+    NshmTestUtils.testNshm(nshm, getDataPath(nshm));
   }
 
   /**
@@ -130,7 +132,8 @@ class NshmTests {
    */
   @Test
   final void testAlaska2023() throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-alaska-2023"), getDataPath());
+    Nshm nshm = NSHMS.get("nshm-alaska-2023");
+    NshmTestUtils.testNshm(nshm, getDataPath(nshm));
   }
 
   /**
@@ -140,7 +143,8 @@ class NshmTests {
    */
   @Test
   final void testConus2018() throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2018"), getDataPath());
+    Nshm nshm = NSHMS.get("nshm-conus-2018");
+    NshmTestUtils.testNshm(nshm, getDataPath(nshm));
   }
 
   /**
@@ -150,7 +154,8 @@ class NshmTests {
    */
   @Test
   final void testConus2023() throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-conus-2023"), getDataPath());
+    Nshm nshm = NSHMS.get("nshm-conus-2023");
+    NshmTestUtils.testNshm(nshm, getDataPath(nshm));
   }
 
   /**
@@ -160,10 +165,11 @@ class NshmTests {
    */
   @Test
   final void testHawaii2021() throws IOException {
-    NshmTestUtils.testNshm(NSHMS.get("nshm-hawaii-2021"), getDataPath());
+    Nshm nshm = NSHMS.get("nshm-hawaii-2021");
+    NshmTestUtils.testNshm(nshm, getDataPath(nshm));
   }
 
-  private static Optional<Path> getDataPath() {
-    return System.getenv("GITLAB_CI") != null ? Optional.of(DATA_PATH) : Optional.empty();
+  private static Optional<Path> getDataPath(Nshm nshm) {
+    return Files.exists(DATA_PATH.resolve(nshm.modelName())) ? Optional.of(DATA_PATH) : Optional.empty();
   }
 }
-- 
GitLab


From d9cb3e3144eba3e3ad3c3aa1f96d101119246166 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Fri, 1 Sep 2023 11:03:44 -0600
Subject: [PATCH 46/52] clean teask

---
 gradle/nshm.gradle | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gradle/nshm.gradle b/gradle/nshm.gradle
index e2bce69e..ea8f4b10 100644
--- a/gradle/nshm.gradle
+++ b/gradle/nshm.gradle
@@ -78,6 +78,10 @@ task nshms() {
   }
 }
 
+task cleanGenerated(type: Delete) {
+  delete "src/test/resources/e2e/actual"
+}
+
 // Generate Alaska 2007 for CI
 task generateAlaska2007(type: JavaExec) {
   description = "Generate alaska-2007 acutal for CI/CD"
-- 
GitLab


From de40dffec701422dbf1773e36084d08b471537ad Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Fri, 1 Sep 2023 11:03:48 -0600
Subject: [PATCH 47/52] cleanup

---
 src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

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 414c7888..1a886f34 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
@@ -170,6 +170,7 @@ class NshmTests {
   }
 
   private static Optional<Path> getDataPath(Nshm nshm) {
-    return Files.exists(DATA_PATH.resolve(nshm.modelName())) ? Optional.of(DATA_PATH) : Optional.empty();
+    return Files.exists(DATA_PATH.resolve(nshm.modelName())) ? Optional.of(DATA_PATH)
+        : Optional.empty();
   }
 }
-- 
GitLab


From 3d2d3860138d07e6bb77c9b4d83d5179f2c48a01 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Fri, 1 Sep 2023 11:05:53 -0600
Subject: [PATCH 48/52] load model when needed

---
 .../java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

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 cb390cc0..e951a913 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
@@ -84,14 +84,16 @@ class NshmTestUtils {
    * @param nshm The NSHM to test
    */
   static void testNshm(Nshm nshm, Optional<Path> dataPath) {
-    NshmModel nshmModel = loadModel(nshm);
+    NshmModel nshmModel = dataPath.isPresent() ? null : loadModel(nshm);
 
     for (NamedLocation location : nshm.locations()) {
       LOGGER.info("Location: " + location.toString());
       compareCurves(nshmModel, location, dataPath);
     }
 
-    nshmModel.exec.shutdown();
+    if (nshmModel != null) {
+      nshmModel.exec.shutdown();
+    }
   }
 
   /**
-- 
GitLab


From 2f5ce99c70c1ab35212479b8d4edc6fc568b7ff9 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Fri, 1 Sep 2023 11:07:42 -0600
Subject: [PATCH 49/52] load model

---
 .../java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

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 e951a913..cb390cc0 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
@@ -84,16 +84,14 @@ class NshmTestUtils {
    * @param nshm The NSHM to test
    */
   static void testNshm(Nshm nshm, Optional<Path> dataPath) {
-    NshmModel nshmModel = dataPath.isPresent() ? null : loadModel(nshm);
+    NshmModel nshmModel = loadModel(nshm);
 
     for (NamedLocation location : nshm.locations()) {
       LOGGER.info("Location: " + location.toString());
       compareCurves(nshmModel, location, dataPath);
     }
 
-    if (nshmModel != null) {
-      nshmModel.exec.shutdown();
-    }
+    nshmModel.exec.shutdown();
   }
 
   /**
-- 
GitLab


From c3776fee79c5e52c5d52d242f5a3e76aadb7cd16 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Fri, 1 Sep 2023 11:14:50 -0600
Subject: [PATCH 50/52] change to single stage

---
 .gitlab-ci.yml | 79 +++++++++++++++-----------------------------------
 1 file changed, 23 insertions(+), 56 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7e6bcb78..fe91137d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -226,15 +226,7 @@ Markdown Lint:
     - ./gradlew markdownlint
   stage: test
 
-YAML Lint:
-  allow_failure: true
-  needs: []
-  script:
-    - ./gradlew nodeInstall
-    - ./gradlew yamllint
-  stage: test
-
-Unit Tests:
+NSHM Test:
   artifacts:
     paths:
       - ${JACOCO_HTML_DIR}
@@ -242,16 +234,30 @@ Unit Tests:
       junit: ${JUNIT_FILES}
   coverage: '/Total.*?([0-9]{1,3})%/'
   needs: []
+  parallel:
+    matrix:
+      - NSHM: Alaska2007
+      - NSHM: Alaska2023
+      - NSHM: Conus2018
+      - NSHM: Conus2023
+      - NSHM: Hawaii2021
   script:
-    - ./gradlew check
+    - 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
 
-####
-# NSHMS Tests
-####
+YAML Lint:
+  allow_failure: true
+  needs: []
+  script:
+    - ./gradlew nodeInstall
+    - ./gradlew yamllint
+  stage: test
 
-.nshm-test:
+Unit Tests:
   artifacts:
     paths:
       - ${JACOCO_HTML_DIR}
@@ -259,49 +265,10 @@ Unit Tests:
       junit: ${JUNIT_FILES}
   coverage: '/Total.*?([0-9]{1,3})%/'
   needs: []
-  before_script:
-    - CI_RUNNER_MEMORY="$(awk '/MemTotal/ {printf( "%d\n", $2 / 1024 / 1024 * .90 )}' /proc/meminfo)g"
-    - export CI_RUNNER_MEMORY
-    - ./gradlew ${CMD} --info
-  after_script:
-    - cat ${JACOCO_HTML_DIR}/index.html
-
-Alaska 2007 NSHM Test:
-  extends:
-    - .nshm-test
-  script:
-    - ./gradlew testAlaska2007 --info
-  stage: alaska-test
-
-Alaska 2023 NSHM Test:
-  extends:
-    - .nshm-test
-  script:
-    - ./gradlew testAlaska2023 --info
-  stage: alaska-test
-
-CONUS 2018 NSHM Test:
-  extends:
-    - .nshm-test
-  script:
-    - ./gradlew generateConus2018 --info
-    - ./gradlew testConus2018 --info
-  stage: conus-test
-
-CONUS 2023 NSHM Test:
-  extends:
-    - .nshm-test
   script:
-    - ./gradlew generateConus2023 --info
-    - ./gradlew testConus2023 --info
-  stage: conus-test
-
-Hawaii 2021 NSHM Test:
-  extends:
-    - .nshm-test
-  script:
-    - ./gradlew testHawaii2021 --info
-  stage: hawaii-test
+    - ./gradlew check
+    - cat ${JACOCO_HTML_DIR}/index.html
+  stage: test
 
 ####
 # Stage: trigger
-- 
GitLab


From e49951ef08a80eb78ba6a2266aec54ed246809c0 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Fri, 1 Sep 2023 11:27:27 -0600
Subject: [PATCH 51/52] cleanup

---
 .gitlab-ci.yml                                                  | 2 +-
 .../java/gov/usgs/earthquake/nshmp/model/GenerateActual.java    | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index fe91137d..20d024fa 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -226,7 +226,7 @@ Markdown Lint:
     - ./gradlew markdownlint
   stage: test
 
-NSHM Test:
+NSHM Tests:
   artifacts:
     paths:
       - ${JACOCO_HTML_DIR}
diff --git a/src/test/java/gov/usgs/earthquake/nshmp/model/GenerateActual.java b/src/test/java/gov/usgs/earthquake/nshmp/model/GenerateActual.java
index 489304c5..4a9c54d1 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/GenerateActual.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/GenerateActual.java
@@ -10,6 +10,8 @@ import gov.usgs.earthquake.nshmp.model.NshmTestUtils.NshmModel;
  * Generate actual results to compare to expected results.
  *
  * Used in CI environment for faster unit tests.
+ *
+ * See nshms.gradle for generate tasks.
  */
 class GenerateActual {
 
-- 
GitLab


From 0331346e89ac015c9f92ab371dbe4c890e87d0fe Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Fri, 1 Sep 2023 11:33:20 -0600
Subject: [PATCH 52/52] cleanup

---
 .gitlab-ci.yml                                                 | 3 ---
 .../java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java    | 1 -
 src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java   | 2 +-
 3 files changed, 1 insertion(+), 5 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 20d024fa..982acd05 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -15,9 +15,6 @@ workflow:
 stages:
   - build
   - test
-  - alaska-test
-  - conus-test
-  - hawaii-test
   - trigger
 
 default:
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 cb390cc0..9d0daaba 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTestUtils.java
@@ -59,7 +59,6 @@ class NshmTestUtils {
    */
   static NshmModel loadModel(Nshm nshm) {
     int cores = Runtime.getRuntime().availableProcessors();
-    LOGGER.info("Cores: " + cores);
     return new NshmModel(
         nshm,
         ModelLoader.load(nshm.modelPath()),
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 1a886f34..d9c9eb67 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/model/NshmTests.java
@@ -101,7 +101,7 @@ class NshmTests {
 
     // run single model
     NshmModel nshmModel =
-        NshmTestUtils.loadModel(NSHMS.get("nshm-alaska-2023"));
+        NshmTestUtils.loadModel(NSHMS.get("nshm-conus-2023"));
 
     NshmTestUtils.writeExpecteds(nshmModel, Optional.empty());
     nshmModel.exec.shutdown();
-- 
GitLab