Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs =================================================================== diff -u -r0eef796eb9da995e56fd1e4a61296ec3c25dcfad -r5762f5a734abc237f01cd62257cedd7ba2e9c8e8 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs (.../PipingInputContextProperties.cs) (revision 0eef796eb9da995e56fd1e4a61296ec3c25dcfad) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs (.../PipingInputContextProperties.cs) (revision 5762f5a734abc237f01cd62257cedd7ba2e9c8e8) @@ -124,18 +124,22 @@ [DynamicReadOnlyValidationMethod] public bool DynamicReadOnlyValidationMethod(string propertyName) { - if (propertyName == TypeUtils.GetMemberName(p => p.AssessmentLevel)) + if (propertyName == nameof(AssessmentLevel)) { return !data.WrappedData.UseAssessmentLevelManualInput; } + if (propertyName == nameof(EntryPointL) || propertyName == nameof(ExitPointL)) + { + return data.WrappedData.SurfaceLine == null; + } return true; } [DynamicVisibleValidationMethod] public bool DynamicVisibleValidationMethod(string propertyName) { - if (propertyName == TypeUtils.GetMemberName(p => p.SelectedHydraulicBoundaryLocation)) + if (propertyName == nameof(SelectedHydraulicBoundaryLocation)) { return !data.WrappedData.UseAssessmentLevelManualInput; } @@ -325,6 +329,7 @@ } } + [DynamicReadOnly] [PropertyOrder(entryPointLPropertyIndex)] [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_Schematization))] [ResourcesDisplayName(typeof(Resources), nameof(Resources.PipingInput_EntryPointL_DisplayName))] @@ -341,6 +346,7 @@ } } + [DynamicReadOnly] [PropertyOrder(exitPointLPropertyIndex)] [ResourcesCategory(typeof(RingtoetsCommonFormsResources), nameof(RingtoetsCommonFormsResources.Categories_Schematization))] [ResourcesDisplayName(typeof(Resources), nameof(Resources.PipingInput_ExitPointL_DisplayName))] Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Importers/PipingConfigurationImporter.cs =================================================================== diff -u -rf9b356c4654ac261a1ec41255f872dcaba9ac7a6 -r5762f5a734abc237f01cd62257cedd7ba2e9c8e8 --- Ringtoets/Piping/src/Ringtoets.Piping.IO/Importers/PipingConfigurationImporter.cs (.../PipingConfigurationImporter.cs) (revision f9b356c4654ac261a1ec41255f872dcaba9ac7a6) +++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Importers/PipingConfigurationImporter.cs (.../PipingConfigurationImporter.cs) (revision 5762f5a734abc237f01cd62257cedd7ba2e9c8e8) @@ -259,16 +259,24 @@ /// Thrown when the entry point or exit point is invalid. private static void ReadEntryExitPoint(ReadPipingCalculation readCalculation, PipingCalculationScenario pipingCalculation) { - if (readCalculation.EntryPointL.HasValue) + bool hasEntryPoint = readCalculation.EntryPointL.HasValue; + bool hasExitPoint = readCalculation.ExitPointL.HasValue; + + if (readCalculation.SurfaceLine == null && (hasEntryPoint || hasExitPoint)) { + throw new CriticalFileValidationException(Resources.PipingConfigurationImporter_ReadSurfaceLine_EntryPointL_or_ExitPointL_defined_without_SurfaceLine); + } + + if (hasEntryPoint) + { var entryPoint = (double) readCalculation.EntryPointL; PerformActionHandlingAnyArgumentOutOfRangeException( () => pipingCalculation.InputParameters.EntryPointL = (RoundedDouble) entryPoint, string.Format(Resources.PipingConfigurationImporter_ReadEntryExitPoint_Entry_point_invalid, entryPoint)); } - if (readCalculation.ExitPointL.HasValue) + if (hasExitPoint) { var exitPoint = (double) readCalculation.ExitPointL; Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.Designer.cs =================================================================== diff -u -r75dc704ab66c75bc2694b103649fb6f9344bdd64 -r5762f5a734abc237f01cd62257cedd7ba2e9c8e8 --- Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 75dc704ab66c75bc2694b103649fb6f9344bdd64) +++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 5762f5a734abc237f01cd62257cedd7ba2e9c8e8) @@ -329,6 +329,16 @@ } /// + /// Looks up a localized string similar to Er is geen profielschematisatie, maar wel een intrede- of uittredepunt opgegeven.. + /// + public static string PipingConfigurationImporter_ReadSurfaceLine_EntryPointL_or_ExitPointL_defined_without_SurfaceLine { + get { + return ResourceManager.GetString("PipingConfigurationImporter_ReadSurfaceLine_EntryPointL_or_ExitPointL_defined_wit" + + "hout_SurfaceLine", resourceCulture); + } + } + + /// /// Looks up a localized string similar to De profielschematisatie '{0}' bestaat niet.. /// public static string PipingConfigurationImporter_ReadSurfaceLine_SurfaceLine_0_does_not_exist { Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.resx =================================================================== diff -u -r75dc704ab66c75bc2694b103649fb6f9344bdd64 -r5762f5a734abc237f01cd62257cedd7ba2e9c8e8 --- Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.resx (.../Resources.resx) (revision 75dc704ab66c75bc2694b103649fb6f9344bdd64) +++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.resx (.../Resources.resx) (revision 5762f5a734abc237f01cd62257cedd7ba2e9c8e8) @@ -340,4 +340,7 @@ Er is geen stochastisch ondergrondmodel opgegeven bij ondergrondschematisatie '{0}'. + + Er is geen profielschematisatie, maar wel een intrede- of uittredepunt opgegeven. + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingInputContextPropertiesTest.cs =================================================================== diff -u -r37fc59cc0f3becb92e14b8263bd8e9fc71aa0e79 -r5762f5a734abc237f01cd62257cedd7ba2e9c8e8 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingInputContextPropertiesTest.cs (.../PipingInputContextPropertiesTest.cs) (revision 37fc59cc0f3becb92e14b8263bd8e9fc71aa0e79) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingInputContextPropertiesTest.cs (.../PipingInputContextPropertiesTest.cs) (revision 5762f5a734abc237f01cd62257cedd7ba2e9c8e8) @@ -243,20 +243,6 @@ Assert.AreEqual("Ondergrondschematisatie", stochasticSoilProfileProperty.DisplayName); Assert.AreEqual("De opbouw van de ondergrond.", stochasticSoilProfileProperty.Description); - PropertyDescriptor entryPointLProperty = dynamicProperties[expectedEntryPointLPropertyIndex]; - Assert.IsNotNull(entryPointLProperty); - Assert.IsFalse(entryPointLProperty.IsReadOnly); - Assert.AreEqual(schematizationCategory, entryPointLProperty.Category); - Assert.AreEqual("Intredepunt", entryPointLProperty.DisplayName); - Assert.AreEqual("De positie in het dwarsprofiel van het intredepunt.", entryPointLProperty.Description); - - PropertyDescriptor exitPointLProperty = dynamicProperties[expectedExitPointLPropertyIndex]; - Assert.IsNotNull(exitPointLProperty); - Assert.IsFalse(exitPointLProperty.IsReadOnly); - Assert.AreEqual(schematizationCategory, exitPointLProperty.Category); - Assert.AreEqual("Uittredepunt", exitPointLProperty.DisplayName); - Assert.AreEqual("De positie in het dwarsprofiel van het uittredepunt.", exitPointLProperty.Description); - PropertyDescriptor seepageLengthProperty = dynamicProperties[expectedSeepageLengthPropertyIndex]; Assert.IsNotNull(seepageLengthProperty); Assert.IsInstanceOf(seepageLengthProperty.Converter); @@ -319,6 +305,66 @@ [Test] [TestCase(true)] [TestCase(false)] + public void Constructor_WithOrWithoutSurfaceLine_EntryAndExitPointPropertyReadOnlyWithoutSurfaceLine(bool withSurfaceLine) + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + PipingCalculationScenario calculationItem = new PipingCalculationScenario(new GeneralPipingInput()); + PipingFailureMechanism failureMechanism = new PipingFailureMechanism(); + + PipingInput inputParameters = new PipingInput(new GeneralPipingInput()); + + if (withSurfaceLine) + { + var surfaceLine = new RingtoetsPipingSurfaceLine(); + surfaceLine.SetGeometry(new[] + { + new Point3D(0, 0, 0), + new Point3D(2, 0, 2) + }); + inputParameters.SurfaceLine = surfaceLine; + } + + // Call + var context = new PipingInputContext(inputParameters, + calculationItem, + Enumerable.Empty(), + Enumerable.Empty(), + failureMechanism, + assessmentSection); + + var handler = new ObservablePropertyChangeHandler(calculationItem, calculationItem.InputParameters); + + PipingInputContextProperties properties = new PipingInputContextProperties(context, handler); + + // Assert + PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); + + var schematizationCategory = "Schematisatie"; + + PropertyDescriptor entryPointLProperty = dynamicProperties[expectedEntryPointLPropertyIndex]; + Assert.IsNotNull(entryPointLProperty); + Assert.AreEqual(!withSurfaceLine, entryPointLProperty.IsReadOnly); + Assert.AreEqual(schematizationCategory, entryPointLProperty.Category); + Assert.AreEqual("Intredepunt", entryPointLProperty.DisplayName); + Assert.AreEqual("De positie in het dwarsprofiel van het intredepunt.", entryPointLProperty.Description); + + PropertyDescriptor exitPointLProperty = dynamicProperties[expectedExitPointLPropertyIndex]; + Assert.IsNotNull(exitPointLProperty); + Assert.AreEqual(!withSurfaceLine, exitPointLProperty.IsReadOnly); + Assert.AreEqual(schematizationCategory, exitPointLProperty.Category); + Assert.AreEqual("Uittredepunt", exitPointLProperty.DisplayName); + Assert.AreEqual("De positie in het dwarsprofiel van het uittredepunt.", exitPointLProperty.Description); + + mocks.VerifyAll(); + } + + [Test] + [TestCase(true)] + [TestCase(false)] public void GetProperties_UseAssessmentLevelManualInput_ReturnsExpectedAttributeValues(bool useManualAssessmentLevelInput) { // Setup Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Importers/PipingConfigurationImporterTest.cs =================================================================== diff -u -rf9b356c4654ac261a1ec41255f872dcaba9ac7a6 -r5762f5a734abc237f01cd62257cedd7ba2e9c8e8 --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Importers/PipingConfigurationImporterTest.cs (.../PipingConfigurationImporterTest.cs) (revision f9b356c4654ac261a1ec41255f872dcaba9ac7a6) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Importers/PipingConfigurationImporterTest.cs (.../PipingConfigurationImporterTest.cs) (revision 5762f5a734abc237f01cd62257cedd7ba2e9c8e8) @@ -42,22 +42,6 @@ private readonly string readerPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Piping.IO, "PipingConfigurationReader"); private readonly string importerPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Piping.IO, "PipingConfigurationImporter"); - private static IEnumerable ValidConfigurationsWithValidData - { - get - { - yield return new TestCaseData("validConfigurationNesting.xml", - GetExpectedNestedData()) - .SetName("validConfigurationNesting"); - yield return new TestCaseData("validConfigurationCalculationContainingNaNs.xml", - GetExpectedNaNData()) - .SetName("validConfigurationCalculationContainingNaNs"); - yield return new TestCaseData("validConfigurationCalculationContainingInfinities.xml", - GetExpectedInfinityData()) - .SetName("validConfigurationCalculationContainingInfinities"); - } - } - [Test] public void Constructor_ExpectedValues() { @@ -249,6 +233,10 @@ "Een waarde van '200,2' als uittredepunt is ongeldig. Het gespecificeerde punt moet op het profiel liggen (bereik [0,0, 10,0]).")] [TestCase("validConfigurationEntryPointNotOnSurfaceLine.xml", "Een waarde van '-10' als intredepunt is ongeldig. Het gespecificeerde punt moet op het profiel liggen (bereik [0,0, 10,0]).")] + [TestCase("validConfigurationCalculationContainingInfinityEntryPoint.xml", + "Een waarde van '-Infinity' als intredepunt is ongeldig. Het gespecificeerde punt moet op het profiel liggen (bereik [0,0, 10,0]).")] + [TestCase("validConfigurationCalculationContainingInfinityExitPoint.xml", + "Een waarde van 'Infinity' als uittredepunt is ongeldig. Het gespecificeerde punt moet op het profiel liggen (bereik [0,0, 10,0]).")] [TestCase("validConfigurationInvalidStandardDeviationPhreaticLevelExit.xml", "Een standaardafwijking van '-1' is ongeldig voor stochast 'polderpeil'. Standaardafwijking (σ) moet groter zijn dan of gelijk zijn aan 0.")] [TestCase("validConfigurationInvalidMeanDampingFactorExit.xml", @@ -489,6 +477,34 @@ } [Test] + [TestCase("validConfigurationCalculationContainingEntryPointWithoutSurfaceLine.xml")] + [TestCase("validConfigurationCalculationContainingExitPointWithoutSurfaceLine.xml")] + [TestCase("validConfigurationCalculationContainingEntryPointAndExitPointWithoutSurfaceLine.xml")] + [TestCase("validConfigurationCalculationContainingNaNs.xml")] + public void Import_EntryAndOrExitPointDefinedWithoutSurfaceLine_LogMessageAndContinueImport(string file) + { + // Setup + string filePath = Path.Combine(importerPath, file); + + var calculationGroup = new CalculationGroup(); + var pipingFailureMechanism = new PipingFailureMechanism(); + var importer = new PipingConfigurationImporter(filePath, + calculationGroup, + new HydraulicBoundaryLocation[0], + pipingFailureMechanism); + + // Call + var successful = false; + Action call = () => successful = importer.Import(); + + // Assert + const string expectedMessage = "Er is geen profielschematisatie, maar wel een intrede- of uittredepunt opgegeven. Berekening 'Calculation' is overgeslagen."; + TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1); + Assert.IsTrue(successful); + CollectionAssert.IsEmpty(calculationGroup.Children); + } + + [Test] [TestCase("validConfigurationFullCalculationContainingHydraulicBoundaryLocation.xml", false)] [TestCase("validConfigurationFullCalculationContainingAssessmentLevel.xml", true)] public void Import_ValidConfigurationWithValidHydraulicBoundaryData_DataAddedToModel(string file, bool manualAssessmentLevel) @@ -587,11 +603,10 @@ } [Test] - [TestCaseSource(nameof(ValidConfigurationsWithValidData))] - public void Import_ValidConfigurationWithValidData_DataAddedToModel(string file, CalculationGroup expectedCalculationGroup) + public void Import_ValidConfigurationWithValidData_DataAddedToModel() { // Setup - string filePath = Path.Combine(readerPath, file); + string filePath = Path.Combine(readerPath, "validConfigurationNesting.xml"); var calculationGroup = new CalculationGroup(); var pipingFailureMechanism = new PipingFailureMechanism(); @@ -606,7 +621,7 @@ // Assert Assert.IsTrue(successful); - AssertCalculationGroup(expectedCalculationGroup, calculationGroup); + AssertCalculationGroup(GetExpectedNestedData(), calculationGroup); } private static CalculationGroup GetExpectedNestedData() @@ -658,68 +673,6 @@ }; } - private static CalculationGroup GetExpectedNaNData() - { - return new CalculationGroup("Root", false) - { - Children = - { - new PipingCalculationScenario(new GeneralPipingInput()) - { - Name = "Calculation", - InputParameters = - { - UseAssessmentLevelManualInput = true, - AssessmentLevel = RoundedDouble.NaN, - EntryPointL = RoundedDouble.NaN, - ExitPointL = RoundedDouble.NaN, - PhreaticLevelExit = - { - Mean = RoundedDouble.NaN, - StandardDeviation = RoundedDouble.NaN - }, - DampingFactorExit = - { - Mean = RoundedDouble.NaN, - StandardDeviation = RoundedDouble.NaN - } - } - } - } - }; - } - - private static CalculationGroup GetExpectedInfinityData() - { - return new CalculationGroup("Root", false) - { - Children = - { - new PipingCalculationScenario(new GeneralPipingInput()) - { - Name = "Calculation", - InputParameters = - { - UseAssessmentLevelManualInput = true, - AssessmentLevel = (RoundedDouble) double.NegativeInfinity, - EntryPointL = (RoundedDouble) double.NegativeInfinity, - ExitPointL = (RoundedDouble) double.PositiveInfinity, - PhreaticLevelExit = - { - Mean = (RoundedDouble) double.NegativeInfinity, - StandardDeviation = (RoundedDouble) double.PositiveInfinity - }, - DampingFactorExit = - { - Mean = (RoundedDouble) double.PositiveInfinity, - StandardDeviation = (RoundedDouble) double.PositiveInfinity - } - } - } - } - }; - } - private static void AssertCalculationGroup(CalculationGroup expectedCalculationGroup, CalculationGroup actualCalculationGroup) { Assert.AreEqual(expectedCalculationGroup.Children.Count, actualCalculationGroup.Children.Count); Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingEntryPointAndExitPointWithoutSurfaceLine.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingEntryPointAndExitPointWithoutSurfaceLine.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingEntryPointAndExitPointWithoutSurfaceLine.xml (revision 5762f5a734abc237f01cd62257cedd7ba2e9c8e8) @@ -0,0 +1,20 @@ + + + + 1.1 + 2.2 + 3.3 + Ondergrondmodel + Ondergrondschematisatie + + + 4.4 + 5.5 + + + 6.6 + 7.7 + + + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingEntryPointWithoutSurfaceLine.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingEntryPointWithoutSurfaceLine.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingEntryPointWithoutSurfaceLine.xml (revision 5762f5a734abc237f01cd62257cedd7ba2e9c8e8) @@ -0,0 +1,19 @@ + + + + 1.1 + 2.2 + Ondergrondmodel + Ondergrondschematisatie + + + 4.4 + 5.5 + + + 6.6 + 7.7 + + + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingExitPointWithoutSurfaceLine.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingExitPointWithoutSurfaceLine.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingExitPointWithoutSurfaceLine.xml (revision 5762f5a734abc237f01cd62257cedd7ba2e9c8e8) @@ -0,0 +1,19 @@ + + + + 1.1 + 3.3 + Ondergrondmodel + Ondergrondschematisatie + + + 4.4 + 5.5 + + + 6.6 + 7.7 + + + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingInfinityEntryPoint.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingInfinityEntryPoint.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingInfinityEntryPoint.xml (revision 5762f5a734abc237f01cd62257cedd7ba2e9c8e8) @@ -0,0 +1,19 @@ + + + + -INF + Profielschematisatie + -INF + 3 + + + -INF + INF + + + INF + INF + + + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingInfinityExitPoint.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingInfinityExitPoint.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingInfinityExitPoint.xml (revision 5762f5a734abc237f01cd62257cedd7ba2e9c8e8) @@ -0,0 +1,19 @@ + + + + -INF + Profielschematisatie + 0 + INF + + + -INF + INF + + + INF + INF + + + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingNaNs.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingNaNs.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingNaNs.xml (revision 5762f5a734abc237f01cd62257cedd7ba2e9c8e8) @@ -0,0 +1,18 @@ + + + + NaN + NaN + NaN + + + NaN + NaN + + + NaN + NaN + + + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationInvalidEntryExitPoint.xml =================================================================== diff -u -rf0546eef016ca191ca0958e00cfed380f682c80d -r5762f5a734abc237f01cd62257cedd7ba2e9c8e8 --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationInvalidEntryExitPoint.xml (.../validConfigurationInvalidEntryExitPoint.xml) (revision f0546eef016ca191ca0958e00cfed380f682c80d) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationInvalidEntryExitPoint.xml (.../validConfigurationInvalidEntryExitPoint.xml) (revision 5762f5a734abc237f01cd62257cedd7ba2e9c8e8) @@ -1,6 +1,7 @@ + Profielschematisatie 3.3 2.2