Skip to content
Snippets Groups Projects

NSHM Unit tests

Compare and Show latest version
2 files
+ 17
6
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -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);
}
@@ -129,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);
@@ -140,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;
}
Loading