public void TailorMadeAssessmentDirectFailureMechanismsFromProbabilityThrowsOnInvalidEnum() { const TailorMadeProbabilityCalculationResultGroup invalidEnum = (TailorMadeProbabilityCalculationResultGroup)15; var input = new TailorMadeCalculationInputFromProbability( new TailorMadeProbabilityCalculationResult(invalidEnum), new[] { new FailureMechanismSectionCategory(FailureMechanismSectionCategoryGroup.Iv, (Probability)0, (Probability)1) }); Assert.Throws <InvalidEnumArgumentException>(() => new FailureMechanismSectionAssemblyCalculator().TailorMadeAssessmentDirectFailureMechanisms(input)); }
public void TailorMadeAssessmentDirectFailureMechanismsFromProbabilityReturnsCorrectCategoryNoProbability(TailorMadeProbabilityCalculationResultGroup resultGroup, FailureMechanismSectionCategoryGroup expectedCategoryGroup, double expectedProbability) { var input = new TailorMadeCalculationInputFromProbability( new TailorMadeProbabilityCalculationResult(resultGroup), new[] { new FailureMechanismSectionCategory(FailureMechanismSectionCategoryGroup.Iv, (Probability)0, (Probability)1) }); 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 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 CalculationOutput <FailureMechanismSectionAssemblyCategoryResult> TailorMadeAssessmentDirectFailureMechanisms(TailorMadeCalculationInputFromProbability input) { if (input == null) { throw new AssemblyToolKernelException(ErrorCode.InputIsNull); } switch (input.Result.CalculationResultGroup) { case TailorMadeProbabilityCalculationResultGroup.FV: return(new CalculationOutput <FailureMechanismSectionAssemblyCategoryResult>(new FailureMechanismSectionAssemblyCategoryResult(FailureMechanismSectionCategoryGroup.Iv, (Probability)0))); case TailorMadeProbabilityCalculationResultGroup.NGO: return(new CalculationOutput <FailureMechanismSectionAssemblyCategoryResult>(new FailureMechanismSectionAssemblyCategoryResult(FailureMechanismSectionCategoryGroup.VIIv, Probability.NaN))); case TailorMadeProbabilityCalculationResultGroup.None: return(new CalculationOutput <FailureMechanismSectionAssemblyCategoryResult>(new FailureMechanismSectionAssemblyCategoryResult(FailureMechanismSectionCategoryGroup.None, Probability.NaN))); case TailorMadeProbabilityCalculationResultGroup.Probability: return(DetailedAssessmentDirectFailureMechanisms(new DetailedCalculationInputFromProbability(input.Result.Probability, input.Categories))); default: throw new InvalidEnumArgumentException(); } }