public void Constructor_ValidParameters_ExpectedValues() { // Setup var random = new Random(21); UpliftVanSlidingCircleResult rightCircle = UpliftVanSlidingCircleResultTestFactory.Create(); UpliftVanSlidingCircleResult leftCircle = UpliftVanSlidingCircleResultTestFactory.Create(); var slices = new[] { new UpliftVanSliceResult(new Point2D(0, 0), new Point2D(0, 0), new Point2D(0, 0), new Point2D(0, 0), new UpliftVanSliceResult.ConstructionProperties()) }; double nonIteratedHorizontalForce = random.NextDouble(); double iteratedHorizontalForce = random.NextDouble(); // Call var curve = new UpliftVanSlidingCurveResult(leftCircle, rightCircle, slices, nonIteratedHorizontalForce, iteratedHorizontalForce); // Assert Assert.AreSame(leftCircle, curve.LeftCircle); Assert.AreSame(rightCircle, curve.RightCircle); Assert.AreEqual(nonIteratedHorizontalForce, curve.NonIteratedHorizontalForce); Assert.AreEqual(iteratedHorizontalForce, curve.IteratedHorizontalForce); Assert.AreSame(slices, curve.Slices); }
public void Constructor_ConstructionPropertiesWithData_ExpectedValues() { // Setup var random = new Random(21); double factorOfStability = random.NextDouble(); double xEntryMin = random.NextDouble(); double xEntryMax = random.NextDouble(); var constructionProperties = new UpliftVanCalculatorResult.ConstructionProperties { FactorOfStability = factorOfStability, ForbiddenZonesXEntryMin = xEntryMin, ForbiddenZonesXEntryMax = xEntryMax }; UpliftVanSlidingCurveResult slidingCurveResult = UpliftVanSlidingCurveResultTestFactory.Create(); // Call var result = new UpliftVanCalculatorResult(slidingCurveResult, CreateGridResult(), new MacroStabilityInwardsKernelMessage[0], constructionProperties); // Assert Assert.AreEqual(factorOfStability, result.FactorOfStability); Assert.AreEqual(xEntryMin, result.ForbiddenZonesXEntryMin); Assert.AreEqual(xEntryMax, result.ForbiddenZonesXEntryMax); }
/// <summary> /// Asserts whether <paramref name="actual"/> is equal to <paramref name="expected"/>. /// </summary> /// <param name="expected">The expected <see cref="UpliftVanSlidingCurveResult"/>.</param> /// <param name="actual">The actual <see cref="UpliftVanSlidingCurveResult"/>.</param> /// <exception cref="AssertionException">Thrown when <paramref name="actual"/> /// is not equal to <paramref name="expected"/>.</exception> public static void AssertUpliftVanSlidingCurveResult(UpliftVanSlidingCurveResult expected, UpliftVanSlidingCurveResult actual) { Assert.AreEqual(expected.IteratedHorizontalForce, actual.IteratedHorizontalForce); Assert.AreEqual(expected.NonIteratedHorizontalForce, actual.NonIteratedHorizontalForce); AssertUpliftVanSlidingCircleResult(expected.LeftCircle, actual.LeftCircle); AssertUpliftVanSlidingCircleResult(expected.RightCircle, actual.RightCircle); AssertUpliftVanSliceResults(expected.Slices.ToArray(), actual.Slices.ToArray()); }
public void Constructor_ConstructionPropertiesNull_ThrowsArgumentNullException() { // Setup UpliftVanSlidingCurveResult slidingCurveResult = UpliftVanSlidingCurveResultTestFactory.Create(); // Call void Call() => new UpliftVanCalculatorResult(slidingCurveResult, CreateGridResult(), new MacroStabilityInwardsKernelMessage[0], null); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("properties", exception.ParamName); }
/// <summary> /// Converts <see cref="UpliftVanSlidingCurveResult"/> /// into <see cref="MacroStabilityInwardsSlidingCurve"/>. /// </summary> /// <param name="result">The result to convert.</param> /// <returns>The converted <see cref="MacroStabilityInwardsSlidingCurve"/>.</returns> /// <exception cref="ArgumentNullException">Thrown when <paramref name="result"/> /// is <c>null</c>.</exception> public static MacroStabilityInwardsSlidingCurve Convert(UpliftVanSlidingCurveResult result) { if (result == null) { throw new ArgumentNullException(nameof(result)); } MacroStabilityInwardsSlidingCircle leftCircle = ConvertCircle(result.LeftCircle); MacroStabilityInwardsSlidingCircle rightCircle = ConvertCircle(result.RightCircle); IEnumerable <MacroStabilityInwardsSlice> slices = ConvertSlices(result.Slices); return(new MacroStabilityInwardsSlidingCurve(leftCircle, rightCircle, slices, result.NonIteratedHorizontalForce, result.IteratedHorizontalForce)); }
public void Convert_WithResult_ReturnConvertedSlidingCurve() { // Setup UpliftVanSlidingCurveResult result = UpliftVanSlidingCurveResultTestFactory.Create(); // Call MacroStabilityInwardsSlidingCurve output = MacroStabilityInwardsSlidingCurveConverter.Convert(result); // Assert Assert.AreEqual(result.IteratedHorizontalForce, output.IteratedHorizontalForce); Assert.AreEqual(result.NonIteratedHorizontalForce, output.NonIteratedHorizontalForce); AssertCircle(result.LeftCircle, output.LeftCircle); AssertCircle(result.RightCircle, output.RightCircle); AssertSlices(result.Slices, output.Slices); }
public void Constructor_EmptyConstructionProperties_ExpectedValues() { // Setup UpliftVanSlidingCurveResult slidingCurveResult = UpliftVanSlidingCurveResultTestFactory.Create(); // Call var result = new UpliftVanCalculatorResult(slidingCurveResult, CreateGridResult(), new MacroStabilityInwardsKernelMessage[0], new UpliftVanCalculatorResult.ConstructionProperties()); // Assert Assert.IsNaN(result.FactorOfStability); Assert.IsNaN(result.ForbiddenZonesXEntryMin); Assert.IsNaN(result.ForbiddenZonesXEntryMax); }
public void Constructor_WithParameters_ExpectedValues() { // Setup UpliftVanSlidingCurveResult slidingCurveResult = UpliftVanSlidingCurveResultTestFactory.Create(); UpliftVanCalculationGridResult calculationGridResult = CreateGridResult(); IEnumerable <MacroStabilityInwardsKernelMessage> calculationMessages = new List <MacroStabilityInwardsKernelMessage>(); // Call var result = new UpliftVanCalculatorResult(slidingCurveResult, calculationGridResult, calculationMessages, new UpliftVanCalculatorResult.ConstructionProperties()); // Assert Assert.AreSame(slidingCurveResult, result.SlidingCurveResult); Assert.AreSame(calculationGridResult, result.CalculationGridResult); Assert.AreSame(calculationMessages, result.CalculationMessages); }
public void Create_WithSlidingCurve_ReturnUpliftVanSlidingCurveResult() { // Setup var random = new Random(); double activeCircleX = random.Next(); double activeCircleZ = random.Next(); double activeCircleIteratedForce = random.Next(); double activeCircleNonIteratedForce = random.Next(); double activeCircleRadius = random.Next(); double activeCircleDrivingMoment = random.Next(); double activeCircleResistingMoment = random.Next(); double passiveCircleX = random.Next(); double passiveCircleZ = random.Next(); double passiveCircleIteratedForce = random.Next(); double passiveCircleNonIteratedForce = random.Next(); double passiveCircleRadius = random.Next(); double passiveCircleDrivingMoment = random.Next(); double passiveCircleResistingMoment = random.Next(); double iteratedHorizontalForce = random.Next(); double nonIteratedHorizontalForce = random.Next(); var slidingCurve = new DualSlidingCircleMinimumSafetyCurve { ActiveCircleCenter = new CSharpWrapperPoint2D(activeCircleX, activeCircleZ), IteratedActiveForce = activeCircleIteratedForce, NonIteratedActiveForce = activeCircleNonIteratedForce, ActiveCircleRadius = activeCircleRadius, DrivingActiveMoment = activeCircleDrivingMoment, ResistingActiveMoment = activeCircleResistingMoment, PassiveCircleCenter = new CSharpWrapperPoint2D(passiveCircleX, passiveCircleZ), IteratedPassiveForce = passiveCircleIteratedForce, NonIteratedPassiveForce = passiveCircleNonIteratedForce, PassiveCircleRadius = passiveCircleRadius, DrivingPassiveMoment = passiveCircleDrivingMoment, ResistingPassiveMoment = passiveCircleResistingMoment, IteratedHorizontalForce = iteratedHorizontalForce, NonIteratedHorizontalForce = nonIteratedHorizontalForce, Slices = new Slice[0] }; // Call UpliftVanSlidingCurveResult result = UpliftVanSlidingCurveResultCreator.Create(slidingCurve); // Assert bool leftCircleIsActive = slidingCurve.ActiveCircleCenter.X <= slidingCurve.PassiveCircleCenter.X; AssertActiveCircle(leftCircleIsActive ? result.LeftCircle : result.RightCircle, activeCircleX, activeCircleZ, activeCircleIteratedForce, activeCircleNonIteratedForce, activeCircleRadius, activeCircleDrivingMoment, activeCircleResistingMoment); AssertPassiveCircle(leftCircleIsActive ? result.RightCircle : result.LeftCircle, passiveCircleX, passiveCircleZ, passiveCircleIteratedForce, passiveCircleNonIteratedForce, passiveCircleRadius, passiveCircleDrivingMoment, passiveCircleResistingMoment); Assert.AreEqual(iteratedHorizontalForce, result.IteratedHorizontalForce); Assert.AreEqual(nonIteratedHorizontalForce, result.NonIteratedHorizontalForce); }
public void Create_SlidingCurveWithSlices_ReturnUpliftVanSlidingCurveResult() { // Setup var random = new Random(21); double topLeftX = random.NextDouble(); double topLeftZ = random.NextDouble(); double topRightX = random.NextDouble(); double topRightZ = random.NextDouble(); double bottomLeftX = random.NextDouble(); double bottomLeftZ = random.NextDouble(); double bottomRightX = random.NextDouble(); double bottomRightZ = random.NextDouble(); double cohesion = random.NextDouble(); double frictionAngle = random.NextDouble(); double criticalPressure = random.NextDouble(); double overConsolidationRatio = random.NextDouble(); double pop = random.NextDouble(); double degreeOfConsolidationPorePressureSoil = random.NextDouble(); double degreeOfConsolidationPorePressureLoad = random.NextDouble(); double dilatancy = random.NextDouble(); double externalLoad = random.NextDouble(); double hydrostaticPorePressure = random.NextDouble(); double leftForce = random.NextDouble(); double leftForceAngle = random.NextDouble(); double leftForceY = random.NextDouble(); double rightForce = random.NextDouble(); double rightForceAngle = random.NextDouble(); double rightForceY = random.NextDouble(); double loadStress = random.NextDouble(); double normalStress = random.NextDouble(); double porePressure = random.NextDouble(); double horizontalPorePressure = random.NextDouble(); double verticalPorePressure = random.NextDouble(); double piezometricPorePressure = random.NextDouble(); double effectiveStress = random.NextDouble(); double excessPorePressure = random.NextDouble(); double shearStress = random.NextDouble(); double soilStress = random.NextDouble(); double totalPorePressure = random.NextDouble(); double totalStress = random.NextDouble(); double weight = random.NextDouble(); var slidingCurve = new DualSlidingCircleMinimumSafetyCurve { ActiveCircleCenter = new CSharpWrapperPoint2D(0, 0), PassiveCircleCenter = new CSharpWrapperPoint2D(1, 1), Slices = new[] { new Slice { TopLeftPoint = new CSharpWrapperPoint2D(topLeftX, topLeftZ), TopRightPoint = new CSharpWrapperPoint2D(topRightX, topRightZ), BottomLeftPoint = new CSharpWrapperPoint2D(bottomLeftX, bottomLeftZ), BottomRightPoint = new CSharpWrapperPoint2D(bottomRightX, bottomRightZ), Cohesion = cohesion, FrictionAngleInput = frictionAngle, YieldStress = criticalPressure, OCR = overConsolidationRatio, POP = pop, DegreeOfConsolidationPorePressure = degreeOfConsolidationPorePressureSoil, PorePressureDueToDegreeOfConsolidationLoad = degreeOfConsolidationPorePressureLoad, Dilatancy = dilatancy, ExternalLoad = externalLoad, HydrostaticPorePressure = hydrostaticPorePressure, LeftForce = leftForce, LeftForceAngle = leftForceAngle, LeftForceY = leftForceY, RightForce = rightForce, RightForceAngle = rightForceAngle, RightForceY = rightForceY, LoadStress = loadStress, NormalStress = normalStress, PorePressure = porePressure, HorizontalPorePressure = horizontalPorePressure, VerticalPorePressure = verticalPorePressure, PiezometricPorePressure = piezometricPorePressure, EffectiveStress = effectiveStress, ExcessPorePressure = excessPorePressure, ShearStress = shearStress, SoilStress = soilStress, TotalPorePressure = totalPorePressure, TotalStress = totalStress, Weight = weight } } }; // Call UpliftVanSlidingCurveResult result = UpliftVanSlidingCurveResultCreator.Create(slidingCurve); // Assert Assert.AreEqual(1, result.Slices.Count()); UpliftVanSliceResult slice = result.Slices.First(); Assert.AreEqual(new Point2D(topLeftX, topLeftZ), slice.TopLeftPoint); Assert.AreEqual(new Point2D(topRightX, topRightZ), slice.TopRightPoint); Assert.AreEqual(new Point2D(bottomLeftX, bottomLeftZ), slice.BottomLeftPoint); Assert.AreEqual(new Point2D(bottomRightX, bottomRightZ), slice.BottomRightPoint); Assert.AreEqual(cohesion, slice.Cohesion); Assert.AreEqual(frictionAngle, slice.FrictionAngle); Assert.AreEqual(criticalPressure, slice.CriticalPressure); Assert.AreEqual(overConsolidationRatio, slice.OverConsolidationRatio); Assert.AreEqual(pop, slice.Pop); Assert.AreEqual(degreeOfConsolidationPorePressureSoil, slice.DegreeOfConsolidationPorePressureSoil); Assert.AreEqual(degreeOfConsolidationPorePressureLoad, slice.DegreeOfConsolidationPorePressureLoad); Assert.AreEqual(dilatancy, slice.Dilatancy); Assert.AreEqual(externalLoad, slice.ExternalLoad); Assert.AreEqual(hydrostaticPorePressure, slice.HydrostaticPorePressure); Assert.AreEqual(leftForce, slice.LeftForce); Assert.AreEqual(leftForceAngle, slice.LeftForceAngle); Assert.AreEqual(leftForceY, slice.LeftForceY); Assert.AreEqual(rightForce, slice.RightForce); Assert.AreEqual(rightForceAngle, slice.RightForceAngle); Assert.AreEqual(rightForceY, slice.RightForceY); Assert.AreEqual(loadStress, slice.LoadStress); Assert.AreEqual(normalStress, slice.NormalStress); Assert.AreEqual(porePressure, slice.PorePressure); Assert.AreEqual(horizontalPorePressure, slice.HorizontalPorePressure); Assert.AreEqual(verticalPorePressure, slice.VerticalPorePressure); Assert.AreEqual(piezometricPorePressure, slice.PiezometricPorePressure); Assert.AreEqual(effectiveStress, slice.EffectiveStress); Assert.AreEqual(excessPorePressure, slice.ExcessPorePressure); Assert.AreEqual(shearStress, slice.ShearStress); Assert.AreEqual(soilStress, slice.SoilStress); Assert.AreEqual(totalPorePressure, slice.TotalPorePressure); Assert.AreEqual(totalStress, slice.TotalStress); Assert.AreEqual(weight, slice.Weight); }