示例#1
0
        private static List <string> ValidateStochasticVariableMeanParameter(StructuresParameterRow row, bool meanMustBeGreaterThanZero)
        {
            var messages = new List <string>();

            const string numericalValueColumn = StructureFilesKeywords.NumericalValueColumnName;

            messages.AddRange(meanMustBeGreaterThanZero ? ValidateGreaterThanZeroDoubleParameter(row, numericalValueColumn) : ValidateDoubleParameter(row, numericalValueColumn));
            return(messages);
        }
示例#2
0
        private static List <string> StabilityPointStructureInflowModelTypeRule(StructuresParameterRow row)
        {
            var    messages = new List <string>();
            string value    = row.AlphanumericValue.ToLower();

            if (!stabilityPointStructureInflowModelTypeRuleKeywords.Contains(value))
            {
                messages.Add(string.Format(Resources.StructuresParameterRowsValidator_ParameterId_0_Line_1_ColumnName_2_structure_type_invalid,
                                           row.ParameterId, row.LineNumber, StructureFilesKeywords.AlphanumericalValueColumnName.FirstToUpper()));
            }

            return(messages);
        }
示例#3
0
        private static List <string> IdenticalApertures(StructuresParameterRow row)
        {
            var    messages = new List <string>();
            double value    = row.NumericalValue;

            if (!IsValueWholeNumber(value) || value < 1)
            {
                messages.Add(string.Format(Resources.StructuresParameterRowsValidator_ParameterId_0_Line_1_ColumnName_2_value_must_be_whole_number_greater_or_equal_to_one,
                                           row.ParameterId, row.LineNumber, StructureFilesKeywords.NumericalValueColumnName.FirstToUpper()));
            }

            return(messages);
        }
示例#4
0
        private static double GetValueFromRowForColumn(StructuresParameterRow row, string columnName)
        {
            switch (columnName)
            {
            case StructureFilesKeywords.NumericalValueColumnName:
                return(row.NumericalValue);

            case StructureFilesKeywords.VariationValueColumnName:
                return(row.VarianceValue);

            default:
                throw new NotSupportedException();
            }
        }
示例#5
0
        private static List <string> ValidateGreaterThanZeroDoubleParameter(StructuresParameterRow row, string columnName)
        {
            var messages = new List <string>();

            double value = GetValueFromRowForColumn(row, columnName);

            if (double.IsNaN(value) || double.IsInfinity(value) || value <= 0)
            {
                messages.Add(string.Format(Resources.StructuresParameterRowsValidator_ValidatePositiveDoubleParameter_ParameterId_0_Line_1_ColumnName_2_must_be_greater_than_zero,
                                           row.ParameterId, row.LineNumber, columnName.FirstToUpper()));
            }

            return(messages);
        }
示例#6
0
        private static List <string> ValidatePositiveIntParameter(StructuresParameterRow row, string columnName)
        {
            var messages = new List <string>();

            double value = GetValueFromRowForColumn(row, columnName);

            if (!IsValueWholeNumber(value) || value < 0)
            {
                messages.Add(string.Format(Resources.StructuresParameterRowsValidator_ParameterId_0_Line_1_ColumnName_2_value_must_be_positive_whole_number,
                                           row.ParameterId, row.LineNumber, columnName.FirstToUpper()));
            }

            return(messages);
        }
示例#7
0
        private static List <string> StructureNormalOrientation(StructuresParameterRow row)
        {
            var messages = new List <string>();

            double orientation = row.NumericalValue;

            if (!orientationValidityRange.InRange(orientation))
            {
                messages.Add(string.Format(Resources.StructuresParameterRowsValidator_ParameterId_0_Line_1_ColumnName_2_orientation_out_of_Range_3_,
                                           row.ParameterId, row.LineNumber, StructureFilesKeywords.NumericalValueColumnName.FirstToUpper(),
                                           orientationValidityRange.ToString(FormattableConstants.ShowAtLeastOneDecimal, CultureInfo.CurrentCulture)));
            }

            return(messages);
        }
示例#8
0
        private static List <string> ValidateStochasticVariableParameters(StructuresParameterRow row, bool meanMustBeGreaterThanZero, bool variationAsStandardDeviation)
        {
            List <string> messages = ValidateStochasticVariableMeanParameter(row, meanMustBeGreaterThanZero);

            VarianceType type = row.VarianceType;

            if (type != VarianceType.StandardDeviation && type != VarianceType.CoefficientOfVariation)
            {
                messages.Add(string.Format(Resources.StructuresParameterRowsValidator_ParameterId_0_Line_1_ColumnName_2_invalid_variancetype_value,
                                           row.ParameterId, row.LineNumber, StructureFilesKeywords.VariationTypeColumnName.FirstToUpper()));
            }

            messages.AddRange(ValidatePositiveDoubleParameter(row, StructureFilesKeywords.VariationValueColumnName));

            double mean         = row.NumericalValue;
            double absoluteMean = Math.Abs(mean);

            if (variationAsStandardDeviation)
            {
                if (row.VarianceType == VarianceType.CoefficientOfVariation && absoluteMean < valueTooCloseToZero)
                {
                    messages.Add(string.Format(Resources.StructuresParameterRowsValidator_ParameterId_0_Line_1_ColumnName_2_mean_too_small_for_reliable_variation_value_conversion,
                                               row.ParameterId, row.LineNumber, StructureFilesKeywords.NumericalValueColumnName.FirstToUpper()));
                }
            }
            else
            {
                if (row.VarianceType == VarianceType.StandardDeviation && absoluteMean < valueTooCloseToZero)
                {
                    messages.Add(string.Format(Resources.StructuresParameterRowsValidator_ParameterId_0_Line_1_ColumnName_2_mean_too_small_for_reliable_variation_value_conversion,
                                               row.ParameterId, row.LineNumber, StructureFilesKeywords.NumericalValueColumnName.FirstToUpper()));
                }
            }

            return(messages);
        }
示例#9
0
 private static List <string> NormalDistributionMeanRule(StructuresParameterRow row)
 {
     return(ValidateStochasticVariableMeanParameter(row, false));
 }
示例#10
0
 private static List <string> VariationCoefficientLogNormalDistributionRule(StructuresParameterRow row)
 {
     return(ValidateStochasticVariableParameters(row, true, false));
 }
示例#11
0
 private static List <string> PositiveIntRule(StructuresParameterRow row)
 {
     return(ValidatePositiveIntParameter(row, StructureFilesKeywords.NumericalValueColumnName));
 }
示例#12
0
 private static List <string> DoubleRule(StructuresParameterRow row)
 {
     return(ValidateDoubleParameter(row, StructureFilesKeywords.NumericalValueColumnName));
 }