public void Create_SlipPlaneGridsAutomatic_ReturnSlipPlaneUpliftVan() { // Setup var slipPlane = new UpliftVanSlipPlane(); // Call UpliftVanCalculationGrid upliftVanCalculationGrid = UpliftVanCalculationGridCreator.Create(slipPlane); // Assert Assert.IsNotNull(upliftVanCalculationGrid.LeftGrid); Assert.AreEqual(0, upliftVanCalculationGrid.LeftGrid.GridXLeft); Assert.AreEqual(0, upliftVanCalculationGrid.LeftGrid.GridXRight); Assert.AreEqual(0, upliftVanCalculationGrid.LeftGrid.GridZTop); Assert.AreEqual(0, upliftVanCalculationGrid.LeftGrid.GridZBottom); Assert.AreEqual(0, upliftVanCalculationGrid.LeftGrid.GridXNumber); Assert.AreEqual(0, upliftVanCalculationGrid.LeftGrid.GridZNumber); Assert.IsNotNull(upliftVanCalculationGrid.RightGrid); Assert.AreEqual(0, upliftVanCalculationGrid.RightGrid.GridXLeft); Assert.AreEqual(0, upliftVanCalculationGrid.RightGrid.GridXRight); Assert.AreEqual(0, upliftVanCalculationGrid.RightGrid.GridZTop); Assert.AreEqual(0, upliftVanCalculationGrid.RightGrid.GridZBottom); Assert.AreEqual(0, upliftVanCalculationGrid.RightGrid.GridXNumber); Assert.AreEqual(0, upliftVanCalculationGrid.RightGrid.GridZNumber); Assert.IsNull(upliftVanCalculationGrid.TangentLines); // Irrelevant - Only for output }
public void Create_SlipPlaneNull_ThrowsArgumentNullException() { // Call void Call() => UpliftVanCalculationGridCreator.Create(null); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("slipPlane", exception.ParamName); }
public void Create_WithSlipPlane_ReturnUpliftVanCalculationGrid() { // Setup var random = new Random(21); double leftGridXLeft = random.NextDouble(); double leftGridXRight = random.NextDouble(); double leftGridZTop = random.NextDouble(); double leftGridZBottom = random.NextDouble(); int leftGridXNumber = random.Next(); int leftGridZNumber = random.Next(); double rightGridXLeft = random.NextDouble(); double rightGridXRight = random.NextDouble(); double rightGridZTop = random.NextDouble(); double rightGridZBottom = random.NextDouble(); int rightGridXNumber = random.Next(); int rightGridZNumber = random.Next(); var leftGrid = new UpliftVanGrid(leftGridXLeft, leftGridXRight, leftGridZTop, leftGridZBottom, leftGridXNumber, leftGridZNumber); var rightGrid = new UpliftVanGrid(rightGridXLeft, rightGridXRight, rightGridZTop, rightGridZBottom, rightGridXNumber, rightGridZNumber); var slipPlane = new UpliftVanSlipPlane(leftGrid, rightGrid); // Call UpliftVanCalculationGrid upliftVanCalculationGrid = UpliftVanCalculationGridCreator.Create(slipPlane); // Assert Assert.AreEqual(leftGridXLeft, upliftVanCalculationGrid.LeftGrid.GridXLeft); Assert.AreEqual(leftGridXRight, upliftVanCalculationGrid.LeftGrid.GridXRight); Assert.AreEqual(leftGridZTop, upliftVanCalculationGrid.LeftGrid.GridZTop); Assert.AreEqual(leftGridZBottom, upliftVanCalculationGrid.LeftGrid.GridZBottom); Assert.AreEqual(leftGridXNumber, upliftVanCalculationGrid.LeftGrid.GridXNumber); Assert.AreEqual(leftGridZNumber, upliftVanCalculationGrid.LeftGrid.GridZNumber); Assert.AreEqual(rightGridXLeft, upliftVanCalculationGrid.RightGrid.GridXLeft); Assert.AreEqual(rightGridXRight, upliftVanCalculationGrid.RightGrid.GridXRight); Assert.AreEqual(rightGridZTop, upliftVanCalculationGrid.RightGrid.GridZTop); Assert.AreEqual(rightGridZBottom, upliftVanCalculationGrid.RightGrid.GridZBottom); Assert.AreEqual(rightGridXNumber, upliftVanCalculationGrid.RightGrid.GridXNumber); Assert.AreEqual(rightGridZNumber, upliftVanCalculationGrid.RightGrid.GridZNumber); Assert.IsNull(upliftVanCalculationGrid.TangentLines); // Irrelevant - Only for output }
public void CreateUpliftVan_ValidData_ReturnMacroStabilityInput() { // Setup UpliftVanCalculatorInput input = UpliftVanCalculatorInputTestFactory.Create(); LayerWithSoil[] layersWithSoil = LayerWithSoilCreator.Create(input.SoilProfile, out IDictionary <SoilLayer, LayerWithSoil> layerLookup); List <Soil> soils = layersWithSoil.Select(lws => lws.Soil).ToList(); SurfaceLine surfaceLine = SurfaceLineCreator.Create(input.SurfaceLine); SoilProfile soilProfile = SoilProfileCreator.Create(layersWithSoil); var dailyWaternet = new Waternet(); var extremeWaternet = new Waternet(); // Call MacroStabilityInput macroStabilityInput = MacroStabilityInputCreator.CreateUpliftVan( input, soils, layerLookup, surfaceLine, soilProfile, dailyWaternet, extremeWaternet); // Assert StabilityInput stabilityModel = macroStabilityInput.StabilityModel; Assert.AreEqual(Orientation.Inwards, stabilityModel.Orientation); Assert.AreEqual(SearchAlgorithm.Grid, stabilityModel.SearchAlgorithm); Assert.AreEqual(StabilityModelOptionType.UpliftVan, stabilityModel.ModelOption); CollectionAssert.AreEqual(soils, stabilityModel.Soils, new SoilComparer()); Assert.AreEqual(input.MoveGrid, stabilityModel.MoveGrid); Assert.AreEqual(input.MaximumSliceWidth, stabilityModel.MaximumSliceWidth); UpliftVanKernelInputAssert.AssertUpliftVanCalculationGrid( UpliftVanCalculationGridCreator.Create(input.SlipPlane), stabilityModel.UpliftVanCalculationGrid); UpliftVanKernelInputAssert.AssertSlipPlaneConstraints( SlipPlaneConstraintsCreator.Create(input.SlipPlaneConstraints), stabilityModel.SlipPlaneConstraints); AssertConstructionStages(input, stabilityModel, soilProfile, dailyWaternet, extremeWaternet, layerLookup); Assert.AreEqual(input.SlipPlane.GridNumberOfRefinements, stabilityModel.NumberOfRefinementsGrid); Assert.AreEqual(input.SlipPlane.TangentLineNumberOfRefinements, stabilityModel.NumberOfRefinementsTangentLines); SearchAreaConditions searchAreaConditions = macroStabilityInput.PreprocessingInput.SearchAreaConditions; Assert.AreEqual(0.8, searchAreaConditions.MaxSpacingBetweenBoundaries); Assert.IsTrue(searchAreaConditions.OnlyAbovePleistoceen); Assert.AreEqual(input.SlipPlane.GridAutomaticDetermined, searchAreaConditions.AutoSearchArea); Assert.AreEqual(input.SlipPlane.TangentLinesAutomaticAtBoundaries, searchAreaConditions.AutoTangentLines); Assert.AreEqual(1, searchAreaConditions.TangentLineNumber); Assert.AreEqual(0, searchAreaConditions.TangentLineZTop); Assert.AreEqual(0, searchAreaConditions.TangentLineZBottom); Assert.AreEqual(input.SlipPlaneConstraints.AutomaticForbiddenZones, searchAreaConditions.AutomaticForbiddenZones); Assert.AreEqual(2, macroStabilityInput.PreprocessingInput.PreConstructionStages.Count); foreach (PreConstructionStage preConstructionStage in macroStabilityInput.PreprocessingInput.PreConstructionStages) { Assert.IsFalse(preConstructionStage.CreateWaternet); Assert.AreSame(surfaceLine, preConstructionStage.SurfaceLine); Assert.IsNull(preConstructionStage.WaternetCreatorInput); // Not needed as Waternet is already calculated } AssertIrrelevantValues(stabilityModel, searchAreaConditions); }