/// <summary> /// Gets the available stochastic soil models on <see cref="MacroStabilityInwardsCalculationScenarioContext"/>. /// </summary> public IEnumerable <MacroStabilityInwardsStochasticSoilModel> GetAvailableStochasticSoilModels() { if (data.WrappedData.SurfaceLine == null) { return(data.AvailableStochasticSoilModels); } return(MacroStabilityInwardsCalculationConfigurationHelper.GetStochasticSoilModelsForSurfaceLine(data.WrappedData.SurfaceLine, data.AvailableStochasticSoilModels)); }
public void GetStochasticSoilModelsForSurfaceLine_SurfaceLineIntersectingSoilModel_ReturnSoilModel() { // Setup var soilProfile1 = new MacroStabilityInwardsStochasticSoilProfile(0.3, new MacroStabilityInwardsSoilProfile1D("Profile 1", -10.0, new[] { new MacroStabilityInwardsSoilLayer1D(-5.0), new MacroStabilityInwardsSoilLayer1D(-2.0), new MacroStabilityInwardsSoilLayer1D(1.0) })); var soilProfile2 = new MacroStabilityInwardsStochasticSoilProfile(0.7, new MacroStabilityInwardsSoilProfile1D("Profile 2", -8.0, new[] { new MacroStabilityInwardsSoilLayer1D(-4.0), new MacroStabilityInwardsSoilLayer1D(0.0), new MacroStabilityInwardsSoilLayer1D(4.0) })); var soilModel = new MacroStabilityInwardsStochasticSoilModel("A", new[] { new Point2D(1.0, 0.0), new Point2D(5.0, 0.0) }, new[] { soilProfile1, soilProfile2 }); MacroStabilityInwardsStochasticSoilModel[] availableSoilModels = { soilModel }; var surfaceLine = new MacroStabilityInwardsSurfaceLine(string.Empty); 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) }); // Call IEnumerable <MacroStabilityInwardsStochasticSoilModel> result = MacroStabilityInwardsCalculationConfigurationHelper.GetStochasticSoilModelsForSurfaceLine( surfaceLine, availableSoilModels); // Assert MacroStabilityInwardsStochasticSoilModel[] expected = { soilModel }; CollectionAssert.AreEquivalent(expected, result); }
public void GetStochasticSoilModelsForSurfaceLine_SoilModelGeometryNotIntersecting_ReturnEmpty() { // Setup var soilProfile1 = new MacroStabilityInwardsSoilProfile1D("Profile 1", -10.0, new[] { new MacroStabilityInwardsSoilLayer1D(-5.0), new MacroStabilityInwardsSoilLayer1D(-2.0), new MacroStabilityInwardsSoilLayer1D(1.0) }); var soilProfile2 = new MacroStabilityInwardsSoilProfile1D("Profile 2", -8.0, new[] { new MacroStabilityInwardsSoilLayer1D(-4.0), new MacroStabilityInwardsSoilLayer1D(0.0), new MacroStabilityInwardsSoilLayer1D(4.0) }); var soilModel = new MacroStabilityInwardsStochasticSoilModel("A", new[] { new Point2D(1.0, 0.0), new Point2D(5.0, 0.0) }, new[] { new MacroStabilityInwardsStochasticSoilProfile(0.3, soilProfile1), new MacroStabilityInwardsStochasticSoilProfile(0.7, soilProfile2) }); MacroStabilityInwardsStochasticSoilModel[] availableSoilModels = { soilModel }; var surfaceLine = new MacroStabilityInwardsSurfaceLine(string.Empty); 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) }); // Call IEnumerable <MacroStabilityInwardsStochasticSoilModel> result = MacroStabilityInwardsCalculationConfigurationHelper.GetStochasticSoilModelsForSurfaceLine(surfaceLine, availableSoilModels); // Assert CollectionAssert.IsEmpty(result); }
public void GetStochasticSoilModelsForSurfaceLine_NoSoilModels_ReturnEmpty() { // Setup var surfaceLine = new MacroStabilityInwardsSurfaceLine(string.Empty); 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) }); // Call IEnumerable <MacroStabilityInwardsStochasticSoilModel> result = MacroStabilityInwardsCalculationConfigurationHelper.GetStochasticSoilModelsForSurfaceLine( surfaceLine, Enumerable.Empty <MacroStabilityInwardsStochasticSoilModel>()); // Assert CollectionAssert.IsEmpty(result); }
private IEnumerable <MacroStabilityInwardsStochasticSoilModel> GetSoilModelsForCalculation(MacroStabilityInwardsCalculation calculation) { return(MacroStabilityInwardsCalculationConfigurationHelper.GetStochasticSoilModelsForSurfaceLine( calculation.InputParameters.SurfaceLine, FailureMechanism.StochasticSoilModels)); }
private IEnumerable <MacroStabilityInwardsStochasticSoilModel> GetAvailableStochasticSoilModels(MacroStabilityInwardsSurfaceLine surfaceLine) { return(MacroStabilityInwardsCalculationConfigurationHelper.GetStochasticSoilModelsForSurfaceLine(surfaceLine, FailureMechanism.StochasticSoilModels)); }