private static void TestProbabilisticFailureMechanismsResults(BenchmarkTestInput input, BenchmarkTestResult result) { result.MethodResults.Wbi2B1 = false; AssessmentSectionResult assemblerResult = null; try { var assembler = new AssessmentGradeAssembler(); assemblerResult = assembler.AssembleAssessmentSectionWbi2B1( input.ExpectedFailureMechanismsResults.Select(fmr => fmr.ExpectedCombinedProbability), input.ExpectedAssessmentSectionCategories, false); } catch (AssemblyException) { Assert.IsTrue(input.ExpectedSafetyAssessmentAssemblyResult.ExpectedCombinedAssessmentGrade == EExpectedAssessmentGrade.Exception); result.AreEqualAssemblyResultFinalVerdict = true; result.AreEqualAssemblyResultFinalVerdictProbability = true; result.MethodResults.Wbi2B1 = true; return; } Assert.IsNotNull(assemblerResult); AssertHelper.AssertAreEqualProbabilities( input.ExpectedSafetyAssessmentAssemblyResult.ExpectedCombinedProbability, new Probability(assemblerResult.FailureProbability)); Assert.AreEqual( input.ExpectedSafetyAssessmentAssemblyResult.ExpectedCombinedAssessmentGrade.ToEAssessmentGrade(), assemblerResult.Category); result.AreEqualAssemblyResultFinalVerdict = true; result.AreEqualAssemblyResultFinalVerdictProbability = true; result.MethodResults.Wbi2B1 = true; }
protected override void TestAssessmentSectionResultInternal() { var assembler = new FailureMechanismResultAssembler(); if (ExpectedFailureMechanismResult != null) { FailureMechanismAssemblyResult result = null; try { result = assembler.AssembleFailureMechanismWbi1B1( ExpectedFailureMechanismResult.LengthEffectFactor, ExpectedFailureMechanismResult.Sections.OfType <ExpectedFailureMechanismSection>() .Select(s => new FailureMechanismSectionAssemblyResult(s.ExpectedCombinedProbabilitySection, s.ExpectedCombinedProbabilitySection, s.ExpectedInterpretationCategory)).ToArray(), false); } catch (AssemblyException e) { result = new FailureMechanismAssemblyResult(Probability.NaN, EFailureMechanismAssemblyMethod.Correlated); } AssertHelper.AssertAreEqualProbabilities(ExpectedFailureMechanismResult.ExpectedCombinedProbability, result.Probability); Assert.AreEqual(ExpectedFailureMechanismResult.ExpectedIsSectionsCorrelated, result.AssemblyMethod); } }
protected override void TestAssessmentSectionResultTemporalInternal() { var assembler = new FailureMechanismResultAssembler(); if (ExpectedFailureMechanismResult != null) { var result = assembler.AssembleFailureMechanismWbi1B1( ExpectedFailureMechanismResult.LengthEffectFactor, ExpectedFailureMechanismResult.Sections.OfType <ExpectedFailureMechanismSection>() .Select(s => new FailureMechanismSectionAssemblyResult(s.ExpectedCombinedProbabilitySection, s.ExpectedCombinedProbabilitySection, s.ExpectedInterpretationCategory)).ToArray(), true); AssertHelper.AssertAreEqualProbabilities(ExpectedFailureMechanismResult.ExpectedCombinedProbabilityTemporal, result.Probability); Assert.AreEqual(ExpectedFailureMechanismResult.ExpectedIsSectionsCorrelatedTemporal, result.AssemblyMethod); } }
protected override void TestCombinedAssessmentInternal() { var assembler = new AssessmentResultsTranslator(); if (ExpectedFailureMechanismResult != null) { var exception = new AssertionException("Errors occurred"); foreach (var section in ExpectedFailureMechanismResult.Sections.OfType <ExpectedFailureMechanismSectionWithLengthEffect>()) { // WBI-0A-1 (direct with probability) var result = assembler.TranslateAssessmentResultWbi0A2( section.IsRelevant ? double.IsNaN(section.InitialMechanismProbabilitySection) || double.IsNaN(section.InitialMechanismProbabilityProfile) ? ESectionInitialMechanismProbabilitySpecification.RelevantNoProbabilitySpecification : ESectionInitialMechanismProbabilitySpecification.RelevantWithProbabilitySpecification : ESectionInitialMechanismProbabilitySpecification.NotRelevant, section.InitialMechanismProbabilityProfile, section.InitialMechanismProbabilitySection, section.RefinementStatus, section.RefinedProbabilityProfile, section.RefinedProbabilitySection, InterpretationCategories); try { AssertHelper.AssertAreEqualProbabilities(section.ExpectedCombinedProbabilitySection, result.ProbabilitySection); Assert.AreEqual(section.ExpectedInterpretationCategory, result.InterpretationCategory); } catch (AssertionException e) { exception.Data.Add(section.SectionName, e); } } if (exception.Data.Count > 0) { throw exception; } } }