Index: Riskeer/Piping/test/Riskeer.Piping.Service.Test/Probabilistic/ProbabilisticPipingCalculationServiceTest.cs =================================================================== diff -u -r6c3c9af3edd2236ac02ffb8638baafd700f58fe7 -r21951df8b4b81023ad97034d7c6427c1a0858ec6 --- Riskeer/Piping/test/Riskeer.Piping.Service.Test/Probabilistic/ProbabilisticPipingCalculationServiceTest.cs (.../ProbabilisticPipingCalculationServiceTest.cs) (revision 6c3c9af3edd2236ac02ffb8638baafd700f58fe7) +++ Riskeer/Piping/test/Riskeer.Piping.Service.Test/Probabilistic/ProbabilisticPipingCalculationServiceTest.cs (.../ProbabilisticPipingCalculationServiceTest.cs) (revision 21951df8b4b81023ad97034d7c6427c1a0858ec6) @@ -61,15 +61,6 @@ private static readonly string validHrdFilePath = Path.Combine(testDataPath, "HRD dutch coast south.sqlite"); private static readonly string validHlcdFilePath = Path.Combine(testDataPath, "Hlcd.sqlite"); - private ProbabilisticPipingCalculation calculation; - - [SetUp] - public void Setup() - { - calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( - new TestHydraulicBoundaryLocation()); - } - #region Validate [Test] @@ -134,6 +125,9 @@ failureMechanism, mocks, validHrdFilePath); mocks.ReplayAll(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + // Call void Call() => ProbabilisticPipingCalculationService.Validate(calculation, failureMechanism, @@ -160,7 +154,7 @@ failureMechanism, mocks); mocks.ReplayAll(); - calculation.InputParameters.HydraulicBoundaryLocation = null; + ProbabilisticPipingCalculation calculation = new ProbabilisticPipingCalculationScenario(); // Call var isValid = false; @@ -193,7 +187,8 @@ failureMechanism, mocks); mocks.ReplayAll(); - calculation.InputParameters.HydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "name", 2, 2); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + new TestHydraulicBoundaryLocation()); // Call var isValid = false; @@ -228,7 +223,8 @@ failureMechanism, mocks, invalidFilePath); mocks.ReplayAll(); - calculation.InputParameters.HydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "name", 2, 2); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); // Call var isValid = true; @@ -263,7 +259,8 @@ failureMechanism, mocks, invalidFilePath); mocks.ReplayAll(); - calculation.InputParameters.HydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "name", 2, 2); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); // Call var isValid = false; @@ -303,7 +300,7 @@ { InputParameters = { - HydraulicBoundaryLocation = new TestHydraulicBoundaryLocation() + HydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryData.GetLocations().First() } }; @@ -338,6 +335,9 @@ failureMechanism, mocks, validHrdFilePath); mocks.ReplayAll(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + var aquitardLayer = new PipingSoilLayer(2.0) { IsAquifer = false @@ -384,6 +384,9 @@ failureMechanism, mocks, validHrdFilePath); mocks.ReplayAll(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + var aquiferLayer = new PipingSoilLayer(10.56) { IsAquifer = true, @@ -438,6 +441,9 @@ failureMechanism, mocks, validHrdFilePath); mocks.ReplayAll(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + var coverageLayerAboveSurfaceLine = new PipingSoilLayer(13.0) { IsAquifer = false @@ -497,6 +503,9 @@ failureMechanism, mocks, validHrdFilePath); mocks.ReplayAll(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + var random = new Random(21); const double belowPhreaticLevelDeviation = 0.5; const int belowPhreaticLevelShift = 10; @@ -582,6 +591,9 @@ failureMechanism, mocks, validHrdFilePath); mocks.ReplayAll(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + var random = new Random(21); var incompletePipingSoilLayer = new PipingSoilLayer(5.0) { @@ -657,6 +669,9 @@ failureMechanism, mocks, validHrdFilePath); mocks.ReplayAll(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + var random = new Random(21); var incompletePipingSoilLayer = new PipingSoilLayer(5.0) { @@ -733,6 +748,9 @@ failureMechanism, mocks, validHrdFilePath); mocks.ReplayAll(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + var random = new Random(21); var incompletePipingSoilLayer = new PipingSoilLayer(GetSurfaceLineTopLevel(calculation)) { @@ -807,6 +825,9 @@ failureMechanism, mocks, validHrdFilePath); mocks.ReplayAll(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + var topCoverageLayer = new PipingSoilLayer(GetSurfaceLineTopLevel(calculation)) { IsAquifer = false, @@ -883,6 +904,9 @@ failureMechanism, mocks, validHrdFilePath); mocks.ReplayAll(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + var coverageLayerInvalidSaturatedVolumicWeight = new PipingSoilLayer(GetSurfaceLineTopLevel(calculation)) { IsAquifer = false, @@ -951,6 +975,9 @@ failureMechanism, mocks, validHrdFilePath); mocks.ReplayAll(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + // Call var isValid = false; @@ -977,13 +1004,16 @@ // Setup PipingFailureMechanism failureMechanism = CreateFailureMechanismWithSections(); - calculation.InputParameters.SurfaceLine.ReferenceLineIntersectionWorldPoint = new Point2D(1.0, 0.0); - var mocks = new MockRepository(); IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub( failureMechanism, mocks, validHrdFilePath); mocks.ReplayAll(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + + calculation.InputParameters.SurfaceLine.ReferenceLineIntersectionWorldPoint = new Point2D(1.0, 0.0); + // Call var isValid = false; @@ -1084,6 +1114,9 @@ IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub( failureMechanism, mocks, validHrdFilePath); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + var profileSpecificCalculator = new TestPipingCalculator(); var sectionSpecificCalculator = new TestPipingCalculator(); var calculatorFactory = mocks.StrictMock(); @@ -1099,7 +1132,7 @@ calculation.InputParameters.HydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryData.GetLocations().First(hbl => hbl.Id == 1300001); - AddSoilProfile(withCoverageLayer); + AddSoilProfile(calculation, withCoverageLayer); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -1131,6 +1164,9 @@ IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub( failureMechanism, mocks, validHrdFilePath); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + var profileSpecificCalculator = new TestPipingCalculator(); var sectionSpecificCalculator = new TestPipingCalculator(); var calculatorFactory = mocks.StrictMock(); @@ -1183,6 +1219,9 @@ IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub( failureMechanism, mocks, validHrdFilePath); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + var calculatorFactory = mocks.StrictMock(); calculatorFactory.Expect(cf => cf.CreatePipingCalculator(null)) .IgnoreArguments() @@ -1235,6 +1274,9 @@ IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub( failureMechanism, mocks, validHrdFilePath); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + var calculatorFactory = mocks.StrictMock(); calculatorFactory.Expect(cf => cf.CreatePipingCalculator(null)) .IgnoreArguments() @@ -1245,7 +1287,7 @@ mocks.ReplayAll(); calculation.InputParameters.HydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryData.GetLocations().First(hbl => hbl.Id == 1300001); - AddSoilProfile(false); + AddSoilProfile(calculation, false); calculation.InputParameters.ShouldProfileSpecificIllustrationPointsBeCalculated = shouldProfileSpecificIllustrationPointsBeCalculated; calculation.InputParameters.ShouldSectionSpecificIllustrationPointsBeCalculated = shouldSectionSpecificIllustrationPointsBeCalculated; @@ -1286,6 +1328,9 @@ IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub( failureMechanism, mocks, validHrdFilePath); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + var profileSpecificCalculator = new TestPipingCalculator { EndInFailure = true @@ -1303,7 +1348,7 @@ mocks.ReplayAll(); calculation.InputParameters.HydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryData.GetLocations().First(hbl => hbl.Id == 1300001); - AddSoilProfile(withCoverageLayer); + AddSoilProfile(calculation, withCoverageLayer); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -1354,6 +1399,9 @@ IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub( failureMechanism, mocks, validHrdFilePath); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + var profileSpecificCalculator = new TestPipingCalculator { EndInFailure = true, @@ -1372,7 +1420,7 @@ mocks.ReplayAll(); calculation.InputParameters.HydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryData.GetLocations().First(hbl => hbl.Id == 1300001); - AddSoilProfile(withCoverageLayer); + AddSoilProfile(calculation, withCoverageLayer); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -1424,6 +1472,9 @@ IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub( failureMechanism, mocks, validHrdFilePath); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + var profileSpecificCalculator = new TestPipingCalculator(); var sectionSpecificCalculator = new TestPipingCalculator { @@ -1442,7 +1493,7 @@ mocks.ReplayAll(); calculation.InputParameters.HydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryData.GetLocations().First(hbl => hbl.Id == 1300001); - AddSoilProfile(withCoverageLayer); + AddSoilProfile(calculation, withCoverageLayer); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -1495,6 +1546,9 @@ IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub( failureMechanism, mocks, validHrdFilePath); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + assessmentSection.HydraulicBoundaryData.GetLocations().First()); + var profileSpecificCalculator = new TestPipingCalculator(); var sectionSpecificCalculator = new TestPipingCalculator { @@ -1514,7 +1568,7 @@ mocks.ReplayAll(); calculation.InputParameters.HydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryData.GetLocations().First(hbl => hbl.Id == 1300001); - AddSoilProfile(withCoverageLayer); + AddSoilProfile(calculation, withCoverageLayer); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -1564,6 +1618,9 @@ // Setup var failureMechanism = new PipingFailureMechanism(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + new TestHydraulicBoundaryLocation()); + const string parserError = "Parser error message"; var mocks = new MockRepository(); var profileSpecificCalculator = new TestPipingCalculator @@ -1588,7 +1645,7 @@ calculation.InputParameters.ShouldProfileSpecificIllustrationPointsBeCalculated = true; calculation.InputParameters.ShouldSectionSpecificIllustrationPointsBeCalculated = true; - AddSoilProfile(withCoverageLayer); + AddSoilProfile(calculation, withCoverageLayer); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -1628,6 +1685,9 @@ // Setup var failureMechanism = new PipingFailureMechanism(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + new TestHydraulicBoundaryLocation()); + const string parserError = "Parser error message"; var mocks = new MockRepository(); var profileSpecificCalculator = new TestPipingCalculator @@ -1652,7 +1712,7 @@ calculation.InputParameters.ShouldProfileSpecificIllustrationPointsBeCalculated = false; calculation.InputParameters.ShouldSectionSpecificIllustrationPointsBeCalculated = false; - AddSoilProfile(withCoverageLayer); + AddSoilProfile(calculation, withCoverageLayer); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -1691,6 +1751,9 @@ // Setup var failureMechanism = new PipingFailureMechanism(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + new TestHydraulicBoundaryLocation()); + const string parserError = "Parser error message"; var mocks = new MockRepository(); var profileSpecificCalculator = new TestPipingCalculator @@ -1715,7 +1778,7 @@ calculation.InputParameters.ShouldProfileSpecificIllustrationPointsBeCalculated = true; calculation.InputParameters.ShouldSectionSpecificIllustrationPointsBeCalculated = true; - AddSoilProfile(withCoverageLayer); + AddSoilProfile(calculation, withCoverageLayer); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -1755,6 +1818,9 @@ // Setup var failureMechanism = new PipingFailureMechanism(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + new TestHydraulicBoundaryLocation()); + const string parserError = "Parser error message"; var mocks = new MockRepository(); var profileSpecificCalculator = new TestPipingCalculator @@ -1779,7 +1845,7 @@ calculation.InputParameters.ShouldProfileSpecificIllustrationPointsBeCalculated = false; calculation.InputParameters.ShouldSectionSpecificIllustrationPointsBeCalculated = false; - AddSoilProfile(withCoverageLayer); + AddSoilProfile(calculation, withCoverageLayer); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -1818,6 +1884,9 @@ // Setup var failureMechanism = new PipingFailureMechanism(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + new TestHydraulicBoundaryLocation()); + var profileSpecificCalculator = new TestPipingCalculator { IllustrationPointsResult = withCoverageLayer @@ -1843,7 +1912,7 @@ calculation.InputParameters.ShouldProfileSpecificIllustrationPointsBeCalculated = true; calculation.InputParameters.ShouldSectionSpecificIllustrationPointsBeCalculated = true; - AddSoilProfile(withCoverageLayer); + AddSoilProfile(calculation, withCoverageLayer); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -1888,6 +1957,9 @@ // Setup var failureMechanism = new PipingFailureMechanism(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + new TestHydraulicBoundaryLocation()); + var profileSpecificCalculator = new TestPipingCalculator { IllustrationPointsResult = GeneralResultTestFactory.CreateGeneralResultWithDuplicateStochasts() @@ -1911,7 +1983,7 @@ calculation.InputParameters.ShouldProfileSpecificIllustrationPointsBeCalculated = true; calculation.InputParameters.ShouldSectionSpecificIllustrationPointsBeCalculated = true; - AddSoilProfile(withCoverageLayer); + AddSoilProfile(calculation, withCoverageLayer); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -1955,6 +2027,9 @@ // Setup var failureMechanism = new PipingFailureMechanism(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + new TestHydraulicBoundaryLocation()); + var profileSpecificCalculator = new TestPipingCalculator { IllustrationPointsResult = new TestGeneralResult() @@ -1980,7 +2055,7 @@ calculation.InputParameters.ShouldProfileSpecificIllustrationPointsBeCalculated = true; calculation.InputParameters.ShouldSectionSpecificIllustrationPointsBeCalculated = true; - AddSoilProfile(withCoverageLayer); + AddSoilProfile(calculation, withCoverageLayer); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -2025,6 +2100,9 @@ // Setup var failureMechanism = new PipingFailureMechanism(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + new TestHydraulicBoundaryLocation()); + var profileSpecificCalculator = new TestPipingCalculator { IllustrationPointsResult = new TestGeneralResult() @@ -2048,7 +2126,7 @@ calculation.InputParameters.ShouldProfileSpecificIllustrationPointsBeCalculated = true; calculation.InputParameters.ShouldSectionSpecificIllustrationPointsBeCalculated = true; - AddSoilProfile(withCoverageLayer); + AddSoilProfile(calculation, withCoverageLayer); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { @@ -2097,6 +2175,9 @@ HydraulicBoundaryLocation hydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryData.GetLocations().First(hbl => hbl.Id == 1300001); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + hydraulicBoundaryLocation); + HydraulicBoundaryCalculationSettings calculationSettings = HydraulicBoundaryCalculationSettingsFactory.CreateSettings( assessmentSection.HydraulicBoundaryData, hydraulicBoundaryLocation); @@ -2129,6 +2210,9 @@ // Setup var failureMechanism = new PipingFailureMechanism(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + new TestHydraulicBoundaryLocation()); + var profileSpecificCalculator = new TestPipingCalculator(); var sectionSpecificCalculator = new TestPipingCalculator(); @@ -2167,6 +2251,9 @@ // Setup var failureMechanism = new PipingFailureMechanism(); + ProbabilisticPipingCalculation calculation = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput( + new TestHydraulicBoundaryLocation()); + var profileSpecificCalculator = new TestPipingCalculator(); var sectionSpecificCalculator = new TestPipingCalculator(); @@ -2204,7 +2291,7 @@ return new HydraulicBoundaryCalculationSettings(validHrdFilePath, validHlcdFilePath, false); } - private void AddSoilProfile(bool withCoverageLayer) + private static void AddSoilProfile(ProbabilisticPipingCalculation calculation, bool withCoverageLayer) { if (!withCoverageLayer) {