コード例 #1
0
        public void TailorMadeAssessmentDirectFailureMechanismsFromProbabilityWithNValueReturnsCorrectCategoryFromProbability(double probabilityValue, FailureMechanismSectionCategoryGroup expectedCategoryGroup)
        {
            var categories = new[]
            {
                new FailureMechanismSectionCategory(FailureMechanismSectionCategoryGroup.Iv, (Probability)0, (Probability)0.1),
                new FailureMechanismSectionCategory(FailureMechanismSectionCategoryGroup.IIv, (Probability)0.1, (Probability)0.2),
                new FailureMechanismSectionCategory(FailureMechanismSectionCategoryGroup.IIIv, (Probability)0.2, (Probability)0.3),
                new FailureMechanismSectionCategory(FailureMechanismSectionCategoryGroup.IVv, (Probability)0.3, (Probability)0.4),
                new FailureMechanismSectionCategory(FailureMechanismSectionCategoryGroup.Vv, (Probability)0.4, (Probability)0.5),
                new FailureMechanismSectionCategory(FailureMechanismSectionCategoryGroup.VIv, (Probability)0.5, (Probability)1),
            };

            var          probability       = (Probability)probabilityValue;
            var          result            = new TailorMadeProbabilityCalculationResult(probability);
            const double nValue            = 1.234;
            var          input             = new TailorMadeCalculationInputFromProbabilityWithLengthEffectFactor(result, categories, nValue);
            var          calculationOutput = new FailureMechanismSectionAssemblyCalculator().TailorMadeAssessmentDirectFailureMechanisms(input);

            Assert.IsNotNull(calculationOutput);
            var expectedProbability = probabilityValue * nValue;

            if (expectedProbability > 1)
            {
                Assert.AreEqual(1, calculationOutput.WarningMessages.Length);
                Assert.AreEqual(WarningMessage.CorrectedProbability, calculationOutput.WarningMessages[0]);
            }
            else
            {
                Assert.IsEmpty(calculationOutput.WarningMessages);
            }
            Assert.IsNotNull(calculationOutput.Result);
            Assert.AreEqual(expectedCategoryGroup, calculationOutput.Result.CategoryGroup);
            Assert.AreEqual(Math.Min(expectedProbability, 1.0), calculationOutput.Result.EstimatedProbabilityOfFailure);
        }
        public void EnumConstructorPassesInputCorrectly(TailorMadeProbabilityCalculationResultGroup resultGroup)
        {
            var probabilityAssessmentResult = new TailorMadeProbabilityCalculationResult(resultGroup);

            Assert.AreEqual(resultGroup, probabilityAssessmentResult.CalculationResultGroup);
            Assert.AreEqual(default(Probability), probabilityAssessmentResult.Probability);
        }
コード例 #3
0
 private static void ValidateResult(TailorMadeProbabilityCalculationResult result)
 {
     if (result == null)
     {
         throw new AssemblyToolKernelException(ErrorCode.InputIsNull);
     }
 }
        public void ProbabilityConstructorPassesInputCorrectly()
        {
            var probability = (Probability)0.01;
            var probabilityAssessmentResult = new TailorMadeProbabilityCalculationResult(probability);

            Assert.AreEqual(TailorMadeProbabilityCalculationResultGroup.Probability, probabilityAssessmentResult.CalculationResultGroup);
            Assert.AreEqual(probability, probabilityAssessmentResult.Probability);
        }
コード例 #5
0
        /// <summary>
        /// This class is inteded to be used as input in <see cref="IFailureMechanismSectionAssemblyCalculator.TailorMadeAssessmentDirectFailureMechanisms(TailorMadeCalculationInputFromProbability)"/>.
        /// </summary>
        /// <param name="result">The specified tailor made calculation result.</param>
        /// <param name="categories">The categories for this failure mechanisms obtained with <see cref="CategoriesCalculator.CalculateFailureMechanismSectionCategories"/>.</param>
        /// <exception cref="AssemblyToolKernelException">Thrown when the <see cref="result"/> equals null.</exception>
        /// <exception cref="AssemblyToolKernelException">Thrown when <see cref="categories"/> equals null or an emtpy list.</exception>
        public TailorMadeCalculationInputFromProbability(TailorMadeProbabilityCalculationResult result, FailureMechanismSectionCategory[] categories)
        {
            ValidateResult(result);
            ValidateCategories(categories);

            Result     = result;
            Categories = categories;
        }
 public void EnumConstructorThrowsOnWrongEnumValue()
 {
     try
     {
         var probabilityAssessmentResult = new TailorMadeProbabilityCalculationResult(TailorMadeProbabilityCalculationResultGroup.Probability);
         Assert.Fail("Exception was expoected.");
     }
     catch (AssemblyToolKernelException e)
     {
         Assert.AreEqual(1, e.Code.Length);
         Assert.AreEqual(ErrorCode.NoProbabilityAllowedInConstructor, e.Code[0]);
     }
 }
コード例 #7
0
        public void TailorMadeAssessmentDirectFailureMechanismsFromProbabilityReturnsCorrectCategoryFromProbability(double probabilityValue, FailureMechanismSectionCategoryGroup expectedCategoryGroup)
        {
            var categories = new[]
            {
                new FailureMechanismSectionCategory(FailureMechanismSectionCategoryGroup.Iv, (Probability)0, (Probability)0.1),
                new FailureMechanismSectionCategory(FailureMechanismSectionCategoryGroup.IIv, (Probability)0.1, (Probability)0.2),
                new FailureMechanismSectionCategory(FailureMechanismSectionCategoryGroup.IIIv, (Probability)0.2, (Probability)0.3),
                new FailureMechanismSectionCategory(FailureMechanismSectionCategoryGroup.IVv, (Probability)0.3, (Probability)0.4),
                new FailureMechanismSectionCategory(FailureMechanismSectionCategoryGroup.Vv, (Probability)0.4, (Probability)0.5),
                new FailureMechanismSectionCategory(FailureMechanismSectionCategoryGroup.VIv, (Probability)0.5, (Probability)1),
            };

            var probability       = (Probability)probabilityValue;
            var result            = new TailorMadeProbabilityCalculationResult(probability);
            var input             = new TailorMadeCalculationInputFromProbability(result, categories);
            var calculationOutput = new FailureMechanismSectionAssemblyCalculator().TailorMadeAssessmentDirectFailureMechanisms(input);

            Assert.IsNotNull(calculationOutput);
            Assert.IsEmpty(calculationOutput.WarningMessages);
            Assert.IsNotNull(calculationOutput.Result);
            Assert.AreEqual(expectedCategoryGroup, calculationOutput.Result.CategoryGroup);
            Assert.AreEqual(probability, calculationOutput.Result.EstimatedProbabilityOfFailure);
        }
コード例 #8
0
 /// <summary>
 /// This class is inteded to be used as input in <see cref="IFailureMechanismSectionAssemblyCalculator.TailorMadeAssessmentDirectFailureMechanisms(TailorMadeCalculationInputFromProbabilityWithLengthEffectFactor)"/>.
 /// </summary>
 /// <param name="result">The calculation result that needs to be translated.</param>
 /// <param name="categories">The list of categories for this failure mechanism that is used in case of a probability result, obtained with <see cref="CategoriesCalculator.CalculateFailureMechanismSectionCategories"/></param>
 /// <param name="nValue">The length effect factor for the failuremechanism section that is being considered.</param>
 /// <returns><see cref="CalculationOutput{TResult}"/> containing the determined <see cref="FailureMechanismSectionCategoryGroup"/>.</returns>
 /// <exception cref="AssemblyToolKernelException">Thrown when the <see cref="result"/> equals null.</exception>
 /// <exception cref="AssemblyToolKernelException">Thrown when the <see cref="nValue"/> is NaN or smaller than 1.</exception>
 public TailorMadeCalculationInputFromProbabilityWithLengthEffectFactor(TailorMadeProbabilityCalculationResult result, FailureMechanismSectionCategory[] categories, double nValue) : base(result, categories)
 {
     ValidateNValue(nValue);
     NValue = nValue;
 }