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;
 }
示例#3
0
        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);
        }
示例#4
0
 /// <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);
        }
示例#6
0
        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);
        }
示例#13
0
 /// <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)
 {
 }