public static void CalculatePiezometricHeadAtExit_CompleteInput_InputSetOnSubCalculator() { // Setup RoundedDouble assessmentLevel = new Random(21).NextRoundedDouble(); var validPipingCalculation = SemiProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput <TestSemiProbabilisticPipingCalculation>( new TestHydraulicBoundaryLocation()); PipingInput input = validPipingCalculation.InputParameters; using (new PipingSubCalculatorFactoryConfig()) { // Call InputParameterCalculationService.CalculatePiezometricHeadAtExit( assessmentLevel, SemiProbabilisticPipingDesignVariableFactory.GetDampingFactorExit(input).GetDesignValue(), PipingDesignVariableFactory.GetPhreaticLevelExit(input).GetDesignValue()); // Assert var testFactory = (TestPipingSubCalculatorFactory)PipingSubCalculatorFactory.Instance; PiezoHeadCalculatorStub piezometricHeadAtExitCalculator = testFactory.LastCreatedPiezometricHeadAtExitCalculator; Assert.AreEqual(assessmentLevel.Value, piezometricHeadAtExitCalculator.HRiver); Assert.AreEqual(PipingDesignVariableFactory.GetPhreaticLevelExit(input).GetDesignValue(), piezometricHeadAtExitCalculator.PhiPolder, input.PhreaticLevelExit.GetAccuracy()); Assert.AreEqual(SemiProbabilisticPipingDesignVariableFactory.GetDampingFactorExit(input).GetDesignValue(), piezometricHeadAtExitCalculator.RExit, input.DampingFactorExit.GetAccuracy()); } }
public static void CalculatePiezometricHeadAtExit_Always_ReturnsResult() { // Setup var input = new TestPipingInput(); // Call double result = InputParameterCalculationService.CalculatePiezometricHeadAtExit( (RoundedDouble)0.0, SemiProbabilisticPipingDesignVariableFactory.GetDampingFactorExit(input).GetDesignValue(), PipingDesignVariableFactory.GetPhreaticLevelExit(input).GetDesignValue()); // Assert Assert.IsFalse(double.IsNaN(result)); }
/// <summary> /// Gets the piezometric head at the exit point. /// [m] /// </summary> /// <param name="input">The input to calculate the derived piping input for.</param> /// <param name="assessmentLevel">The assessment level at stake.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="input"/> is <c>null</c>.</exception> /// <returns>Returns the corresponding derived input value.</returns> public static RoundedDouble GetPiezometricHeadExit(PipingInput input, RoundedDouble assessmentLevel) { if (input == null) { throw new ArgumentNullException(nameof(input)); } RoundedDouble dampingFactorExit = SemiProbabilisticPipingDesignVariableFactory.GetDampingFactorExit(input).GetDesignValue(); RoundedDouble phreaticLevelExit = PipingDesignVariableFactory.GetPhreaticLevelExit(input).GetDesignValue(); return(new RoundedDouble(2, InputParameterCalculationService.CalculatePiezometricHeadAtExit(assessmentLevel, dampingFactorExit, phreaticLevelExit))); }