Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Importers/PipingCalculationConfigurationImporter.cs =================================================================== diff -u --- Ringtoets/Piping/src/Ringtoets.Piping.IO/Importers/PipingCalculationConfigurationImporter.cs (revision 0) +++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Importers/PipingCalculationConfigurationImporter.cs (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -0,0 +1,324 @@ +// Copyright (C) Stichting Deltares 2016. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Linq; +using Core.Common.Base.Data; +using Ringtoets.Common.Data.Calculation; +using Ringtoets.Common.Data.Hydraulics; +using Ringtoets.Common.Data.Probabilistics; +using Ringtoets.Common.IO.Exceptions; +using Ringtoets.Common.IO.FileImporters; +using Ringtoets.Piping.Data; +using Ringtoets.Piping.IO.Properties; +using Ringtoets.Piping.IO.Readers; +using Ringtoets.Piping.IO.Schema; +using Ringtoets.Piping.Primitives; + +namespace Ringtoets.Piping.IO.Importers +{ + /// + /// Imports a piping configuration from an XML file and stores it on a + /// . + /// + public class PipingCalculationConfigurationImporter : CalculationConfigurationImporter + { + private readonly IEnumerable hydraulicBoundaryLocations; + private readonly PipingFailureMechanism failureMechanism; + + /// + /// Creates a new instance of . + /// + /// The path to the XML file to import from. + /// The calculation group to update. + /// The hydraulic boundary locations + /// used to check if the imported objects contain the right location. + /// The piping failure mechanism used to check + /// if the imported objects contain the right data. + /// Thrown when any parameter is + /// null. + public PipingCalculationConfigurationImporter(string xmlFilePath, + CalculationGroup importTarget, + IEnumerable hydraulicBoundaryLocations, + PipingFailureMechanism failureMechanism) + : base(xmlFilePath, importTarget) + { + if (hydraulicBoundaryLocations == null) + { + throw new ArgumentNullException(nameof(hydraulicBoundaryLocations)); + } + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + this.hydraulicBoundaryLocations = hydraulicBoundaryLocations; + this.failureMechanism = failureMechanism; + } + + protected override PipingCalculationConfigurationReader CreateConfigurationReader(string xmlFilePath) + { + return new PipingCalculationConfigurationReader(xmlFilePath); + } + + protected override ICalculationBase ParseReadCalculation(ReadPipingCalculation readCalculation) + { + var pipingCalculation = new PipingCalculationScenario(new GeneralPipingInput()) + { + Name = readCalculation.Name + }; + + ReadHydraulicBoundaryData(readCalculation, pipingCalculation); + ReadSurfaceLine(readCalculation, pipingCalculation); + ReadEntryExitPoint(readCalculation, pipingCalculation); + ReadStochasticSoilModel(readCalculation, pipingCalculation); + ReadStochasticSoilProfile(readCalculation, pipingCalculation); + ReadStochasts(readCalculation, pipingCalculation); + + return pipingCalculation; + } + + /// + /// Reads the hydraulic boundary location or the assessment level that is manually set. + /// + /// The calculation read from the imported file. + /// The calculation to configure. + /// Thrown when the + /// has a set which is not available in . + private void ReadHydraulicBoundaryData(ReadPipingCalculation readCalculation, PipingCalculationScenario pipingCalculation) + { + if (readCalculation.HydraulicBoundaryLocation != null) + { + HydraulicBoundaryLocation location = hydraulicBoundaryLocations + .FirstOrDefault(l => l.Name == readCalculation.HydraulicBoundaryLocation); + + if (location == null) + { + throw new CriticalFileValidationException(string.Format(Resources.PipingConfigurationImporter_ReadHydraulicBoundaryLocation_Hydraulic_boundary_location_0_does_not_exist, + readCalculation.HydraulicBoundaryLocation)); + } + + pipingCalculation.InputParameters.HydraulicBoundaryLocation = location; + } + else if (readCalculation.AssessmentLevel.HasValue) + { + pipingCalculation.InputParameters.UseAssessmentLevelManualInput = true; + pipingCalculation.InputParameters.AssessmentLevel = (RoundedDouble) readCalculation.AssessmentLevel; + } + } + + /// + /// Reads the surface line. + /// + /// The calculation read from the imported file. + /// The calculation to configure. + /// Thrown when the + /// has a set which is not available in the failure mechanism. + private void ReadSurfaceLine(ReadPipingCalculation readCalculation, PipingCalculationScenario pipingCalculation) + { + if (readCalculation.SurfaceLine != null) + { + RingtoetsPipingSurfaceLine surfaceLine = failureMechanism.SurfaceLines + .FirstOrDefault(sl => sl.Name == readCalculation.SurfaceLine); + + if (surfaceLine == null) + { + throw new CriticalFileValidationException(string.Format(Resources.PipingConfigurationImporter_ReadSurfaceLine_SurfaceLine_0_does_not_exist, + readCalculation.SurfaceLine)); + } + + pipingCalculation.InputParameters.SurfaceLine = surfaceLine; + } + } + + /// + /// Reads the entry point and exit point. + /// + /// The calculation read from the imported file. + /// The calculation to configure. + /// Thrown when the entry point or exit point is invalid. + private static void ReadEntryExitPoint(ReadPipingCalculation readCalculation, PipingCalculationScenario pipingCalculation) + { + 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 (hasExitPoint) + { + var exitPoint = (double) readCalculation.ExitPointL; + + PerformActionHandlingAnyArgumentOutOfRangeException( + () => pipingCalculation.InputParameters.ExitPointL = (RoundedDouble) exitPoint, + string.Format(Resources.PipingConfigurationImporter_ReadEntryExitPoint_Exit_point_invalid, exitPoint)); + } + } + + /// + /// Reads the stochastic soil model. + /// + /// The calculation read from the imported file. + /// The calculation to configure. + /// Thrown when + /// + /// the has a set + /// which is not available in the failure mechanism. + /// The does not intersect with the + /// when this is set. + /// + /// + private void ReadStochasticSoilModel(ReadPipingCalculation readCalculation, PipingCalculationScenario pipingCalculation) + { + if (readCalculation.StochasticSoilModel != null) + { + StochasticSoilModel soilModel = failureMechanism.StochasticSoilModels + .FirstOrDefault(ssm => ssm.Name == readCalculation.StochasticSoilModel); + + if (soilModel == null) + { + throw new CriticalFileValidationException(string.Format(Resources.PipingConfigurationImporter_ReadStochasticSoilModel_Stochastische_soil_model_0_does_not_exist, + readCalculation.StochasticSoilModel)); + } + + if (pipingCalculation.InputParameters.SurfaceLine != null + && !soilModel.IntersectsWithSurfaceLineGeometry(pipingCalculation.InputParameters.SurfaceLine)) + { + throw new CriticalFileValidationException(string.Format(Resources.PipingConfigurationImporter_ReadStochasticSoilModel_Stochastische_soil_model_0_does_not_intersect_with_surfaceLine_1, + readCalculation.StochasticSoilModel, + readCalculation.SurfaceLine)); + } + + pipingCalculation.InputParameters.StochasticSoilModel = soilModel; + } + } + + /// + /// Reads the stochastic soil profile. + /// + /// The calculation read from the imported file. + /// The calculation to configure. + /// Thrown when the has: + /// + /// a set but no is specified; + /// a set which is not available in the . + /// + /// + private static void ReadStochasticSoilProfile(ReadPipingCalculation readCalculation, PipingCalculationScenario pipingCalculation) + { + if (readCalculation.StochasticSoilProfile != null) + { + if (pipingCalculation.InputParameters.StochasticSoilModel == null) + { + throw new CriticalFileValidationException(string.Format(Resources.PipingConfigurationImporter_ReadStochasticSoilProfile_No_soil_model_provided_for_soil_profile_with_name_0, + readCalculation.StochasticSoilProfile)); + } + + StochasticSoilProfile soilProfile = pipingCalculation.InputParameters.StochasticSoilModel.StochasticSoilProfiles + .FirstOrDefault(ssp => ssp.SoilProfile.Name == readCalculation.StochasticSoilProfile); + + if (soilProfile == null) + { + throw new CriticalFileValidationException(string.Format(Resources.PipingConfigurationImporter_ReadStochasticSoilProfile_Stochastic_soil_profile_0_does_not_exist_within_soil_model_1, + readCalculation.StochasticSoilProfile, readCalculation.StochasticSoilModel)); + } + + pipingCalculation.InputParameters.StochasticSoilProfile = soilProfile; + } + } + + /// + /// Reads the stochasts. + /// + /// The calculation read from the imported file. + /// The calculation to configure. + /// Thrown when a stochast value (mean or standard deviation) is invalid. + private static void ReadStochasts(ReadPipingCalculation readCalculation, PipingCalculationScenario pipingCalculation) + { + if (readCalculation.PhreaticLevelExitMean.HasValue && readCalculation.PhreaticLevelExitStandardDeviation.HasValue) + { + var normalDistribution = new NormalDistribution(); + + var mean = (double) readCalculation.PhreaticLevelExitMean; + PerformActionHandlingAnyArgumentOutOfRangeException( + () => normalDistribution.Mean = (RoundedDouble) mean, + string.Format(Resources.PipingConfigurationImporter_ReadStochasts_Invalid_mean_0_for_stochast_with_name_1, mean, + PipingConfigurationSchemaIdentifiers.PhreaticLevelExitStochastName)); + + var standardDeviation = (double) readCalculation.PhreaticLevelExitStandardDeviation; + PerformActionHandlingAnyArgumentOutOfRangeException( + () => normalDistribution.StandardDeviation = (RoundedDouble) standardDeviation, + string.Format(Resources.PipingConfigurationImporter_ReadStochasts_Invalid_standard_deviation_0_for_stochast_with_name_1, standardDeviation, + PipingConfigurationSchemaIdentifiers.PhreaticLevelExitStochastName)); + + pipingCalculation.InputParameters.PhreaticLevelExit = normalDistribution; + } + + if (readCalculation.DampingFactorExitMean.HasValue && readCalculation.DampingFactorExitStandardDeviation.HasValue) + { + var logNormalDistribution = new LogNormalDistribution(); + + var mean = (double) readCalculation.DampingFactorExitMean; + PerformActionHandlingAnyArgumentOutOfRangeException( + () => logNormalDistribution.Mean = (RoundedDouble) mean, + string.Format(Resources.PipingConfigurationImporter_ReadStochasts_Invalid_mean_0_for_stochast_with_name_1, mean, + PipingConfigurationSchemaIdentifiers.DampingFactorExitStochastName)); + + var standardDeviation = (double) readCalculation.DampingFactorExitStandardDeviation; + PerformActionHandlingAnyArgumentOutOfRangeException( + () => logNormalDistribution.StandardDeviation = (RoundedDouble) standardDeviation, + string.Format(Resources.PipingConfigurationImporter_ReadStochasts_Invalid_standard_deviation_0_for_stochast_with_name_1, standardDeviation, + PipingConfigurationSchemaIdentifiers.DampingFactorExitStochastName)); + + pipingCalculation.InputParameters.DampingFactorExit = logNormalDistribution; + } + } + + /// + /// Performs the provided and handles any thrown . + /// + /// The action to perform. + /// The error message to provide when rethrowing any thrown . + /// Thrown when throws an . + private static void PerformActionHandlingAnyArgumentOutOfRangeException(Action action, string errorMessage) + { + try + { + action(); + } + catch (ArgumentOutOfRangeException e) + { + throw new CriticalFileValidationException($"{errorMessage} {e.Message}"); + } + } + } +} \ No newline at end of file Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/src/Ringtoets.Piping.IO/Importers/PipingConfigurationImporter.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Ringtoets.Piping.IO.csproj =================================================================== diff -u -rf9f7e585da06fc8ab1b8ab92ce4dd64bd66d8f04 -r5e2bd16d7268e107ea6d4a1070778a0323044748 --- Ringtoets/Piping/src/Ringtoets.Piping.IO/Ringtoets.Piping.IO.csproj (.../Ringtoets.Piping.IO.csproj) (revision f9f7e585da06fc8ab1b8ab92ce4dd64bd66d8f04) +++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Ringtoets.Piping.IO.csproj (.../Ringtoets.Piping.IO.csproj) (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -56,7 +56,7 @@ - + Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs =================================================================== diff -u -rf9f7e585da06fc8ab1b8ab92ce4dd64bd66d8f04 -r5e2bd16d7268e107ea6d4a1070778a0323044748 --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision f9f7e585da06fc8ab1b8ab92ce4dd64bd66d8f04) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -128,7 +128,7 @@ Image = RingtoetsCommonFormsResources.GeneralFolderIcon, FileFilterGenerator = PipingConfigurationFileFilter, IsEnabled = PipingConfigurationImporterEnabled, - CreateFileImporter = (context, filePath) => new PipingConfigurationImporter(filePath, + CreateFileImporter = (context, filePath) => new PipingCalculationConfigurationImporter(filePath, context.WrappedData, context.AvailableHydraulicBoundaryLocations, context.FailureMechanism) Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Importers/PipingCalculationConfigurationImporterTest.cs =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Importers/PipingCalculationConfigurationImporterTest.cs (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Importers/PipingCalculationConfigurationImporterTest.cs (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -0,0 +1,481 @@ +// Copyright (C) Stichting Deltares 2016. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.IO; +using System.Linq; +using Core.Common.Base.Data; +using Core.Common.Base.Geometry; +using Core.Common.TestUtil; +using NUnit.Framework; +using Ringtoets.Common.Data.Calculation; +using Ringtoets.Common.Data.Hydraulics; +using Ringtoets.Common.IO.FileImporters; +using Ringtoets.Piping.Data; +using Ringtoets.Piping.IO.Importers; +using Ringtoets.Piping.IO.Readers; +using Ringtoets.Piping.Primitives; + +namespace Ringtoets.Piping.IO.Test.Importers +{ + [TestFixture] + public class PipingCalculationConfigurationImporterTest + { + private readonly string readerPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Piping.IO, "PipingCalculationConfigurationReader"); + private readonly string importerPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Piping.IO, "PipingCalculationConfigurationImporter"); + + [Test] + public void Constructor_ExpectedValues() + { + // Call + var importer = new PipingCalculationConfigurationImporter("", + new CalculationGroup(), + Enumerable.Empty(), + new PipingFailureMechanism()); + + // Assert + Assert.IsInstanceOf>(importer); + } + + [Test] + public void Constructor_HydraulicBoundaryLocationsNull_ThrowArgumentNullException() + { + // Call + TestDelegate test = () => new PipingCalculationConfigurationImporter("", + new CalculationGroup(), + null, + new PipingFailureMechanism()); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("hydraulicBoundaryLocations", exception.ParamName); + } + + [Test] + public void Constructor_FailureMechanismNull_ThrowArgumentNullException() + { + // Call + TestDelegate test = () => new PipingCalculationConfigurationImporter("", + new CalculationGroup(), + Enumerable.Empty(), + null); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("failureMechanism", exception.ParamName); + } + + [Test] + [SetCulture("nl-NL")] + [TestCase("validConfigurationInvalidEntryExitPoint.xml", + "Een waarde van '2,2' als uittredepunt is ongeldig. Het uittredepunt moet landwaarts van het intredepunt liggen.")] + [TestCase("validConfigurationExitPointNotOnSurfaceLine.xml", + "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", + "Een gemiddelde van '-1' is ongeldig voor stochast 'dempingsfactor'. Gemiddelde moet groter zijn dan 0.")] + [TestCase("validConfigurationInvalidStandardDeviationDampingFactorExit.xml", + "Een standaardafwijking van '-1' is ongeldig voor stochast 'dempingsfactor'. Standaardafwijking (σ) moet groter zijn dan of gelijk zijn aan 0.")] + public void Import_ValidConfigurationInvalidData_LogMessageAndContinueImport(string file, string expectedErrorMessage) + { + // Setup + string filePath = Path.Combine(importerPath, file); + + var calculationGroup = new CalculationGroup(); + var surfaceLine = new RingtoetsPipingSurfaceLine + { + Name = "Profielschematisatie" + }; + surfaceLine.SetGeometry(new[] + { + new Point3D(3.0, 5.0, 0.0), + new Point3D(3.0, 0.0, 1.0), + new Point3D(3.0, -5.0, 0.0) + }); + + var pipingFailureMechanism = new PipingFailureMechanism(); + pipingFailureMechanism.SurfaceLines.AddRange(new[] + { + surfaceLine + }, "readerPath"); + + var importer = new PipingCalculationConfigurationImporter(filePath, + calculationGroup, + new HydraulicBoundaryLocation[0], + pipingFailureMechanism); + + // Call + var successful = false; + Action call = () => successful = importer.Import(); + + // Assert + string expectedMessage = $"{expectedErrorMessage} Berekening 'Calculation' is overgeslagen."; + TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1); + Assert.IsTrue(successful); + CollectionAssert.IsEmpty(calculationGroup.Children); + } + + [Test] + public void Import_HydraulicBoundaryLocationUnknown_LogMessageAndContinueImport() + { + // Setup + string filePath = Path.Combine(importerPath, "validConfigurationCalculationContainingUnknownHydraulicBoundaryLocation.xml"); + + var calculationGroup = new CalculationGroup(); + var importer = new PipingCalculationConfigurationImporter(filePath, + calculationGroup, + Enumerable.Empty(), + new PipingFailureMechanism()); + + // Call + var successful = false; + Action call = () => successful = importer.Import(); + + // Assert + const string expectedMessage = "De locatie met hydraulische randvoorwaarden 'HRlocatie' bestaat niet. Berekening 'Calculation' is overgeslagen."; + TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1); + Assert.IsTrue(successful); + CollectionAssert.IsEmpty(calculationGroup.Children); + } + + [Test] + public void Import_SurfaceLineUnknown_LogMessageAndContinueImport() + { + // Setup + string filePath = Path.Combine(importerPath, "validConfigurationCalculationContainingUnknownSurfaceLine.xml"); + + var calculationGroup = new CalculationGroup(); + var importer = new PipingCalculationConfigurationImporter(filePath, + calculationGroup, + new HydraulicBoundaryLocation[0], + new PipingFailureMechanism()); + + // Call + var successful = false; + Action call = () => successful = importer.Import(); + + // Assert + const string expectedMessage = "De profielschematisatie 'Profielschematisatie' bestaat niet. Berekening 'Calculation' is overgeslagen."; + TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1); + Assert.IsTrue(successful); + CollectionAssert.IsEmpty(calculationGroup.Children); + } + + [Test] + public void Import_StochasticSoilModelUnknown_LogMessageAndContinueImport() + { + // Setup + string filePath = Path.Combine(importerPath, "validConfigurationCalculationContainingUnknownSoilModel.xml"); + + var calculationGroup = new CalculationGroup(); + var pipingFailureMechanism = new PipingFailureMechanism(); + var importer = new PipingCalculationConfigurationImporter(filePath, + calculationGroup, + new HydraulicBoundaryLocation[0], + pipingFailureMechanism); + + // Call + var successful = false; + Action call = () => successful = importer.Import(); + + // Assert + const string expectedMessage = "Het stochastische ondergrondmodel 'Ondergrondmodel' bestaat niet. Berekening 'Calculation' is overgeslagen."; + TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1); + Assert.IsTrue(successful); + CollectionAssert.IsEmpty(calculationGroup.Children); + } + + [Test] + public void Import_StochasticSoilModelNotIntersectingWithSurfaceLine_LogMessageAndContinueImport() + { + // Setup + string filePath = Path.Combine(importerPath, "validConfigurationCalculationContainingNonIntersectingSurfaceLineAndSoilModel.xml"); + + var calculationGroup = new CalculationGroup(); + var surfaceLine = new RingtoetsPipingSurfaceLine + { + Name = "Profielschematisatie" + }; + surfaceLine.SetGeometry(new[] + { + new Point3D(0.0, 1.0, 0.0), + new Point3D(2.5, 1.0, 1.0), + new Point3D(5.0, 1.0, 0.0) + }); + var stochasticSoilModel = new StochasticSoilModel(1, "Ondergrondmodel", "Segment"); + stochasticSoilModel.Geometry.AddRange(new[] + { + new Point2D(1.0, 0.0), + new Point2D(5.0, 0.0) + }); + + var pipingFailureMechanism = new PipingFailureMechanism(); + pipingFailureMechanism.SurfaceLines.AddRange(new[] + { + surfaceLine + }, "readerPath"); + pipingFailureMechanism.StochasticSoilModels.AddRange(new[] + { + stochasticSoilModel + }, "readerPath"); + + var importer = new PipingCalculationConfigurationImporter(filePath, + calculationGroup, + new HydraulicBoundaryLocation[0], + pipingFailureMechanism); + + // Call + var successful = false; + Action call = () => successful = importer.Import(); + + // Assert + const string expectedMessage = "Het stochastische ondergrondmodel 'Ondergrondmodel'doorkruist de profielschematisatie 'Profielschematisatie' niet. Berekening 'Calculation' is overgeslagen."; + TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1); + Assert.IsTrue(successful); + CollectionAssert.IsEmpty(calculationGroup.Children); + } + + [Test] + public void Import_StochasticSoilProfileUnknown_LogMessageAndContinueImport() + { + // Setup + string filePath = Path.Combine(importerPath, "validConfigurationCalculationContainingUnknownSoilProfile.xml"); + + var calculationGroup = new CalculationGroup(); + var surfaceLine = new RingtoetsPipingSurfaceLine + { + Name = "Profielschematisatie" + }; + surfaceLine.SetGeometry(new[] + { + new Point3D(3.0, 5.0, 0.0), + new Point3D(3.0, 0.0, 1.0), + new Point3D(3.0, -5.0, 0.0) + }); + var stochasticSoilModel = new StochasticSoilModel(1, "Ondergrondmodel", "Segment"); + stochasticSoilModel.Geometry.AddRange(new[] + { + new Point2D(1.0, 0.0), + new Point2D(5.0, 0.0) + }); + + var pipingFailureMechanism = new PipingFailureMechanism(); + pipingFailureMechanism.SurfaceLines.AddRange(new[] + { + surfaceLine + }, "readerPath"); + pipingFailureMechanism.StochasticSoilModels.AddRange(new[] + { + stochasticSoilModel + }, "readerPath"); + + var importer = new PipingCalculationConfigurationImporter(filePath, + calculationGroup, + new HydraulicBoundaryLocation[0], + pipingFailureMechanism); + + // Call + var successful = false; + Action call = () => successful = importer.Import(); + + // Assert + const string expectedMessage = "De ondergrondschematisatie 'Ondergrondschematisatie' bestaat niet binnen het stochastische ondergrondmodel 'Ondergrondmodel'. Berekening 'Calculation' is overgeslagen."; + TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1); + Assert.IsTrue(successful); + CollectionAssert.IsEmpty(calculationGroup.Children); + } + + [Test] + public void Import_StochasticSoilProfileSpecifiedWithoutSoilModel_LogMessageAndContinueImport() + { + // Setup + string filePath = Path.Combine(importerPath, "validConfigurationCalculationContainingSoilProfileWithoutSoilModel.xml"); + + var calculationGroup = new CalculationGroup(); + var pipingFailureMechanism = new PipingFailureMechanism(); + var importer = new PipingCalculationConfigurationImporter(filePath, + calculationGroup, + new HydraulicBoundaryLocation[0], + pipingFailureMechanism); + + // Call + var successful = false; + Action call = () => successful = importer.Import(); + + // Assert + const string expectedMessage = "Er is geen stochastisch ondergrondmodel opgegeven bij ondergrondschematisatie 'Ondergrondschematisatie'. Berekening 'Calculation' is overgeslagen."; + TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1); + Assert.IsTrue(successful); + CollectionAssert.IsEmpty(calculationGroup.Children); + } + + [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 PipingCalculationConfigurationImporter(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) + { + // Setup + string filePath = Path.Combine(readerPath, file); + + var calculationGroup = new CalculationGroup(); + var surfaceLine = new RingtoetsPipingSurfaceLine + { + Name = "Profielschematisatie" + }; + surfaceLine.SetGeometry(new[] + { + new Point3D(3.0, 5.0, 0.0), + new Point3D(3.0, 0.0, 1.0), + new Point3D(3.0, -5.0, 0.0) + }); + var stochasticSoilProfile = new StochasticSoilProfile(0, SoilProfileType.SoilProfile1D, 1) + { + SoilProfile = new PipingSoilProfile("Ondergrondschematisatie", 0, new[] + { + new PipingSoilLayer(0) + }, SoilProfileType.SoilProfile1D, 0) + }; + + var stochasticSoilModel = new StochasticSoilModel(1, "Ondergrondmodel", "Segment"); + stochasticSoilModel.StochasticSoilProfiles.Add(stochasticSoilProfile); + stochasticSoilModel.Geometry.AddRange(new[] + { + new Point2D(1.0, 0.0), + new Point2D(5.0, 0.0) + }); + + var pipingFailureMechanism = new PipingFailureMechanism(); + pipingFailureMechanism.SurfaceLines.AddRange(new[] + { + surfaceLine + }, "readerPath"); + pipingFailureMechanism.StochasticSoilModels.AddRange(new[] + { + stochasticSoilModel + }, "readerPath"); + + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "HRlocatie", 10, 20); + var importer = new PipingCalculationConfigurationImporter(filePath, + calculationGroup, + new[] + { + hydraulicBoundaryLocation + }, + pipingFailureMechanism); + + // Call + bool successful = importer.Import(); + + // Assert + Assert.IsTrue(successful); + + var expectedCalculation = new PipingCalculationScenario(new GeneralPipingInput()) + { + Name = "Calculation", + InputParameters = + { + HydraulicBoundaryLocation = hydraulicBoundaryLocation, + UseAssessmentLevelManualInput = manualAssessmentLevel, + SurfaceLine = surfaceLine, + EntryPointL = (RoundedDouble) 2.2, + ExitPointL = (RoundedDouble) 3.3, + StochasticSoilModel = stochasticSoilModel, + StochasticSoilProfile = stochasticSoilProfile, + PhreaticLevelExit = + { + Mean = (RoundedDouble) 4.4, + StandardDeviation = (RoundedDouble) 5.5 + }, + DampingFactorExit = + { + Mean = (RoundedDouble) 6.6, + StandardDeviation = (RoundedDouble) 7.7 + } + } + }; + if (manualAssessmentLevel) + { + expectedCalculation.InputParameters.AssessmentLevel = (RoundedDouble) 1.1; + } + + Assert.AreEqual(1, calculationGroup.Children.Count); + AssertPipingCalculationScenario(expectedCalculation, (PipingCalculationScenario) calculationGroup.Children[0]); + } + + private static void AssertPipingCalculationScenario(PipingCalculationScenario expectedCalculation, PipingCalculationScenario actualCalculation) + { + Assert.AreEqual(expectedCalculation.Name, actualCalculation.Name); + Assert.AreEqual(expectedCalculation.InputParameters.UseAssessmentLevelManualInput, actualCalculation.InputParameters.UseAssessmentLevelManualInput); + if (expectedCalculation.InputParameters.UseAssessmentLevelManualInput) + { + Assert.AreEqual(expectedCalculation.InputParameters.AssessmentLevel.Value, actualCalculation.InputParameters.AssessmentLevel.Value); + } + else + { + Assert.AreSame(expectedCalculation.InputParameters.HydraulicBoundaryLocation, actualCalculation.InputParameters.HydraulicBoundaryLocation); + } + Assert.AreSame(expectedCalculation.InputParameters.SurfaceLine, actualCalculation.InputParameters.SurfaceLine); + Assert.AreEqual(expectedCalculation.InputParameters.EntryPointL.Value, actualCalculation.InputParameters.EntryPointL.Value); + Assert.AreEqual(expectedCalculation.InputParameters.ExitPointL.Value, actualCalculation.InputParameters.ExitPointL.Value); + Assert.AreSame(expectedCalculation.InputParameters.StochasticSoilModel, actualCalculation.InputParameters.StochasticSoilModel); + Assert.AreSame(expectedCalculation.InputParameters.StochasticSoilProfile, actualCalculation.InputParameters.StochasticSoilProfile); + Assert.AreEqual(expectedCalculation.InputParameters.PhreaticLevelExit.Mean.Value, actualCalculation.InputParameters.PhreaticLevelExit.Mean.Value); + Assert.AreEqual(expectedCalculation.InputParameters.PhreaticLevelExit.StandardDeviation.Value, actualCalculation.InputParameters.PhreaticLevelExit.StandardDeviation.Value); + Assert.AreEqual(expectedCalculation.InputParameters.DampingFactorExit.Mean.Value, actualCalculation.InputParameters.DampingFactorExit.Mean.Value); + Assert.AreEqual(expectedCalculation.InputParameters.DampingFactorExit.StandardDeviation.Value, actualCalculation.InputParameters.DampingFactorExit.StandardDeviation.Value); + } + } +} \ No newline at end of file Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Importers/PipingConfigurationImporterTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Ringtoets.Piping.IO.Test.csproj =================================================================== diff -u -rf9f7e585da06fc8ab1b8ab92ce4dd64bd66d8f04 -r5e2bd16d7268e107ea6d4a1070778a0323044748 --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Ringtoets.Piping.IO.Test.csproj (.../Ringtoets.Piping.IO.Test.csproj) (revision f9f7e585da06fc8ab1b8ab92ce4dd64bd66d8f04) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Ringtoets.Piping.IO.Test.csproj (.../Ringtoets.Piping.IO.Test.csproj) (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -74,7 +74,7 @@ - + Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingEntryPointAndExitPointWithoutSurfaceLine.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingEntryPointAndExitPointWithoutSurfaceLine.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingEntryPointAndExitPointWithoutSurfaceLine.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -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/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingEntryPointWithoutSurfaceLine.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingEntryPointWithoutSurfaceLine.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingEntryPointWithoutSurfaceLine.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -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/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingExitPointWithoutSurfaceLine.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingExitPointWithoutSurfaceLine.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingExitPointWithoutSurfaceLine.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -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/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingInfinityEntryPoint.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingInfinityEntryPoint.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingInfinityEntryPoint.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -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/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingInfinityExitPoint.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingInfinityExitPoint.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingInfinityExitPoint.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -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/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingNaNs.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingNaNs.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingNaNs.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -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/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingNonIntersectingSurfaceLineAndSoilModel.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingNonIntersectingSurfaceLineAndSoilModel.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingNonIntersectingSurfaceLineAndSoilModel.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -0,0 +1,7 @@ + + + + Profielschematisatie + Ondergrondmodel + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingSoilProfileWithoutSoilModel.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingSoilProfileWithoutSoilModel.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingSoilProfileWithoutSoilModel.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -0,0 +1,6 @@ + + + + Ondergrondschematisatie + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingUnknownHydraulicBoundaryLocation.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingUnknownHydraulicBoundaryLocation.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingUnknownHydraulicBoundaryLocation.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -0,0 +1,6 @@ + + + + HRlocatie + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingUnknownSoilModel.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingUnknownSoilModel.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingUnknownSoilModel.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -0,0 +1,6 @@ + + + + Ondergrondmodel + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingUnknownSoilProfile.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingUnknownSoilProfile.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingUnknownSoilProfile.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -0,0 +1,8 @@ + + + + Profielschematisatie + Ondergrondmodel + Ondergrondschematisatie + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingUnknownSurfaceLine.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingUnknownSurfaceLine.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationCalculationContainingUnknownSurfaceLine.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -0,0 +1,6 @@ + + + + Profielschematisatie + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationEntryPointNotOnSurfaceLine.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationEntryPointNotOnSurfaceLine.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationEntryPointNotOnSurfaceLine.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -0,0 +1,8 @@ + + + + Profielschematisatie + -10 + 2.2 + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationExitPointNotOnSurfaceLine.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationExitPointNotOnSurfaceLine.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationExitPointNotOnSurfaceLine.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -0,0 +1,8 @@ + + + + Profielschematisatie + 2.2 + 200.2 + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationInvalidEntryExitPoint.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationInvalidEntryExitPoint.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationInvalidEntryExitPoint.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -0,0 +1,8 @@ + + + + Profielschematisatie + 3.3 + 2.2 + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationInvalidMeanDampingFactorExit.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationInvalidMeanDampingFactorExit.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationInvalidMeanDampingFactorExit.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -0,0 +1,11 @@ + + + + + + -1 + 1 + + + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationInvalidStandardDeviationDampingFactorExit.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationInvalidStandardDeviationDampingFactorExit.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationInvalidStandardDeviationDampingFactorExit.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -0,0 +1,11 @@ + + + + + + 1 + -1 + + + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationInvalidStandardDeviationPhreaticLevelExit.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationInvalidStandardDeviationPhreaticLevelExit.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationInvalidStandardDeviationPhreaticLevelExit.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -0,0 +1,11 @@ + + + + + + 0 + -1 + + + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationNesting.xml =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationNesting.xml (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingCalculationConfigurationImporter/validConfigurationNesting.xml (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingEntryPointAndExitPointWithoutSurfaceLine.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingEntryPointWithoutSurfaceLine.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingExitPointWithoutSurfaceLine.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingInfinityEntryPoint.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingInfinityExitPoint.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingNaNs.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingNonIntersectingSurfaceLineAndSoilModel.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingSoilProfileWithoutSoilModel.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingUnknownHydraulicBoundaryLocation.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingUnknownSoilModel.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingUnknownSoilProfile.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationCalculationContainingUnknownSurfaceLine.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationEntryPointNotOnSurfaceLine.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationExitPointNotOnSurfaceLine.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationInvalidEntryExitPoint.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationInvalidMeanDampingFactorExit.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationInvalidStandardDeviationDampingFactorExit.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationInvalidStandardDeviationPhreaticLevelExit.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5e2bd16d7268e107ea6d4a1070778a0323044748 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationImporter/validConfigurationNesting.xml'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/ImportInfos/PipingCalculationGroupContextImportInfoTest.cs =================================================================== diff -u -rda6c157314d3df1c278d58cc444c7754a79dc656 -r5e2bd16d7268e107ea6d4a1070778a0323044748 --- Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/ImportInfos/PipingCalculationGroupContextImportInfoTest.cs (.../PipingCalculationGroupContextImportInfoTest.cs) (revision da6c157314d3df1c278d58cc444c7754a79dc656) +++ Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/ImportInfos/PipingCalculationGroupContextImportInfoTest.cs (.../PipingCalculationGroupContextImportInfoTest.cs) (revision 5e2bd16d7268e107ea6d4a1070778a0323044748) @@ -231,7 +231,7 @@ IFileImporter importer = importInfo.CreateFileImporter(context, ""); // Assert - Assert.IsInstanceOf(importer); + Assert.IsInstanceOf(importer); mocks.VerifyAll(); } }