public void Create_InputNull_ThrowsArgumentNullException() { // Call void Call() => WaternetCreatorInputCreator.Create(null); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("input", exception.ParamName); }
public void CreateWaternet_ValidData_ReturnMacroStabilityInput() { // Setup WaternetCalculatorInput input = WaternetCalculatorInputTestFactory.CreateValidCalculatorInput(); // Call MacroStabilityInput macroStabilityInput = MacroStabilityInputCreator.CreateWaternet(input); // Assert LayerWithSoil[] layersWithSoil = LayerWithSoilCreator.Create(input.SoilProfile, out IDictionary <SoilLayer, LayerWithSoil> _); CollectionAssert.AreEqual(layersWithSoil.Select(lws => lws.Soil).ToList(), macroStabilityInput.StabilityModel.Soils, new SoilComparer()); KernelInputAssert.AssertSoilProfile(SoilProfileCreator.Create(layersWithSoil), macroStabilityInput.StabilityModel.ConstructionStages.Single().SoilProfile); PreConstructionStage preConstructionStage = macroStabilityInput.PreprocessingInput.PreConstructionStages.Single(); KernelInputAssert.AssertSurfaceLine(SurfaceLineCreator.Create(input.SurfaceLine), preConstructionStage.SurfaceLine); Assert.IsTrue(preConstructionStage.CreateWaternet); KernelInputAssert.AssertWaternetCreatorInput(WaternetCreatorInputCreator.Create(input), preConstructionStage.WaternetCreatorInput); }
public void Create_ValidDikeSoilScenario_ReturnInputWithDikeSoilScenario(MacroStabilityInwardsDikeSoilScenario macroStabilityInwardsDikeSoilScenario, DikeSoilScenario expectedDikeSoilScenario) { // Setup var input = new WaternetCalculatorInput( new WaternetCalculatorInput.ConstructionProperties { DrainageConstruction = new DrainageConstruction(), PhreaticLineOffsets = new PhreaticLineOffsets(), SurfaceLine = new MacroStabilityInwardsSurfaceLine("test"), SoilProfile = new TestSoilProfile(), DikeSoilScenario = macroStabilityInwardsDikeSoilScenario }); // Call WaternetCreatorInput waternetCreatorInput = WaternetCreatorInputCreator.Create(input); // Assert Assert.AreEqual(expectedDikeSoilScenario, waternetCreatorInput.DikeSoilScenario); }
public void Create_InvalidDikeSoilScenario_ThrowInvalidEnumArgumentException() { // Setup var input = new WaternetCalculatorInput( new WaternetCalculatorInput.ConstructionProperties { SurfaceLine = new MacroStabilityInwardsSurfaceLine("test"), SoilProfile = new TestSoilProfile(), PhreaticLineOffsets = new PhreaticLineOffsets(), DrainageConstruction = new DrainageConstruction(), DikeSoilScenario = (MacroStabilityInwardsDikeSoilScenario)99 }); // Call void Call() => WaternetCreatorInputCreator.Create(input); // Assert string message = $"The value of argument 'dikeSoilScenario' ({99}) is invalid for Enum type '{nameof(MacroStabilityInwardsDikeSoilScenario)}'."; TestHelper.AssertThrowsArgumentExceptionAndTestMessage <InvalidEnumArgumentException>(Call, message); }
public void Create_WithInput_ReturnWaternetCreatorInput([Values(true, false)] bool drainageConstructionPresent, [Values(true, false)] bool useDefaultOffsets) { // Setup var random = new Random(21); double assessmentLevel = random.Next(); double waterLevelRiverAverage = random.Next(); double waterLevelPolderExtreme = random.Next(); double minimumLevelPhreaticLineAtDikeTopRiver = random.Next(); double minimumLevelPhreaticLineAtDikeTopPolder = random.Next(); bool adjustPhreaticLine3And4ForUplift = random.NextBoolean(); double leakageLengthOutwardsPhreaticLine3 = random.Next(); double leakageLengthInwardsPhreaticLine3 = random.Next(); double leakageLengthOutwardsPhreaticLine4 = random.Next(); double leakageLengthInwardsPhreaticLine4 = random.Next(); double piezometricHeadPhreaticLine2Outwards = random.Next(); double piezometricHeadPhreaticLine2Inwards = random.Next(); double penetrationLength = random.Next(); double waterVolumetricWeight = random.Next(); DrainageConstruction drainageConstruction = drainageConstructionPresent ? new DrainageConstruction(random.Next(), random.Next()) : new DrainageConstruction(); PhreaticLineOffsets phreaticLineOffsets = useDefaultOffsets ? new PhreaticLineOffsets() : new PhreaticLineOffsets(random.Next(), random.Next(), random.Next(), random.Next()); var input = new WaternetCalculatorInput( new WaternetCalculatorInput.ConstructionProperties { SurfaceLine = new MacroStabilityInwardsSurfaceLine("test"), SoilProfile = new TestSoilProfile(), DikeSoilScenario = MacroStabilityInwardsDikeSoilScenario.SandDikeOnClay, AssessmentLevel = assessmentLevel, WaterLevelRiverAverage = waterLevelRiverAverage, WaterLevelPolder = waterLevelPolderExtreme, DrainageConstruction = drainageConstruction, PhreaticLineOffsets = phreaticLineOffsets, MinimumLevelPhreaticLineAtDikeTopRiver = minimumLevelPhreaticLineAtDikeTopRiver, MinimumLevelPhreaticLineAtDikeTopPolder = minimumLevelPhreaticLineAtDikeTopPolder, AdjustPhreaticLine3And4ForUplift = adjustPhreaticLine3And4ForUplift, LeakageLengthOutwardsPhreaticLine3 = leakageLengthOutwardsPhreaticLine3, LeakageLengthInwardsPhreaticLine3 = leakageLengthInwardsPhreaticLine3, LeakageLengthOutwardsPhreaticLine4 = leakageLengthOutwardsPhreaticLine4, LeakageLengthInwardsPhreaticLine4 = leakageLengthInwardsPhreaticLine4, PiezometricHeadPhreaticLine2Outwards = piezometricHeadPhreaticLine2Outwards, PiezometricHeadPhreaticLine2Inwards = piezometricHeadPhreaticLine2Inwards, PenetrationLength = penetrationLength, WaterVolumetricWeight = waterVolumetricWeight }); // Call WaternetCreatorInput waternetCreatorInput = WaternetCreatorInputCreator.Create(input); // Assert Assert.AreEqual(DikeSoilScenario.SandDikeOnClay, waternetCreatorInput.DikeSoilScenario); Assert.AreEqual(assessmentLevel, waternetCreatorInput.WaterLevelRiver); Assert.AreEqual(assessmentLevel, waternetCreatorInput.HeadInPlLine3); Assert.AreEqual(assessmentLevel, waternetCreatorInput.HeadInPlLine4); Assert.AreEqual(waterLevelRiverAverage, waternetCreatorInput.WaterLevelRiverAverage); Assert.AreEqual(waterLevelPolderExtreme, waternetCreatorInput.WaterLevelPolder); Assert.AreEqual(drainageConstruction.IsPresent, waternetCreatorInput.DrainageConstructionPresent); if (drainageConstructionPresent) { Assert.AreEqual(drainageConstruction.XCoordinate, waternetCreatorInput.DrainageConstruction.X); Assert.AreEqual(drainageConstruction.ZCoordinate, waternetCreatorInput.DrainageConstruction.Z); } Assert.AreEqual(minimumLevelPhreaticLineAtDikeTopRiver, waternetCreatorInput.MinimumLevelPhreaticLineAtDikeTopRiver); Assert.AreEqual(minimumLevelPhreaticLineAtDikeTopPolder, waternetCreatorInput.MinimumLevelPhreaticLineAtDikeTopPolder); Assert.AreEqual(phreaticLineOffsets.UseDefaults, waternetCreatorInput.UseDefaultOffsets); Assert.AreEqual(phreaticLineOffsets.BelowDikeTopAtRiver, waternetCreatorInput.PlLineOffsetBelowPointBRingtoetsWti2017); Assert.AreEqual(phreaticLineOffsets.BelowDikeTopAtPolder, waternetCreatorInput.PlLineOffsetBelowDikeTopAtPolder); Assert.AreEqual(phreaticLineOffsets.BelowShoulderBaseInside, waternetCreatorInput.PlLineOffsetBelowShoulderBaseInside); Assert.AreEqual(phreaticLineOffsets.BelowDikeToeAtPolder, waternetCreatorInput.PlLineOffsetBelowDikeToeAtPolder); Assert.AreEqual(adjustPhreaticLine3And4ForUplift, waternetCreatorInput.AdjustPl3And4ForUplift); Assert.AreEqual(leakageLengthOutwardsPhreaticLine3, waternetCreatorInput.LeakageLengthOutwardsPl3); Assert.AreEqual(leakageLengthInwardsPhreaticLine3, waternetCreatorInput.LeakageLengthInwardsPl3); Assert.AreEqual(leakageLengthOutwardsPhreaticLine4, waternetCreatorInput.LeakageLengthOutwardsPl4); Assert.AreEqual(leakageLengthInwardsPhreaticLine4, waternetCreatorInput.LeakageLengthInwardsPl4); Assert.AreEqual(piezometricHeadPhreaticLine2Outwards, waternetCreatorInput.HeadInPlLine2Outwards); Assert.AreEqual(piezometricHeadPhreaticLine2Inwards, waternetCreatorInput.HeadInPlLine2Inwards); Assert.AreEqual(penetrationLength, waternetCreatorInput.PenetrationLength); Assert.AreEqual(waterVolumetricWeight, waternetCreatorInput.UnitWeightWater); AssertIrrelevantValues(waternetCreatorInput); }