private static void AssertPercentile(double percentile, VariationCoefficientDesignVariable <VariationCoefficientLogNormalDistribution> designVariable) { Assert.IsInstanceOf <VariationCoefficientLogNormalDistributionDesignVariable>(designVariable); var percentileBasedDesignVariable = (VariationCoefficientLogNormalDistributionDesignVariable)designVariable; Assert.AreEqual(percentile, percentileBasedDesignVariable.Percentile); }
/// <summary> /// Creates a new <see cref="VariationCoefficientDesignVariableProperties{TDistribution}"/>. /// </summary> /// <param name="readOnlyProperties">Indicates which properties, if any, should be marked as read-only.</param> /// <param name="designVariable">The data of the <see cref="TDistribution"/> to create the properties for.</param> /// <param name="handler">The handler responsible for handling effects of a property change.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="designVariable"/> is <c>null</c>.</exception> /// <exception cref="ArgumentException">Thrown when any number of properties in this class is editable and the /// <paramref name="handler"/> is <c>null</c>.</exception> protected VariationCoefficientDesignVariableProperties(VariationCoefficientDistributionReadOnlyProperties readOnlyProperties, VariationCoefficientDesignVariable <TDistribution> designVariable, IObservablePropertyChangeHandler handler) : base(readOnlyProperties, GetDistribution(designVariable), handler) { this.designVariable = designVariable; }
private static void AssertShiftedDesignVariableColumnValueEqual(VariationCoefficientDesignVariable <VariationCoefficientLogNormalDistribution> expectedValue, object actualValue) { string expectedFormattedDesignVariable = $"{expectedValue.GetDesignValue()} (Verwachtingswaarde = {expectedValue.Distribution.Mean}, " + $"Variatiecoëfficiënt = {expectedValue.Distribution.CoefficientOfVariation}, Verschuiving = {expectedValue.Distribution.Shift})"; Assert.AreEqual(expectedFormattedDesignVariable, actualValue); }
/// <summary> /// Creates a new <see cref="VariationCoefficientLogNormalDistributionDesignVariableProperties"/>. /// </summary> /// <param name="readOnlyProperties">Indicates which properties, if any, should be marked as read-only.</param> /// <param name="designVariable">The <see cref="DesignVariable{T}"/> to create the properties for.</param> /// <param name="handler">The handler responsible for handling effects of a property change.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="designVariable"/> is <c>null</c>.</exception> /// <exception cref="ArgumentException">Thrown when any number of properties in this class is editable and the /// <paramref name="handler"/> is <c>null</c>.</exception> public VariationCoefficientLogNormalDistributionDesignVariableProperties(VariationCoefficientDistributionReadOnlyProperties readOnlyProperties, VariationCoefficientDesignVariable <VariationCoefficientLogNormalDistribution> designVariable, IObservablePropertyChangeHandler handler) : base(readOnlyProperties, designVariable, handler) { }
/// <summary> /// Gets the <see cref="TDistribution"/> of the <see cref="DesignVariable{T}"/>. /// </summary> /// <param name="designVariable">The design variable to get the distribution from.</param> /// <returns>The distribution of the design variable.</returns> /// <exception cref="ArgumentNullException">Thrown when <paramref name="designVariable"/> /// is <c>null</c>.</exception> private static TDistribution GetDistribution(VariationCoefficientDesignVariable <TDistribution> designVariable) { if (designVariable == null) { throw new ArgumentNullException(nameof(designVariable)); } return(designVariable.Distribution); }
private static string FormatVariationCoefficientDesignVariable(VariationCoefficientDesignVariable <VariationCoefficientLogNormalDistribution> designVariable) { RoundedDouble designValue = designVariable.GetDesignValue(); return(double.IsNaN(designValue) ? double.NaN.ToString(CultureInfo.CurrentCulture) : string.Format(RiskeerCommonFormsResources.VariationCoefficientDesignVariable_0_Mean_1_CoefficientOfVariation_2, designValue, designVariable.Distribution.Mean, designVariable.Distribution.CoefficientOfVariation)); }
public void GetCohesion_ValidSoilLayerData_CreateDesignVariableForCohesion() { // Setup var data = new MacroStabilityInwardsSoilLayerData { Cohesion = { Mean = (RoundedDouble)mean, CoefficientOfVariation = (RoundedDouble)coefficientOfVariation } }; // Call VariationCoefficientDesignVariable <VariationCoefficientLogNormalDistribution> cohesion = MacroStabilityInwardsSemiProbabilisticDesignVariableFactory.GetCohesion(data); // Assert DistributionAssert.AreEqual(data.Cohesion, cohesion.Distribution); AssertPercentile(0.05, cohesion); }
public void GetPreconsolidationStress_ValidPreconsolidationStress_CreateDesignVariableForPreconsolidationStress() { // Setup var location = new Point2D(random.NextDouble(), random.NextDouble()); var stressDistribution = new VariationCoefficientLogNormalDistribution { Mean = (RoundedDouble)0.005, CoefficientOfVariation = (RoundedDouble)coefficientOfVariation }; var preconsolidationStress = new MacroStabilityInwardsPreconsolidationStress(location, stressDistribution); // Call VariationCoefficientDesignVariable <VariationCoefficientLogNormalDistribution> preconsoldationStress = MacroStabilityInwardsSemiProbabilisticDesignVariableFactory.GetPreconsolidationStress(preconsolidationStress); // Assert DistributionAssert.AreEqual(preconsolidationStress.Stress, preconsoldationStress.Distribution); AssertPercentile(0.05, preconsoldationStress); }
public void GetStrengthIncreaseExponent_ValidSoilLayerData_CreateDesignVariableForStrengthIncreaseExponent() { // Setup var data = new MacroStabilityInwardsSoilLayerData { StrengthIncreaseExponent = { Mean = (RoundedDouble)mean, CoefficientOfVariation = (RoundedDouble)coefficientOfVariation } }; // Call VariationCoefficientDesignVariable <VariationCoefficientLogNormalDistribution> strengthIncreaseExponent = MacroStabilityInwardsSemiProbabilisticDesignVariableFactory.GetStrengthIncreaseExponent(data); // Assert DistributionAssert.AreEqual(data.StrengthIncreaseExponent, strengthIncreaseExponent.Distribution); AssertPercentile(0.05, strengthIncreaseExponent); }
public void GetDarcyPermeability_ValidPipingInput_CreateDesignVariableForDarcyPermeability() { // Setup var pipingInput = new TestPipingInput(); // Call VariationCoefficientDesignVariable <VariationCoefficientLogNormalDistribution> darcyPermeability = SemiProbabilisticPipingDesignVariableFactory.GetDarcyPermeability(pipingInput); // Assert DistributionAssert.AreEqual(DerivedPipingInput.GetDarcyPermeability(pipingInput), darcyPermeability.Distribution); AssertPercentile(0.95, darcyPermeability); }
public void GetDiameter70_ValidPipingInput_CreateDesignVariableForDiameter70() { // Setup var pipingInput = new TestPipingInput(); // Call VariationCoefficientDesignVariable <VariationCoefficientLogNormalDistribution> d70 = SemiProbabilisticPipingDesignVariableFactory.GetDiameter70(pipingInput); // Assert DistributionAssert.AreEqual(DerivedPipingInput.GetDiameterD70(pipingInput), d70.Distribution); AssertPercentile(0.05, d70); }
public void GetSeepageLength_ValidPipingInput_CreateDesignVariableForSeepageLength() { // Setup var pipingInput = new TestPipingInput(); // Call VariationCoefficientDesignVariable <VariationCoefficientLogNormalDistribution> seepageLength = SemiProbabilisticPipingDesignVariableFactory.GetSeepageLength(pipingInput); // Assert DistributionAssert.AreEqual(DerivedPipingInput.GetSeepageLength(pipingInput), seepageLength.Distribution); AssertPercentile(0.05, seepageLength); }
/// <summary> /// Creates a new read-only <see cref="VariationCoefficientLogNormalDistributionDesignVariableProperties"/>. /// </summary> /// <param name="designVariable">The <see cref="DesignVariable{T}"/> to create the properties for.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="designVariable"/> is <c>null</c>.</exception> public VariationCoefficientLogNormalDistributionDesignVariableProperties(VariationCoefficientDesignVariable <VariationCoefficientLogNormalDistribution> designVariable) : this(VariationCoefficientDistributionReadOnlyProperties.All, designVariable, null) { }