From 1467b3e63df405e5594e4101d919c5528c57b5ef Mon Sep 17 00:00:00 2001 From: bclayton-usgs <bclayton@usgs.gov> Date: Wed, 11 Mar 2020 16:51:27 -0600 Subject: [PATCH] update --- .../nshmp/netcdf/reader/BoundingHazards.java | 6 +++--- .../nshmp/netcdf/reader/NetcdfUtils.java | 15 +++++++++------ .../nshmp/netcdf/reader/NetcdfUtilsTests.java | 6 +++--- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazards.java b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazards.java index 3906d39..2275031 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazards.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazards.java @@ -82,6 +82,9 @@ public class BoundingHazards { boundingHazards.put( site, calcTargetHazards(fracLon, fracLat)); + + // validate boundingHazards + NetcdfUtils.checkBoundingHazards(boundingHazards, boundingLocations.first()); } private Map<SiteClass, Map<Imt, XySequence>> calcTargetHazards(double fracLon, double fracLat) { @@ -165,9 +168,6 @@ public class BoundingHazards { boundingLocations.get(3), mapHazardsFromArray(aHazards.section(origin, shape))); - // validate boundingHazardMaps - NetcdfUtils.checkBoundingHazards(boundingHazards); - } catch (IOException | InvalidRangeException e) { // shouldn't get here because the reader was initialized with a valid and // existing netCDF file. Is the only way to trigger this error is to diff --git a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java index e434737..0424989 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java @@ -1,12 +1,12 @@ package gov.usgs.earthquake.nshmp.netcdf.reader; +import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; import java.io.IOException; import java.util.Arrays; import java.util.Map; -import java.util.stream.Collectors; import com.google.common.collect.Maps; import com.google.common.math.DoubleMath; @@ -201,11 +201,14 @@ public class NetcdfUtils { * @param boundingHazards The bounding hazards */ static void checkBoundingHazards( - Map<Location, Map<SiteClass, Map<Imt, XySequence>>> boundingHazards) { - var location = boundingHazards.keySet().stream().collect(Collectors.toList()).get(0); - boundingHazards.keySet().forEach(key -> { - checkBoundingHazard(boundingHazards.get(location), boundingHazards.get(key)); - }); + Map<Location, Map<SiteClass, Map<Imt, XySequence>>> boundingHazards, + Location location) { + checkArgument(boundingHazards.containsKey(location), "Location not in bounding hazards"); + boundingHazards.keySet().stream() + .filter(loc -> loc.equals(location)) + .forEach(key -> { + checkBoundingHazard(boundingHazards.get(location), boundingHazards.get(key)); + }); } /** diff --git a/src/test/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtilsTests.java b/src/test/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtilsTests.java index 625ec8c..2eaacb2 100644 --- a/src/test/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtilsTests.java +++ b/src/test/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtilsTests.java @@ -163,17 +163,17 @@ class NetcdfUtilsTests { }); // compare maps with different size at first level (SiteClass) - assertThrows(IllegalArgumentException.class, () -> { + assertThrows(IllegalStateException.class, () -> { NetcdfUtils.checkBoundingHazard(mapHaz0, mapDiffScSize); }); // compare maps with different size at second level (Imt) - assertThrows(IllegalArgumentException.class, () -> { + assertThrows(IllegalStateException.class, () -> { NetcdfUtils.checkBoundingHazard(mapHaz0, mapDiffImtSize); }); // compare maps with a single different Iml value - assertThrows(IllegalArgumentException.class, () -> { + assertThrows(IllegalStateException.class, () -> { NetcdfUtils.checkBoundingHazard(mapHaz0, mapDiffImlValue); }); } -- GitLab