public CalculationOutput <FailureMechanismSectionCategoryGroup> CombinedAssessmentFromFailureMechanismSectionResults( FailureMechanismSectionCategoryGroup resultSimpleAssessment, FailureMechanismSectionCategoryGroup resultDetailedAssessment, FailureMechanismSectionCategoryGroup resultTailorMadeAssessment) { var tailorMadeAssessmentCategorySeven = resultTailorMadeAssessment == FailureMechanismSectionCategoryGroup.VIIv; if (!tailorMadeAssessmentCategorySeven && resultTailorMadeAssessment != FailureMechanismSectionCategoryGroup.None) { return(new CalculationOutput <FailureMechanismSectionCategoryGroup>(resultTailorMadeAssessment)); } var detailedAssessmentCategorySeven = resultDetailedAssessment == FailureMechanismSectionCategoryGroup.VIIv; if (!detailedAssessmentCategorySeven && resultDetailedAssessment != FailureMechanismSectionCategoryGroup.None) { return(new CalculationOutput <FailureMechanismSectionCategoryGroup>(resultDetailedAssessment)); } var simpleAssessmentCategorySeven = resultSimpleAssessment == FailureMechanismSectionCategoryGroup.VIIv; if (!simpleAssessmentCategorySeven && resultSimpleAssessment != FailureMechanismSectionCategoryGroup.None) { return(new CalculationOutput <FailureMechanismSectionCategoryGroup>(resultSimpleAssessment)); } if (tailorMadeAssessmentCategorySeven || detailedAssessmentCategorySeven || simpleAssessmentCategorySeven) { return(new CalculationOutput <FailureMechanismSectionCategoryGroup>(FailureMechanismSectionCategoryGroup.VIIv)); } return(new CalculationOutput <FailureMechanismSectionCategoryGroup>(FailureMechanismSectionCategoryGroup.None)); }
public void CombinedAssessmentFromFailureMechanismSectionResultsSelectsCorrectResult( FailureMechanismSectionCategoryGroup simpleAssessmentResult, FailureMechanismSectionCategoryGroup detailedAssessmentResult, FailureMechanismSectionCategoryGroup tailorMadeAssessmentResult, FailureMechanismSectionCategoryGroup expectedCategoryGroup) { var calculationOutput = new FailureMechanismSectionAssemblyCalculator().CombinedAssessmentFromFailureMechanismSectionResults(simpleAssessmentResult, detailedAssessmentResult, tailorMadeAssessmentResult); Assert.IsNotNull(calculationOutput); Assert.IsEmpty(calculationOutput.WarningMessages); Assert.AreEqual(expectedCategoryGroup, calculationOutput.Result); }
public void CombinedAssessmentFromFailureMechanismSectionResultsWithProbabilitiesSelectsCorrectResult( FailureMechanismSectionCategoryGroup simpleAssessmentResult, double simpleAssessmentProbabilityValue, FailureMechanismSectionCategoryGroup detailedAssessmentResult, double detailedAssessmentProbabilityValue, FailureMechanismSectionCategoryGroup tailorMadeAssessmentResult, double tailorMadeAssessmentProbabilityValue, FailureMechanismSectionCategoryGroup expectedCategoryGroup, double expectedProbabilityValue) { var calculationOutput = new FailureMechanismSectionAssemblyCalculator().CombinedAssessmentFromFailureMechanismSectionResults( new FailureMechanismSectionAssemblyCategoryResult(simpleAssessmentResult, (Probability)simpleAssessmentProbabilityValue), new FailureMechanismSectionAssemblyCategoryResult(detailedAssessmentResult, (Probability)detailedAssessmentProbabilityValue), new FailureMechanismSectionAssemblyCategoryResult(tailorMadeAssessmentResult, (Probability)tailorMadeAssessmentProbabilityValue)); Assert.IsNotNull(calculationOutput); Assert.IsEmpty(calculationOutput.WarningMessages); Assert.AreEqual(expectedCategoryGroup, calculationOutput.Result.CategoryGroup); Assert.AreEqual(expectedProbabilityValue, calculationOutput.Result.EstimatedProbabilityOfFailure); }
public void SimpleAssessmentDirectFailureMechanismsValidityOnlyResultsCorrectCategory(SimpleCalculationResultValidityOnly calculationResult, FailureMechanismSectionCategoryGroup expectedResult, double expectedProbability) { var calculationOutput = new FailureMechanismSectionAssemblyCalculator().SimpleAssessmentDirectFailureMechanisms(calculationResult); Assert.IsNotNull(calculationOutput); Assert.IsEmpty(calculationOutput.WarningMessages); Assert.IsNotNull(calculationOutput.Result); Assert.AreEqual(expectedResult, calculationOutput.Result.CategoryGroup); Assert.AreEqual(expectedProbability, calculationOutput.Result.EstimatedProbabilityOfFailure); }
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 TailorMadeAssessmentDirectFailureMechanismsFromProbabilityWithNValueReturnsCorrectCategoryNoProbability(TailorMadeProbabilityCalculationResultGroup resultGroup, FailureMechanismSectionCategoryGroup expectedCategoryGroup, double expectedProbability) { var input = new TailorMadeCalculationInputFromProbabilityWithLengthEffectFactor( new TailorMadeProbabilityCalculationResult(resultGroup), new[] { new FailureMechanismSectionCategory(FailureMechanismSectionCategoryGroup.Iv, (Probability)0, (Probability)1) }, 1.234); 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(expectedProbability, calculationOutput.Result.EstimatedProbabilityOfFailure); }
public void TailorMadeAssessmentDirectFailureMechanismsFromCategoryResultReturnsCorrectCategory(TailorMadeCategoryCalculationResult result, FailureMechanismSectionCategoryGroup expectedCategoryGroup) { var calculationOutput = new FailureMechanismSectionAssemblyCalculator().TailorMadeAssessmentDirectFailureMechanisms(result); Assert.IsNotNull(calculationOutput); Assert.IsEmpty(calculationOutput.WarningMessages); Assert.AreEqual(expectedCategoryGroup, calculationOutput.Result); }
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); }
public void DetailedAssessmentDirectFailureMechanismsFromProbabilityWithNValueReturnsCorrectResult(double probability, double nValue, FailureMechanismSectionCategoryGroup expectedCategoryGroup, double expectedProbabilityWithoutNMultiplication) { 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 input = new DetailedCalculationInputFromProbabilityWithLengthEffect((Probability)probability, categories, nValue); var calculationOutput = new FailureMechanismSectionAssemblyCalculator().DetailedAssessmentDirectFailureMechanisms(input); Assert.IsNotNull(calculationOutput); var expectedProbability = expectedProbabilityWithoutNMultiplication * 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(1, expectedProbability), calculationOutput.Result.EstimatedProbabilityOfFailure); }
public void DetailedAssessmentDirectFailureMechanismsGroupThreeReturnsCorrectCategory(DetailedCalculationResult iToII, DetailedCalculationResult iIToIII, DetailedCalculationResult iIIToIV, DetailedCalculationResult iVToV, DetailedCalculationResult vToVI, FailureMechanismSectionCategoryGroup expectedCategoryGroup) { var input = new DetailedCategoryBoundariesCalculationResult(iToII, iIToIII, iIIToIV, iVToV, vToVI); var calculationOutput = new FailureMechanismSectionAssemblyCalculator().DetailedAssessmentDirectFailureMechanisms(input); Assert.IsNotNull(calculationOutput); Assert.IsEmpty(calculationOutput.WarningMessages); Assert.IsNotNull(calculationOutput.Result); Assert.AreEqual(expectedCategoryGroup, calculationOutput.Result); }
public void DetailedAssessmentDirectFailureMechanismsFromProbabilitySelectsCorrectCategory(double probability, FailureMechanismSectionCategoryGroup expectedCategoryGroup, double expectedProbability) { 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 input = new DetailedCalculationInputFromProbability((Probability)probability, categories); var calculationOutput = new FailureMechanismSectionAssemblyCalculator().DetailedAssessmentDirectFailureMechanisms(input); Assert.IsNotNull(calculationOutput); Assert.IsEmpty(calculationOutput.WarningMessages); Assert.IsNotNull(calculationOutput.Result); Assert.AreEqual(expectedCategoryGroup, calculationOutput.Result.CategoryGroup); Assert.AreEqual(expectedProbability, calculationOutput.Result.EstimatedProbabilityOfFailure); }
public void DetailedAssessmentDirectFailureMechanismsFromResultTranslatesResultCorrectly(DetailedCalculationResult result, FailureMechanismSectionCategoryGroup expectedCategoryGroup) { var calculationOutput = new FailureMechanismSectionAssemblyCalculator().DetailedAssessmentDirectFailureMechanisms(result); Assert.IsNotNull(calculationOutput); Assert.IsEmpty(calculationOutput.WarningMessages); Assert.AreEqual(expectedCategoryGroup, calculationOutput.Result); }
public FailureMechanismSectionAssemblyCategoryResult(FailureMechanismSectionCategoryGroup categoryGroup, Probability estimatedProbabilityOfFailure) { CategoryGroup = categoryGroup; EstimatedProbabilityOfFailure = estimatedProbabilityOfFailure; }