/// <summary> /// Assembles the assessment section. /// </summary> /// <param name="assessmentSection">The assessment section which contains the failure mechanisms to assemble for.</param> /// <returns>An <see cref="AssessmentSectionAssemblyResultWrapper"/> containing the assembly result of the assessment section.</returns> /// <exception cref="ArgumentNullException">Thrown when <paramref name="assessmentSection"/> is <c>null</c>.</exception> /// <exception cref="AssemblyException">Thrown when <see cref="AssessmentSectionAssemblyResult"/> cannot be created.</exception> public static AssessmentSectionAssemblyResultWrapper AssembleAssessmentSection(AssessmentSection assessmentSection) { if (assessmentSection == null) { throw new ArgumentNullException(nameof(assessmentSection)); } try { IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IAssessmentSectionAssemblyCalculator calculator = calculatorFactory.CreateAssessmentSectionAssemblyCalculator(AssemblyToolKernelFactory.Instance); IEnumerable <double> assemblyResults = GetFailureMechanismAssemblyResults(assessmentSection); FailureMechanismContribution contribution = assessmentSection.FailureMechanismContribution; return(calculator.AssembleAssessmentSection(assemblyResults, contribution.MaximumAllowableFloodingProbability, contribution.SignalFloodingProbability)); } catch (AssessmentSectionAssemblyCalculatorException e) { throw new AssemblyException(e.Message, e); } catch (AssemblyException e) { throw new AssemblyException(Resources.AssessmentSectionAssemblyFactory_Error_while_assembling_failureMechanisms, e); } }
public void Instance_Always_ReturnsAnInstance() { // Call IAssemblyToolCalculatorFactory factory = AssemblyToolCalculatorFactory.Instance; // Assert Assert.IsInstanceOf <AssemblyToolCalculatorFactory>(factory); }
public void Instance_WhenSetToNull_ReturnsNewInstance() { // Setup IAssemblyToolCalculatorFactory firstFactory = AssemblyToolCalculatorFactory.Instance; AssemblyToolCalculatorFactory.Instance = null; // Call IAssemblyToolCalculatorFactory secondFactory = AssemblyToolCalculatorFactory.Instance; // Assert Assert.AreNotSame(firstFactory, secondFactory); }
public void CreateFailureMechanismSectionAssemblyGroupBoundariesCalculator_WithKernelFactory_ReturnsCalculator() { // Setup IAssemblyToolCalculatorFactory factory = AssemblyToolCalculatorFactory.Instance; using (new AssemblyToolKernelFactoryConfig()) { // Call IFailureMechanismSectionAssemblyGroupBoundariesCalculator calculator = factory.CreateFailureMechanismSectionAssemblyGroupBoundariesCalculator( AssemblyToolKernelFactory.Instance); // Assert Assert.IsInstanceOf <FailureMechanismSectionAssemblyGroupBoundariesCalculator>(calculator); } }
public void CreateAssessmentSectionAssemblyCalculator_WithKernelFactory_ReturnsCalculator() { // Setup IAssemblyToolCalculatorFactory factory = AssemblyToolCalculatorFactory.Instance; using (new AssemblyToolKernelFactoryConfig()) { // Call IAssessmentSectionAssemblyCalculator calculator = factory.CreateAssessmentSectionAssemblyCalculator(AssemblyToolKernelFactory.Instance); // Assert Assert.IsInstanceOf <AssessmentSectionAssemblyCalculator>(calculator); } }
public void Instance_WhenSetToInstance_ReturnsThatInstance() { // Setup var mocks = new MockRepository(); var factory = mocks.Stub <IAssemblyToolCalculatorFactory>(); mocks.ReplayAll(); AssemblyToolCalculatorFactory.Instance = factory; // Call IAssemblyToolCalculatorFactory secondFactory = AssemblyToolCalculatorFactory.Instance; // Assert Assert.AreSame(factory, secondFactory); mocks.VerifyAll(); }
/// <summary> /// Assembles the combined failure mechanism sections. /// </summary> /// <param name="assessmentSection">The assessment section that contains all /// the failure mechanism sections to assemble.</param> /// <returns>A collection of <see cref="CombinedFailureMechanismSectionAssemblyResult"/>.</returns> /// <exception cref="ArgumentNullException">Thrown when <paramref name="assessmentSection"/> /// is <c>null</c>.</exception> /// <exception cref="AssemblyException">Thrown when a <see cref="CombinedFailureMechanismSectionAssemblyResult"/> /// cannot be created.</exception> public static IEnumerable <CombinedFailureMechanismSectionAssemblyResult> AssembleCombinedPerFailureMechanismSection( AssessmentSection assessmentSection) { if (assessmentSection == null) { throw new ArgumentNullException(nameof(assessmentSection)); } try { IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IAssessmentSectionAssemblyCalculator calculator = calculatorFactory.CreateAssessmentSectionAssemblyCalculator( AssemblyToolKernelFactory.Instance); Dictionary <IFailureMechanism, int> failureMechanismsToAssemble = assessmentSection.GetFailureMechanisms() .Concat(assessmentSection.SpecificFailureMechanisms) .Where(fm => fm.InAssembly) .Select((fm, i) => new { FailureMechanism = fm, Index = i }) .ToDictionary(x => x.FailureMechanism, x => x.Index); CombinedFailureMechanismSectionAssemblyResultWrapper output = calculator.AssembleCombinedFailureMechanismSections( CombinedAssemblyFailureMechanismSectionFactory.CreateInput(assessmentSection, failureMechanismsToAssemble.Keys), assessmentSection.ReferenceLine.Length); return(CombinedFailureMechanismSectionAssemblyResultFactory.Create(output, failureMechanismsToAssemble, assessmentSection)); } catch (AssessmentSectionAssemblyCalculatorException e) { throw new AssemblyException(e.Message, e); } catch (AssemblyException e) { throw new AssemblyException(Resources.AssessmentSectionAssemblyFactory_Error_while_assembling_failureMechanisms, e); } }
/// <summary> /// Creates a new instance of <see cref="AssemblyToolCalculatorFactoryConfig"/>. /// Sets a <see cref="TestAssemblyToolCalculatorFactory"/> to <see cref="AssemblyToolCalculatorFactory.Instance"/> /// </summary> public AssemblyToolCalculatorFactoryConfig() { previousFactory = AssemblyToolCalculatorFactory.Instance; AssemblyToolCalculatorFactory.Instance = new TestAssemblyToolCalculatorFactory(); }