From 851245433f0273c7350976ff1e9a0c2c1ff80f91 Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Mon, 27 Sep 2021 08:33:24 -0600 Subject: [PATCH] added peer test classes --- .../earthquake/nshmp/model/peer/PeerTest.java | 179 ++++++++ .../model/peer/PeerTestArgumentProviders.java | 294 +++++++++++++ .../nshmp/model/peer/PeerTests.java | 386 ++++++++++++++++++ 3 files changed, 859 insertions(+) create mode 100644 src/test/java/gov/usgs/earthquake/nshmp/model/peer/PeerTest.java create mode 100644 src/test/java/gov/usgs/earthquake/nshmp/model/peer/PeerTestArgumentProviders.java create mode 100644 src/test/java/gov/usgs/earthquake/nshmp/model/peer/PeerTests.java diff --git a/src/test/java/gov/usgs/earthquake/nshmp/model/peer/PeerTest.java b/src/test/java/gov/usgs/earthquake/nshmp/model/peer/PeerTest.java new file mode 100644 index 000000000..d4e13f704 --- /dev/null +++ b/src/test/java/gov/usgs/earthquake/nshmp/model/peer/PeerTest.java @@ -0,0 +1,179 @@ +package gov.usgs.earthquake.nshmp.model.peer; + +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkState; +import static gov.usgs.earthquake.nshmp.internal.Parsing.Delimiter.COMMA; +import static java.lang.Math.abs; +import static java.nio.charset.StandardCharsets.UTF_8; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.logging.LogManager; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import org.junit.jupiter.params.provider.Arguments; +import org.xml.sax.SAXException; + +import com.google.common.collect.FluentIterable; +import com.google.common.collect.Iterables; +import com.google.common.primitives.Doubles; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +import gov.usgs.earthquake.nshmp.Maths; +import gov.usgs.earthquake.nshmp.calc.CalcConfig; +import gov.usgs.earthquake.nshmp.calc.Hazard; +import gov.usgs.earthquake.nshmp.calc.HazardCalcs; +import gov.usgs.earthquake.nshmp.calc.Site; +import gov.usgs.earthquake.nshmp.calc.Sites; +import gov.usgs.earthquake.nshmp.gmm.Imt; +import gov.usgs.earthquake.nshmp.internal.Parsing; +import gov.usgs.earthquake.nshmp.model.HazardModel; + +public class PeerTest { + + public static final String S1_C1 = "Set1-Case1"; + public static final String S1_C2 = "Set1-Case2"; + public static final String S1_C2_F = "Set1-Case2-fast"; + public static final String S1_C3 = "Set1-Case3"; + public static final String S1_C3_F = "Set1-Case3-fast"; + public static final String S1_C4 = "Set1-Case4"; + public static final String S1_C4_F = "Set1-Case4-fast"; + public static final String S1_C5 = "Set1-Case5"; + public static final String S1_C5_F = "Set1-Case5-fast"; + public static final String S1_C6 = "Set1-Case6"; + public static final String S1_C6_F = "Set1-Case6-fast"; + public static final String S1_C7 = "Set1-Case7"; + public static final String S1_C7_F = "Set1-Case7-fast"; + public static final String S1_C8A = "Set1-Case8a"; + public static final String S1_C8B = "Set1-Case8b"; + public static final String S1_C8B_F = "Set1-Case8b-fast"; + public static final String S1_C8C = "Set1-Case8c"; + public static final String S1_C10 = "Set1-Case10"; + public static final String S1_C10_F = "Set1-Case10-fast"; + public static final String S1_C11 = "Set1-Case11"; + public static final String S1_C11_F = "Set1-Case11-fast"; + + public static final String S2_C1 = "Set2-Case1"; + public static final String S2_C2A = "Set2-Case2a"; + public static final String S2_C2A_F = "Set2-Case2a-fast"; + public static final String S2_C2B = "Set2-Case2b"; + public static final String S2_C2B_F = "Set2-Case2b-fast"; + public static final String S2_C2C = "Set2-Case2c"; + public static final String S2_C2C_F = "Set2-Case2c-fast"; + public static final String S2_C2D = "Set2-Case2d"; + public static final String S2_C2D_F = "Set2-Case2d-fast"; + public static final String S2_C3A = "Set2-Case3a"; + public static final String S2_C3A_F = "Set2-Case3a-fast"; + public static final String S2_C3B = "Set2-Case3b"; + public static final String S2_C3B_F = "Set2-Case3b-fast"; + public static final String S2_C3C = "Set2-Case3c"; + public static final String S2_C3C_F = "Set2-Case3c-fast"; + public static final String S2_C3D = "Set2-Case3d"; + public static final String S2_C3D_F = "Set2-Case3d-fast"; + public static final String S2_C4A = "Set2-Case4a"; + public static final String S2_C4A_F = "Set2-Case4a-fast"; + public static final String S2_C4B = "Set2-Case4b"; + public static final String S2_C4B_F = "Set2-Case4b-fast"; + public static final String S2_C5A = "Set2-Case5a"; + public static final String S2_C5B = "Set2-Case5b"; + + public static final String S3_C1A = "Set3-Case1a"; + public static final String S3_C1B = "Set3-Case1a"; + public static final String S3_C2 = "Set3-Case2"; + public static final String S3_C3 = "Set3-Case3"; + public static final String S3_C4 = "Set3-Case4"; + + private static final Path PEER_DIR = Paths.get("etc", "peer"); + // private static final Path PEER_DIR = Paths.get("..", "nshmp-model-dev", + // "models", "PEER"); + private static final Path MODEL_DIR = PEER_DIR.resolve("models"); + private static final Path RESULT_DIR = PEER_DIR.resolve("results"); + + static Gson gson = new GsonBuilder().setPrettyPrinting().create(); + + static void test( + String modelName, + HazardModel model, + Site site, + double[] expected, + double tolerance, + ExecutorService exec) { + Hazard result = HazardCalcs.hazard(model, model.config(), site, exec); + // compute y-values converting to Poiss prob + double[] actual = Doubles.toArray( + FluentIterable + .from(result.curves().get(Imt.PGA).yValues().boxed().collect(Collectors.toList())) + .transform(Maths.annualRateToProbabilityConverter()) + .toList()); + checkArgument(actual.length == expected.length); + + assertArrayEquals(expected, actual, tolerance); + for (int i = 0; i < expected.length; i++) { + String message = String.format("arrays differ at [%s] expected:<[%s]> but was:<[%s]>", + i, expected[i], actual[i]); + assertTrue(compare(expected[i], actual[i], tolerance), message); + } + } + + private static boolean compare(double expected, double actual, double tolerance) { + return abs(actual - expected) / expected < tolerance || + Double.valueOf(expected).equals(Double.valueOf(actual)); + } + + public static Stream<? extends Arguments> load(String modelId) throws IOException, SAXException { + + /* NOTE this is disabling all logging in Loader and HazardCalc */ + LogManager.getLogManager().reset(); + + Map<String, double[]> expectedsMap = loadExpecteds(modelId); + HazardModel model = HazardModel.load(MODEL_DIR.resolve(modelId)); + CalcConfig config = model.config(); + Iterable<Site> sites = Sites.fromCsv(MODEL_DIR.resolve( + modelId).resolve("sites.csv"), + config, + model.siteData()); + + // ensure that only PGA is being used + checkState(config.hazard.imts.size() == 1); + checkState(config.hazard.imts.iterator().next() == Imt.PGA); + + List<Object[]> argsList = new ArrayList<>(); + for (Site site : sites) { + checkState(expectedsMap.containsKey(site.name())); + Object[] args = new Object[] { model.name(), model, site, expectedsMap.get(site.name()) }; + argsList.add(args); + } + return argsList.stream().map(Arguments::of); + } + + private static Map<String, double[]> loadExpecteds(String modelId) throws IOException { + Path results = RESULT_DIR.resolve(modelId + ".csv"); + List<String> lines = Files.readAllLines(results, UTF_8); + Map<String, double[]> siteValuesMap = new HashMap<>(); + for (String line : Iterables.skip(lines, 1)) { + String[] splitLine = line.split(",", 4); + String siteName = splitLine[0]; + List<Double> values = Parsing.splitToDoubleList(splitLine[3], COMMA); + siteValuesMap.put(siteName, Doubles.toArray(values)); + } + return siteValuesMap; + } + + // TODO Clean + // public static void main(String[] args) { + // String model = MODEL_DIR.resolve(S1_C11_F).toString(); + // HazardCalc.main(new String[] { model }); + // } + +} diff --git a/src/test/java/gov/usgs/earthquake/nshmp/model/peer/PeerTestArgumentProviders.java b/src/test/java/gov/usgs/earthquake/nshmp/model/peer/PeerTestArgumentProviders.java new file mode 100644 index 000000000..38517d47a --- /dev/null +++ b/src/test/java/gov/usgs/earthquake/nshmp/model/peer/PeerTestArgumentProviders.java @@ -0,0 +1,294 @@ +package gov.usgs.earthquake.nshmp.model.peer; + +import java.util.stream.Stream; + +import org.junit.jupiter.api.extension.ExtensionContext; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.ArgumentsProvider; + +/** + * {@code ArgumentProviders} for parameterized tests in {@link PeerTests} + */ +public class PeerTestArgumentProviders { + + public static class Set1Case1 implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S1_C1); + } + } + + public static class Set1Case2 implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S1_C2); + } + } + + public static class Set1Case2_Fast implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S1_C2_F); + } + } + + public static class Set1Case3 implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S1_C3); + } + } + + public static class Set1Case3_Fast implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S1_C3_F); + } + } + + public static class Set1Case4 implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S1_C4); + } + } + + public static class Set1Case4_Fast implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S1_C4_F); + } + } + + public static class Set1Case5 implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S1_C5); + } + } + + public static class Set1Case5_Fast implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S1_C5_F); + } + } + + public static class Set1Case6 implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S1_C6); + } + } + + public static class Set1Case6_Fast implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S1_C6_F); + } + } + + public static class Set1Case7 implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S1_C7); + } + } + + public static class Set1Case7_Fast implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S1_C7_F); + } + } + + public static class Set1Case8a implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S1_C8A); + } + } + + public static class Set1Case8b implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S1_C8B); + } + } + + public static class Set1Case8c implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S1_C8C); + } + } + + public static class Set1Case10 implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S1_C10); + } + } + + public static class Set1Case10_Fast implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S1_C10_F); + } + } + + public static class Set2Case2a implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C2A); + } + } + + public static class Set2Case2a_Fast implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C2A_F); + } + } + + public static class Set2Case2b implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C2B); + } + } + + public static class Set2Case2b_Fast implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C2B_F); + } + } + + public static class Set2Case2c implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C2C); + } + } + + public static class Set2Case2c_Fast implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C2C_F); + } + } + + public static class Set2Case2d implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C2D); + } + } + + public static class Set2Case2d_Fast implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C2D_F); + } + } + + public static class Set2Case3a implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C3A); + } + } + + public static class Set2Case3a_Fast implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C3A_F); + } + } + + public static class Set2Case3b implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C3B); + } + } + + public static class Set2Case3b_Fast implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C3B_F); + } + } + + public static class Set2Case3c implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C3C); + } + } + + public static class Set2Case3c_Fast implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C3C_F); + } + } + + public static class Set2Case3d implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C3D); + } + } + + public static class Set2Case3d_Fast implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C3D_F); + } + } + + public static class Set2Case4a implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C4A); + } + } + + public static class Set2Case4a_Fast implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C4A_F); + } + } + + public static class Set2Case4b implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C4B); + } + } + + public static class Set2Case4b_Fast implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C4B_F); + } + } + + public static class Set2Case5a implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C5A); + } + } + + public static class Set2Case5b implements ArgumentsProvider { + @Override + public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception { + return PeerTest.load(PeerTest.S2_C5B); + } + } + +} diff --git a/src/test/java/gov/usgs/earthquake/nshmp/model/peer/PeerTests.java b/src/test/java/gov/usgs/earthquake/nshmp/model/peer/PeerTests.java new file mode 100644 index 000000000..04f4486b9 --- /dev/null +++ b/src/test/java/gov/usgs/earthquake/nshmp/model/peer/PeerTests.java @@ -0,0 +1,386 @@ +package gov.usgs.earthquake.nshmp.model.peer; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ArgumentsSource; + +import gov.usgs.earthquake.nshmp.calc.Site; +import gov.usgs.earthquake.nshmp.model.HazardModel; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set1Case1; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set1Case10; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set1Case10_Fast; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set1Case2; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set1Case2_Fast; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set1Case3; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set1Case3_Fast; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set1Case4; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set1Case4_Fast; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set1Case5; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set1Case5_Fast; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set1Case6; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set1Case6_Fast; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set1Case7; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set1Case7_Fast; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set1Case8a; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set1Case8b; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set1Case8c; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case2a; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case2a_Fast; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case2b; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case2b_Fast; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case2c; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case2c_Fast; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case2d; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case2d_Fast; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case3a; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case3a_Fast; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case3b; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case3b_Fast; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case3c; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case3c_Fast; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case3d; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case3d_Fast; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case4a; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case4a_Fast; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case4b; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case4b_Fast; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case5a; +import gov.usgs.earthquake.nshmp.model.peer.PeerTestArgumentProviders.Set2Case5b; + +public class PeerTests { + + /* + * This is the primary entry point for running all PEER test cases. + * + * All tolerances are percentages. + * + * Although HazardCurve calculations return results in annual rate, all PEER + * test case comparisons are done as Poisson probability. + */ + + private static ExecutorService EXEC; + private static final double TOL = 1e-6; + + @BeforeAll + public static void setUpBeforeClass() throws Exception { + EXEC = Executors.newSingleThreadExecutor(); + } + + @AfterAll + public static void tearDownAfterClass() throws Exception { + EXEC.shutdown(); + } + + @Test + void emptyTestEclipseBug() { + /* + * Silly workaround for junt5 tests in eclipse where no tests are found + * unless at least one @Test annotaion exists. + */ + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set1Case1.class) + @DisplayName("Set1 Case1") + public final void set1Case1(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @Disabled + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set1Case2.class) + @DisplayName("Set1 Case2") + public final void set1Case2(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set1Case2_Fast.class) + @DisplayName("Set1 Case2 Fast") + public final void set1Case2F(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @Disabled + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set1Case3.class) + @DisplayName("Set1 Case3") + public final void set1Case3(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set1Case3_Fast.class) + @DisplayName("Set1 Case3 Fast") + public final void set1Case3F(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @Disabled + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set1Case4.class) + @DisplayName("Set1 Case4") + public final void set1Case4(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set1Case4_Fast.class) + @DisplayName("Set1 Case4 Fast") + public final void set1Case4F(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @Disabled + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set1Case5.class) + @DisplayName("Set1 Case5") + public final void set1Case5(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set1Case5_Fast.class) + @DisplayName("Set1 Case5 Fast") + public final void set1Case5F(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @Disabled + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set1Case6.class) + @DisplayName("Set1 Case6") + public final void set1Case6(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set1Case6_Fast.class) + @DisplayName("Set1 Case6 Fast") + public final void set1Case6F(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @Disabled + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set1Case7.class) + @DisplayName("Set1 Case7") + public final void set1Case7(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set1Case7_Fast.class) + @DisplayName("Set1 Case7 Fast") + public final void set1Case7F(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set1Case8a.class) + @DisplayName("Set1 Case8a") + public final void set1Case8a(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set1Case8b.class) + @DisplayName("Set1 Case8b") + public final void set1Case8b(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set1Case8c.class) + @DisplayName("Set1 Case8c") + public final void set1Case8c(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @Disabled + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set1Case10.class) + @DisplayName("Set1 Case10") + public final void set1Case10(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set1Case10_Fast.class) + @DisplayName("Set1 Case10 Fast") + public final void set1Case10F(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @Disabled + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case2a.class) + @DisplayName("Set2 Case2a") + public final void set2Case2a(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case2a_Fast.class) + @DisplayName("Set2 Case2a Fast") + public final void set2Case2aF(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @Disabled + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case2b.class) + @DisplayName("Set2 Case2b") + public final void set2Case2b(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case2b_Fast.class) + @DisplayName("Set2 Caseb2 Fast") + public final void set2Case2bF(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @Disabled + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case2c.class) + @DisplayName("Set2 Case2c") + public final void set2Case2c(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case2c_Fast.class) + @DisplayName("Set2 Case2c Fast") + public final void set2Case2cF(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @Disabled + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case2d.class) + @DisplayName("Se2 Case2d") + public final void set2Case2d(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case2d_Fast.class) + @DisplayName("Set2 Case2d Fast") + public final void set2Case2dF(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @Disabled + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case3a.class) + @DisplayName("Set2 Case3a") + public final void set2Case3a(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case3a_Fast.class) + @DisplayName("Set2 Case3a Fast") + public final void set2Case3aF(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @Disabled + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case3b.class) + @DisplayName("Set2 Case3b") + public final void set2Case3b(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case3b_Fast.class) + @DisplayName("Set2 Case3b Fast") + public final void set2Case3bF(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @Disabled + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case3c.class) + @DisplayName("Set2 Case3c") + public final void set2Case3c(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case3c_Fast.class) + @DisplayName("Set2 Case3c Fast") + public final void set2Case3cF(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @Disabled + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case3d.class) + @DisplayName("Set2 Case3d") + public final void set2Case3d(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case3d_Fast.class) + @DisplayName("Set2 Case3d Fast") + public final void set2Case3dF(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @Disabled + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case4a.class) + @DisplayName("Set2 Case4a") + public final void set2Case4a(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case4a_Fast.class) + @DisplayName("Set2 Case4a Fast") + public final void set2Case4aF(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @Disabled + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case4b.class) + @DisplayName("Set2 Case4b") + public final void set2Case4b(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case4b_Fast.class) + @DisplayName("Set2 Case4b Fast") + public final void set2Case4bF(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case5a.class) + @DisplayName("Set2 Case5a") + public final void set2Case5a(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + + @ParameterizedTest(name = "{0}, Site={index}") + @ArgumentsSource(Set2Case5b.class) + @DisplayName("Set2 Case5b") + public final void set2Case5b(String modelName, HazardModel model, Site site, double[] expected) { + PeerTest.test(modelName, model, site, expected, TOL, EXEC); + } + +} -- GitLab