public void Create_SoilProfileWithMultiplePreconsolidationStressesOnOneLayer_ReturnsPersistableStates() { // Setup MacroStabilityInwardsCalculationScenario calculation = MacroStabilityInwardsCalculationScenarioTestFactory.CreateMacroStabilityInwardsCalculationScenarioWithValidInput( new TestHydraulicBoundaryLocation()); calculation.InputParameters.StochasticSoilProfile = MacroStabilityInwardsStochasticSoilProfileTestFactory.CreateMacroStabilityInwardsStochasticSoilProfile2D(new[] { MacroStabilityInwardsPreconsolidationStressTestFactory.CreateMacroStabilityInwardsPreconsolidationStress(new Point2D(2, 1)), MacroStabilityInwardsPreconsolidationStressTestFactory.CreateMacroStabilityInwardsPreconsolidationStress(new Point2D(2, 2)) }); IMacroStabilityInwardsSoilProfileUnderSurfaceLine soilProfile = calculation.InputParameters.SoilProfileUnderSurfaceLine; var idFactory = new IdFactory(); var registry = new MacroStabilityInwardsExportRegistry(); PersistableGeometryFactory.Create(soilProfile, idFactory, registry); // Call IEnumerable <PersistableState> states = PersistableStateFactory.Create(soilProfile, idFactory, registry); // Assert Assert.AreEqual(1, states.Count()); PersistableState state = states.First(); Assert.IsNotNull(state.Id); CollectionAssert.IsEmpty(state.StateLines); CollectionAssert.IsEmpty(state.StatePoints); }
public void Create_WithValidData_ReturnsPersistableStates() { // Setup MacroStabilityInwardsCalculationScenario calculation = MacroStabilityInwardsCalculationScenarioTestFactory.CreateMacroStabilityInwardsCalculationScenarioWithValidInput(new TestHydraulicBoundaryLocation()); MacroStabilityInwardsStochasticSoilProfile stochasticSoilProfile = MacroStabilityInwardsStochasticSoilProfileTestFactory.CreateMacroStabilityInwardsStochasticSoilProfile2D(new[] { MacroStabilityInwardsPreconsolidationStressTestFactory.CreateMacroStabilityInwardsPreconsolidationStress(new Point2D(2, 1)) }); IMacroStabilityInwardsSoilLayer lastLayer = stochasticSoilProfile.SoilProfile.Layers.Last(); lastLayer.Data.UsePop = true; lastLayer.Data.Pop = new VariationCoefficientLogNormalDistribution { Mean = (RoundedDouble)1, CoefficientOfVariation = (RoundedDouble)2 }; calculation.InputParameters.StochasticSoilProfile = stochasticSoilProfile; IMacroStabilityInwardsSoilProfileUnderSurfaceLine soilProfile = calculation.InputParameters.SoilProfileUnderSurfaceLine; var idFactory = new IdFactory(); var registry = new MacroStabilityInwardsExportRegistry(); PersistableGeometryFactory.Create(soilProfile, idFactory, registry); // Call IEnumerable <PersistableState> states = PersistableStateFactory.Create(soilProfile, idFactory, registry); // Assert PersistableDataModelTestHelper.AssertStates(soilProfile, states); PersistableState state = states.First(); Assert.AreEqual(registry.States[MacroStabilityInwardsExportStageType.Daily], state.Id); }
public void Create_WithValidData_ReturnsPersistableWaternetCreatorSettingsCollection() { // Setup MacroStabilityInwardsCalculationScenario calculation = MacroStabilityInwardsCalculationScenarioTestFactory.CreateMacroStabilityInwardsCalculationScenarioWithValidInput( new TestHydraulicBoundaryLocation()); MacroStabilityInwardsInput input = calculation.InputParameters; RoundedDouble normativeAssessmentLevel = RoundedDouble.NaN; var idFactory = new IdFactory(); var registry = new MacroStabilityInwardsExportRegistry(); PersistableGeometryFactory.Create(input.SoilProfileUnderSurfaceLine, idFactory, registry); // Call IEnumerable <PersistableWaternetCreatorSettings> waternetCreatorSettingsCollection = PersistableWaternetCreatorSettingsFactory.Create(input, normativeAssessmentLevel, idFactory, registry); // Assert var stages = new[] { MacroStabilityInwardsExportStageType.Daily, MacroStabilityInwardsExportStageType.Extreme }; PersistableDataModelTestHelper.AssertWaternetCreatorSettings(input, waternetCreatorSettingsCollection, normativeAssessmentLevel, stages); AssertRegistry(registry, stages, waternetCreatorSettingsCollection); }
public void Create_SoilProfileNull_ThrowsArgumentNullException() { // Call void Call() => PersistableGeometryFactory.Create(null, new IdFactory(), new MacroStabilityInwardsExportRegistry()); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("soilProfile", exception.ParamName); }
public void Create_RegistryNull_ThrowsArgumentNullException() { // Setup var mocks = new MockRepository(); var soilProfile = mocks.Stub <IMacroStabilityInwardsSoilProfileUnderSurfaceLine>(); mocks.ReplayAll(); // Call void Call() => PersistableGeometryFactory.Create(soilProfile, new IdFactory(), null); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("registry", exception.ParamName); mocks.VerifyAll(); }
public void Create_WithValidData_ReturnsNull() { // Setup var soilProfile = new MacroStabilityInwardsSoilProfileUnderSurfaceLine(new[] { MacroStabilityInwardsSoilLayer2DTestFactory.CreateMacroStabilityInwardsSoilLayer2D(new[] { MacroStabilityInwardsSoilLayer2DTestFactory.CreateMacroStabilityInwardsSoilLayer2D() }) }, Enumerable.Empty <IMacroStabilityInwardsPreconsolidationStress>()); var registry = new MacroStabilityInwardsExportRegistry(); // Call IEnumerable <PersistableGeometry> geometries = PersistableGeometryFactory.Create(soilProfile, new IdFactory(), registry); // Assert IEnumerable <MacroStabilityInwardsSoilLayer2D> layersRecursively = MacroStabilityInwardsSoilProfile2DLayersHelper.GetLayersRecursively(soilProfile.Layers); PersistableDataModelTestHelper.AssertPersistableGeometry(layersRecursively, geometries); AssertRegistry(registry, geometries, layersRecursively); }
public void Create_WithValidData_ReturnsPersistableSoilLayerCollectionCollection() { // Setup var soilProfile = new MacroStabilityInwardsSoilProfileUnderSurfaceLine( new[] { MacroStabilityInwardsSoilLayer2DTestFactory.CreateMacroStabilityInwardsSoilLayer2D(new[] { MacroStabilityInwardsSoilLayer2DTestFactory.CreateMacroStabilityInwardsSoilLayer2D() }) }, Enumerable.Empty <IMacroStabilityInwardsPreconsolidationStress>()); var idFactory = new IdFactory(); var registry = new MacroStabilityInwardsExportRegistry(); PersistableSoilCollection soils = PersistableSoilCollectionFactory.Create(soilProfile, idFactory, registry); IEnumerable <PersistableGeometry> geometries = PersistableGeometryFactory.Create(soilProfile, idFactory, registry); // Call IEnumerable <PersistableSoilLayerCollection> soilLayerCollections = PersistableSoilLayerCollectionFactory.Create(soilProfile, idFactory, registry); // Assert PersistableDataModelTestHelper.AssertPersistableSoilLayers(soilProfile.Layers, soilLayerCollections, soils.Soils, geometries); var stages = new[] { MacroStabilityInwardsExportStageType.Daily, MacroStabilityInwardsExportStageType.Extreme }; Assert.AreEqual(2, registry.SoilLayers.Count); for (var i = 0; i < stages.Length; i++) { Assert.AreEqual(registry.SoilLayers[stages[i]], soilLayerCollections.ElementAt(i).Id); } }
public void Create_SoilProfileWithPOPAndPreconsolidationStressOnOneLayer_ReturnsPersistableStates() { // Setup MacroStabilityInwardsCalculationScenario calculation = MacroStabilityInwardsCalculationScenarioTestFactory.CreateMacroStabilityInwardsCalculationScenarioWithValidInput(new TestHydraulicBoundaryLocation()); MacroStabilityInwardsStochasticSoilProfile stochasticSoilProfile = MacroStabilityInwardsStochasticSoilProfileTestFactory.CreateMacroStabilityInwardsStochasticSoilProfile2D(new[] { MacroStabilityInwardsPreconsolidationStressTestFactory.CreateMacroStabilityInwardsPreconsolidationStress(new Point2D(2, 1)) }); IMacroStabilityInwardsSoilLayer firstLayer = stochasticSoilProfile.SoilProfile.Layers.First(); firstLayer.Data.UsePop = true; firstLayer.Data.Pop = new VariationCoefficientLogNormalDistribution { Mean = (RoundedDouble)1, CoefficientOfVariation = (RoundedDouble)2 }; calculation.InputParameters.StochasticSoilProfile = stochasticSoilProfile; IMacroStabilityInwardsSoilProfileUnderSurfaceLine soilProfile = calculation.InputParameters.SoilProfileUnderSurfaceLine; var idFactory = new IdFactory(); var registry = new MacroStabilityInwardsExportRegistry(); PersistableGeometryFactory.Create(soilProfile, idFactory, registry); // Call IEnumerable <PersistableState> states = PersistableStateFactory.Create(soilProfile, idFactory, registry); // Assert Assert.AreEqual(1, states.Count()); PersistableState state = states.First(); Assert.IsNotNull(state.Id); CollectionAssert.IsEmpty(state.StateLines); CollectionAssert.IsEmpty(state.StatePoints); }
public void Create_WithDifferentCharacteristics_ReturnsPersistableWaternetCreatorSettingsCollection([Values(true, false)] bool isDitchPresent, [Values(true, false)] bool isShouldBaseInsidePresent) { // Setup MacroStabilityInwardsCalculationScenario calculation = MacroStabilityInwardsCalculationScenarioTestFactory.CreateMacroStabilityInwardsCalculationScenarioWithValidInput( new TestHydraulicBoundaryLocation()); MacroStabilityInwardsInput input = calculation.InputParameters; if (isDitchPresent) { input.SurfaceLine.SetDitchPolderSideAt(new Point3D(0.1, 0, 2)); input.SurfaceLine.SetBottomDitchPolderSideAt(new Point3D(0.2, 0, 2)); input.SurfaceLine.SetBottomDitchDikeSideAt(new Point3D(0.3, 0, 3)); input.SurfaceLine.SetDitchDikeSideAt(new Point3D(0.4, 0, 3)); } if (isShouldBaseInsidePresent) { input.SurfaceLine.SetShoulderBaseInsideAt(new Point3D(0.5, 0, 1)); } var idFactory = new IdFactory(); var registry = new MacroStabilityInwardsExportRegistry(); PersistableGeometryFactory.Create(input.SoilProfileUnderSurfaceLine, idFactory, registry); // Call IEnumerable <PersistableWaternetCreatorSettings> waternetCreatorSettingsCollection = PersistableWaternetCreatorSettingsFactory.Create( input, RoundedDouble.NaN, idFactory, registry); // Assert foreach (PersistableWaternetCreatorSettings waternetCreatorSettings in waternetCreatorSettingsCollection) { Assert.AreEqual(isDitchPresent, waternetCreatorSettings.IsDitchPresent); PersistableDataModelTestHelper.AssertDitchCharacteristics(input.SurfaceLine, waternetCreatorSettings.DitchCharacteristics, isDitchPresent); PersistableDataModelTestHelper.AssertEmbankmentCharacteristics(input.SurfaceLine, waternetCreatorSettings.EmbankmentCharacteristics); } }
public void Create_WithDifferentDikeSoilScenarios_ReturnsPersistableWaternetCreatorSettingsCollection(MacroStabilityInwardsDikeSoilScenario soilScenario) { // Setup MacroStabilityInwardsCalculationScenario calculation = MacroStabilityInwardsCalculationScenarioTestFactory.CreateMacroStabilityInwardsCalculationScenarioWithValidInput( new TestHydraulicBoundaryLocation()); MacroStabilityInwardsInput input = calculation.InputParameters; input.DikeSoilScenario = soilScenario; var idFactory = new IdFactory(); var registry = new MacroStabilityInwardsExportRegistry(); PersistableGeometryFactory.Create(input.SoilProfileUnderSurfaceLine, idFactory, registry); // Call IEnumerable <PersistableWaternetCreatorSettings> waternetCreatorSettingsCollection = PersistableWaternetCreatorSettingsFactory.Create( input, RoundedDouble.NaN, idFactory, registry); // Assert foreach (PersistableWaternetCreatorSettings waternetCreatorSettings in waternetCreatorSettingsCollection) { Assert.AreEqual(PersistableDataModelTestHelper.GetEmbankmentSoilScenario(input.DikeSoilScenario), waternetCreatorSettings.EmbankmentSoilScenario); } }