From 5bb29b87dbeb7a6fb3e7367ef80f94947c23c428 Mon Sep 17 00:00:00 2001 From: Hilbrand Bouwkamp Date: Mon, 1 Dec 2025 17:02:59 +0100 Subject: [PATCH 1/2] AER-4087 Add reposition_sub_receptors to OwN2000CalculationOptions. --- .../resources/gml/v6_0/test_mixed_features.gml | 6 ++++++ .../test/resources/gml/v6_0/test_receptors.gml | 6 ++++++ .../v6_0/test_receptors_concentration_only.gml | 6 ++++++ .../gml/v6_0/test_receptors_deposition_only.gml | 6 ++++++ .../gml/v6_0/test_receptors_edge_effect.gml | 6 ++++++ .../gml/v6_0/test_receptors_no_representation.gml | 6 ++++++ .../calculation/OwN2000CalculationOptions.java | 11 ++++++++++- .../overheid/aerius/util/OptionsMetadataUtil.java | 1 + .../aerius/util/Own2000OptionsMetadataUtil.java | 1 + .../util/Own2000OptionsMetadataUtilTest.java | 15 ++++++++------- 10 files changed, 56 insertions(+), 8 deletions(-) diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/test_mixed_features.gml b/source/imaer-gml/src/test/resources/gml/v6_0/test_mixed_features.gml index 5932a2fe..2cdfb1f4 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/test_mixed_features.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/test_mixed_features.gml @@ -33,6 +33,12 @@ CONCENTRATION DEPOSITION 3.0 + + + reposition_sub_receptors + true + + monitor_srm2_year diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors.gml b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors.gml index d3667022..0b2f0244 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors.gml @@ -16,6 +16,12 @@ CONCENTRATION DEPOSITION 3.0 + + + reposition_sub_receptors + true + + monitor_srm2_year diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_concentration_only.gml b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_concentration_only.gml index 7e6df26f..14a7de60 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_concentration_only.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_concentration_only.gml @@ -16,6 +16,12 @@ CONCENTRATION DEPOSITION 3.0 + + + reposition_sub_receptors + true + + monitor_srm2_year diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_deposition_only.gml b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_deposition_only.gml index b76a7704..595d0747 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_deposition_only.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_deposition_only.gml @@ -16,6 +16,12 @@ CONCENTRATION DEPOSITION 3.0 + + + reposition_sub_receptors + true + + monitor_srm2_year diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_edge_effect.gml b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_edge_effect.gml index 78f2d8b6..523f2319 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_edge_effect.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_edge_effect.gml @@ -16,6 +16,12 @@ CONCENTRATION DEPOSITION 3.0 + + + reposition_sub_receptors + true + + monitor_srm2_year diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_no_representation.gml b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_no_representation.gml index 7bded25c..15b784d0 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_no_representation.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_no_representation.gml @@ -16,6 +16,12 @@ CONCENTRATION DEPOSITION 3.0 + + + reposition_sub_receptors + true + + monitor_srm2_year diff --git a/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/calculation/OwN2000CalculationOptions.java b/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/calculation/OwN2000CalculationOptions.java index 650097d2..4cd59037 100644 --- a/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/calculation/OwN2000CalculationOptions.java +++ b/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/calculation/OwN2000CalculationOptions.java @@ -25,7 +25,7 @@ */ public class OwN2000CalculationOptions implements Serializable { - private static final long serialVersionUID = 2L; + private static final long serialVersionUID = 3L; private CalculationRoadOPS roadOPS = CalculationRoadOPS.DEFAULT; private PermitLowerBoundType permitLowerBoundType; @@ -42,6 +42,7 @@ public class OwN2000CalculationOptions implements Serializable { private Integer subReceptorZoomLevel; private boolean splitSubReceptorWork; private int splitSubReceptorWorkDistance; + private boolean repositionSubReceptors = true; /** * @return Returns the lower bound type used for permit calculations. @@ -212,6 +213,14 @@ public void setSplitSubReceptorWorkDistance(final int distance) { this.splitSubReceptorWorkDistance = distance; } + public boolean isRepositionSubReceptors() { + return repositionSubReceptors; + } + + public void setRepositionSubReceptors(final boolean repositionSubReceptors) { + this.repositionSubReceptors = repositionSubReceptors; + } + /** * @return Returns OPS specific options. */ diff --git a/source/imaer-util/src/main/java/nl/overheid/aerius/util/OptionsMetadataUtil.java b/source/imaer-util/src/main/java/nl/overheid/aerius/util/OptionsMetadataUtil.java index 3039aa2f..b9322cf1 100644 --- a/source/imaer-util/src/main/java/nl/overheid/aerius/util/OptionsMetadataUtil.java +++ b/source/imaer-util/src/main/java/nl/overheid/aerius/util/OptionsMetadataUtil.java @@ -47,6 +47,7 @@ public enum Option { SUB_RECEPTOR_ZOOM_LEVEL, SPLIT_SUB_RECEPTOR_WORK, SPLIT_SUB_RECEPTOR_WORK_DISTANCE, + REPOSITION_SUB_RECEPTORS, USE_IN_COMBINATION_ARCHIVE, /* ConnectSuppliedOptions related */ diff --git a/source/imaer-util/src/main/java/nl/overheid/aerius/util/Own2000OptionsMetadataUtil.java b/source/imaer-util/src/main/java/nl/overheid/aerius/util/Own2000OptionsMetadataUtil.java index 89a97169..111cd258 100644 --- a/source/imaer-util/src/main/java/nl/overheid/aerius/util/Own2000OptionsMetadataUtil.java +++ b/source/imaer-util/src/main/java/nl/overheid/aerius/util/Own2000OptionsMetadataUtil.java @@ -76,6 +76,7 @@ private static void own2000OptionsToMap(final Map mapToAddTo, fi if (options.isSplitSubReceptorWork()) { addValue(mapToAddTo, Option.SPLIT_SUB_RECEPTOR_WORK_DISTANCE, options.getSplitSubReceptorWorkDistance(), addDefaults); } + addBooleanValue(mapToAddTo, Option.REPOSITION_SUB_RECEPTORS, options.isRepositionSubReceptors(), addDefaults); opsOptionsToMap(options.getOpsOptions(), mapToAddTo, addDefaults); } diff --git a/source/imaer-util/src/test/java/nl/overheid/aerius/util/Own2000OptionsMetadataUtilTest.java b/source/imaer-util/src/test/java/nl/overheid/aerius/util/Own2000OptionsMetadataUtilTest.java index 743e47b4..46a92814 100644 --- a/source/imaer-util/src/test/java/nl/overheid/aerius/util/Own2000OptionsMetadataUtilTest.java +++ b/source/imaer-util/src/test/java/nl/overheid/aerius/util/Own2000OptionsMetadataUtilTest.java @@ -17,7 +17,6 @@ package nl.overheid.aerius.util; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Map; @@ -39,7 +38,8 @@ */ class Own2000OptionsMetadataUtilTest { - private static final int BASIC_OPTIONS = 10; + private static final int DEFAULT_OPTIONS = 1; + private static final int BASIC_OPTIONS = DEFAULT_OPTIONS + 10; private static final int CONNECT_OPTIONS = 2; private static final int OPS_OPTIONS = 13; @@ -49,7 +49,8 @@ void testDefaultOptionsWithoutAddingDefaults() { final Map result = OptionsMetadataUtil.optionsToMap(Theme.OWN2000, options, false); - assertTrue(result.isEmpty(), "With default options and not adding defaults to map, the map should be empty"); + assertEquals(1, result.size(), "With default options and not adding defaults to map, the map only contain 1 entry"); + assertEquals("true", result.get("reposition_sub_receptors"), "Should contain 'reposition_sub_receptors'"); } @Test @@ -113,7 +114,8 @@ void testDefaultOptionsConnect() { final Map result = OptionsMetadataUtil.optionsToMap(Theme.OWN2000, options, true); - assertEquals(BASIC_OPTIONS + CONNECT_OPTIONS, result.size(), "Number of options when connectOptions is supplied and when adding defaults to map"); + assertEquals(BASIC_OPTIONS + CONNECT_OPTIONS, result.size(), + "Number of options when connectOptions is supplied and when adding defaults to map"); assertEquals("", result.get("calculation_year"), "calculation_year should be empty"); assertEquals("", result.get("receptor_set"), "receptor_set should be empty"); } @@ -128,7 +130,7 @@ void testNonDefaultOptionsConnect() { final Map result = OptionsMetadataUtil.optionsToMap(Theme.OWN2000, options, false); - assertEquals(CONNECT_OPTIONS, result.size(), "Number of options when connectOptions is supplied with non default values"); + assertEquals(DEFAULT_OPTIONS + CONNECT_OPTIONS, result.size(), "Number of options when connectOptions is supplied with non default values"); assertEquals("1999", result.get("calculation_year"), "Invalide calculation_year option"); assertEquals("SomeRecept or name", result.get("receptor_set"), "Invalide receptor_set option"); } @@ -155,7 +157,6 @@ void testDefaultOptionsOps() { assertEquals("", result.get("ops_chemistry"), "ops_chemistry should be empty"); } - @Test void testNonDefaultOptionsOps() { final CalculationSetOptions options = new CalculationSetOptions(); @@ -177,7 +178,7 @@ void testNonDefaultOptionsOps() { final Map result = OptionsMetadataUtil.optionsToMap(Theme.OWN2000, options, false); - assertEquals(OPS_OPTIONS, result.size(), "Number of options when opsOptions is supplied with non default values"); + assertEquals(OPS_OPTIONS + DEFAULT_OPTIONS, result.size(), "Number of options when opsOptions is supplied with non default values"); assertEquals("true", result.get("ops_raw_input"), "ops_raw_input should be true"); assertEquals("1881", result.get("ops_year"), "ops_year should be set"); assertEquals("20", result.get("ops_comp_code"), "ops_comp_code should be set"); From a9e77cfb3f08f00e6fa8d976c4c5ee5c1d929fc9 Mon Sep 17 00:00:00 2001 From: Hilbrand Bouwkamp Date: Tue, 2 Dec 2025 10:02:32 +0100 Subject: [PATCH 2/2] review comment, don't make repositionSubReceptors true --- .../resources/gml/v6_0/test_mixed_features.gml | 6 ------ .../test/resources/gml/v6_0/test_receptors.gml | 6 ------ .../v6_0/test_receptors_concentration_only.gml | 6 ------ .../gml/v6_0/test_receptors_deposition_only.gml | 6 ------ .../gml/v6_0/test_receptors_edge_effect.gml | 6 ------ .../v6_0/test_receptors_no_representation.gml | 6 ------ .../calculation/OwN2000CalculationOptions.java | 2 +- .../util/Own2000OptionsMetadataUtilTest.java | 17 +++++++++-------- 8 files changed, 10 insertions(+), 45 deletions(-) diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/test_mixed_features.gml b/source/imaer-gml/src/test/resources/gml/v6_0/test_mixed_features.gml index 2cdfb1f4..5932a2fe 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/test_mixed_features.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/test_mixed_features.gml @@ -33,12 +33,6 @@ CONCENTRATION DEPOSITION 3.0 - - - reposition_sub_receptors - true - - monitor_srm2_year diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors.gml b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors.gml index 0b2f0244..d3667022 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors.gml @@ -16,12 +16,6 @@ CONCENTRATION DEPOSITION 3.0 - - - reposition_sub_receptors - true - - monitor_srm2_year diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_concentration_only.gml b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_concentration_only.gml index 14a7de60..7e6df26f 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_concentration_only.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_concentration_only.gml @@ -16,12 +16,6 @@ CONCENTRATION DEPOSITION 3.0 - - - reposition_sub_receptors - true - - monitor_srm2_year diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_deposition_only.gml b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_deposition_only.gml index 595d0747..b76a7704 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_deposition_only.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_deposition_only.gml @@ -16,12 +16,6 @@ CONCENTRATION DEPOSITION 3.0 - - - reposition_sub_receptors - true - - monitor_srm2_year diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_edge_effect.gml b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_edge_effect.gml index 523f2319..78f2d8b6 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_edge_effect.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_edge_effect.gml @@ -16,12 +16,6 @@ CONCENTRATION DEPOSITION 3.0 - - - reposition_sub_receptors - true - - monitor_srm2_year diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_no_representation.gml b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_no_representation.gml index 15b784d0..7bded25c 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_no_representation.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/test_receptors_no_representation.gml @@ -16,12 +16,6 @@ CONCENTRATION DEPOSITION 3.0 - - - reposition_sub_receptors - true - - monitor_srm2_year diff --git a/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/calculation/OwN2000CalculationOptions.java b/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/calculation/OwN2000CalculationOptions.java index 4cd59037..ce2df0e7 100644 --- a/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/calculation/OwN2000CalculationOptions.java +++ b/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/calculation/OwN2000CalculationOptions.java @@ -42,7 +42,7 @@ public class OwN2000CalculationOptions implements Serializable { private Integer subReceptorZoomLevel; private boolean splitSubReceptorWork; private int splitSubReceptorWorkDistance; - private boolean repositionSubReceptors = true; + private boolean repositionSubReceptors; /** * @return Returns the lower bound type used for permit calculations. diff --git a/source/imaer-util/src/test/java/nl/overheid/aerius/util/Own2000OptionsMetadataUtilTest.java b/source/imaer-util/src/test/java/nl/overheid/aerius/util/Own2000OptionsMetadataUtilTest.java index 46a92814..ce4d499e 100644 --- a/source/imaer-util/src/test/java/nl/overheid/aerius/util/Own2000OptionsMetadataUtilTest.java +++ b/source/imaer-util/src/test/java/nl/overheid/aerius/util/Own2000OptionsMetadataUtilTest.java @@ -17,6 +17,7 @@ package nl.overheid.aerius.util; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Map; @@ -38,8 +39,7 @@ */ class Own2000OptionsMetadataUtilTest { - private static final int DEFAULT_OPTIONS = 1; - private static final int BASIC_OPTIONS = DEFAULT_OPTIONS + 10; + private static final int BASIC_OPTIONS = 11; private static final int CONNECT_OPTIONS = 2; private static final int OPS_OPTIONS = 13; @@ -49,8 +49,7 @@ void testDefaultOptionsWithoutAddingDefaults() { final Map result = OptionsMetadataUtil.optionsToMap(Theme.OWN2000, options, false); - assertEquals(1, result.size(), "With default options and not adding defaults to map, the map only contain 1 entry"); - assertEquals("true", result.get("reposition_sub_receptors"), "Should contain 'reposition_sub_receptors'"); + assertTrue(result.isEmpty(), "With default options and not adding defaults to map, the map should be empty"); } @Test @@ -86,6 +85,7 @@ void testNonDefaultOptions() { options.setSubReceptorZoomLevel(1); options.setSplitSubReceptorWork(true); options.setSplitSubReceptorWorkDistance(1000); + options.setRepositionSubReceptors(true); cso.getRblCalculationOptions().setMonitorSrm2Year(2023); final Map result = OptionsMetadataUtil.optionsToMap(Theme.OWN2000, cso, false); @@ -104,6 +104,7 @@ void testNonDefaultOptions() { assertEquals("2023", result.get("monitor_srm2_year"), "Invalid monitor_srm2 option"); assertEquals("true", result.get("split_sub_receptor_work"), "Invalid split_sub_receptor_work option"); assertEquals("1000", result.get("split_sub_receptor_work_distance"), "Invalid split_sub_receptor_work_distance option"); + assertEquals("true", result.get("reposition_sub_receptors"), "Invalid reposition_sub_receptor option"); } @Test @@ -114,8 +115,7 @@ void testDefaultOptionsConnect() { final Map result = OptionsMetadataUtil.optionsToMap(Theme.OWN2000, options, true); - assertEquals(BASIC_OPTIONS + CONNECT_OPTIONS, result.size(), - "Number of options when connectOptions is supplied and when adding defaults to map"); + assertEquals(BASIC_OPTIONS + CONNECT_OPTIONS, result.size(), "Number of options when connectOptions is supplied and when adding defaults to map"); assertEquals("", result.get("calculation_year"), "calculation_year should be empty"); assertEquals("", result.get("receptor_set"), "receptor_set should be empty"); } @@ -130,7 +130,7 @@ void testNonDefaultOptionsConnect() { final Map result = OptionsMetadataUtil.optionsToMap(Theme.OWN2000, options, false); - assertEquals(DEFAULT_OPTIONS + CONNECT_OPTIONS, result.size(), "Number of options when connectOptions is supplied with non default values"); + assertEquals(CONNECT_OPTIONS, result.size(), "Number of options when connectOptions is supplied with non default values"); assertEquals("1999", result.get("calculation_year"), "Invalide calculation_year option"); assertEquals("SomeRecept or name", result.get("receptor_set"), "Invalide receptor_set option"); } @@ -157,6 +157,7 @@ void testDefaultOptionsOps() { assertEquals("", result.get("ops_chemistry"), "ops_chemistry should be empty"); } + @Test void testNonDefaultOptionsOps() { final CalculationSetOptions options = new CalculationSetOptions(); @@ -178,7 +179,7 @@ void testNonDefaultOptionsOps() { final Map result = OptionsMetadataUtil.optionsToMap(Theme.OWN2000, options, false); - assertEquals(OPS_OPTIONS + DEFAULT_OPTIONS, result.size(), "Number of options when opsOptions is supplied with non default values"); + assertEquals(OPS_OPTIONS, result.size(), "Number of options when opsOptions is supplied with non default values"); assertEquals("true", result.get("ops_raw_input"), "ops_raw_input should be true"); assertEquals("1881", result.get("ops_year"), "ops_year should be set"); assertEquals("20", result.get("ops_comp_code"), "ops_comp_code should be set");