/// <summary> /// Tests the interpretation categories. /// </summary> /// <param name="input">The input.</param> /// <param name="result">The result.</param> public static void TestEqualInterpretationCategories(BenchmarkTestInput input, BenchmarkTestResult result) { var calculator = new CategoryLimitsCalculator(); // WBI-2-1 CategoriesList <InterpretationCategory> categories = calculator.CalculateInterpretationCategoryLimitsWbi03( new AssessmentSection((Probability)input.SignalingNorm, (Probability)input.LowerBoundaryNorm)); CategoriesList <InterpretationCategory> expectedCategories = input.ExpectedInterpretationCategories; result.AreEqualCategoriesListInterpretationCategories = AssertHelper.AssertEqualCategoriesList <InterpretationCategory, EInterpretationCategory>( expectedCategories, categories); result.MethodResults.Wbi03 = result.AreEqualCategoriesListInterpretationCategories; }
public void FullAssembly() { const int sectionLength = 3750; var section = new AssessmentSection((Probability)1.0E-3, (Probability)(1.0 / 300.0)); var failureMechanismSectionResultsDictionary = new Dictionary <double, List <FailureMechanismSection> >(); var failureMechanismSectionLists = new List <FailureMechanismSectionList>(); // create section results for 15 failure mechanisms with 250 sections each CreateTestInput(sectionLength, failureMechanismSectionResultsDictionary); // start timer var watch = Stopwatch.StartNew(); var failureMechanismResultsWithFailureProb = new List <FailureMechanismAssemblyResult>(); // assembly step 1 var categoriesCalculator = new CategoryLimitsCalculator(); foreach (var failureMechanismSectionResults in failureMechanismSectionResultsDictionary) { var result = failureMechanismResultAssembler.AssembleFailureMechanismWbi1B1( failureMechanismSectionResults.Key, failureMechanismSectionResults.Value.Select(failureMechanismSection => failureMechanismSection.Result), false); failureMechanismResultsWithFailureProb.Add(result); failureMechanismSectionLists.Add(CreateFailureMechanismSectionListForStep3(failureMechanismSectionResults.Value)); } // assembly step 2 var categories = categoriesCalculator.CalculateAssessmentSectionCategoryLimitsWbi21(section); var assessmentGradeWithFailureProb = assessmentSectionAssembler.AssembleAssessmentSectionWbi2B1(failureMechanismResultsWithFailureProb.Select(r => r.Probability).ToArray(), categories, false); // assembly step 3 combinedSectionAssembler.AssembleCommonFailureMechanismSections(failureMechanismSectionLists, sectionLength, false); watch.Stop(); var elapsedMs = watch.Elapsed.TotalMilliseconds; Console.Out.WriteLine($"Elapsed time since start of assembly: {elapsedMs} ms (max: 1000 ms)"); }