public void AssembleAssessmentSection_KernelWithCompleteOutput_OutputCorrectlyReturnedByCalculator()
        {
            // Setup
            var    random = new Random(21);
            double signalFloodingProbability           = random.NextDouble();
            double maximumAllowableFloodingProbability = signalFloodingProbability + 1e-3;

            using (new AssemblyToolKernelFactoryConfig())
            {
                var factory = (TestAssemblyToolKernelFactory)AssemblyToolKernelFactory.Instance;
                AssessmentSectionAssemblyKernelStub kernel = factory.LastCreatedAssessmentSectionAssemblyKernel;
                var assemblyProbability = new Probability(random.NextDouble());
                var assemblyGroup       = random.NextEnumValue <EAssessmentGrade>();
                kernel.AssemblyProbability = assemblyProbability;
                kernel.AssemblyGroup       = assemblyGroup;

                var calculator = new AssessmentSectionAssemblyCalculator(factory);

                // Call
                AssessmentSectionAssemblyResultWrapper resultWrapper = calculator.AssembleAssessmentSection(
                    Enumerable.Empty <double>(), maximumAllowableFloodingProbability, signalFloodingProbability);

                // Assert
                AssessmentSectionAssemblyResult result = resultWrapper.AssemblyResult;
                Assert.AreEqual(assemblyProbability, result.Probability);
                Assert.AreEqual(AssessmentSectionAssemblyGroupCreator.CreateAssessmentSectionAssemblyGroup(assemblyGroup),
                                result.AssemblyGroup);
                Assert.AreEqual(AssemblyMethod.BOI2A1, resultWrapper.ProbabilityMethod);
                Assert.AreEqual(AssemblyMethod.BOI2B1, resultWrapper.AssemblyGroupMethod);
            }
        }
Exemple #2
0
        /// <summary>
        /// Creates an <see cref="ExportableAssessmentSectionAssemblyResult"/> with the assembly result
        /// based on <paramref name="assessmentSection"/>.
        /// </summary>
        /// <param name="assessmentSection">The assessment section to create an <see cref="ExportableAssessmentSectionAssemblyResult"/> for.</param>
        /// <returns>An <see cref="ExportableAssessmentSectionAssemblyResult"/> with assembly result.</returns>
        /// <exception cref="AssemblyException">Thrown when assembly result cannot be created for <paramref name="assessmentSection"/>.</exception>
        private static ExportableAssessmentSectionAssemblyResult CreateExportableAssessmentSectionAssemblyResult(AssessmentSection assessmentSection)
        {
            AssessmentSectionAssemblyResultWrapper assemblyResultWrapper = AssessmentSectionAssemblyFactory.AssembleAssessmentSection(assessmentSection);
            AssessmentSectionAssemblyResult        assemblyResult        = assemblyResultWrapper.AssemblyResult;

            return(new ExportableAssessmentSectionAssemblyResult(
                       assemblyResult.AssemblyGroup, assemblyResult.Probability,
                       ExportableAssemblyMethodFactory.Create(assemblyResultWrapper.AssemblyGroupMethod),
                       ExportableAssemblyMethodFactory.Create(assemblyResultWrapper.ProbabilityMethod)));
        }
        public AssessmentSectionAssemblyResultWrapper AssembleAssessmentSection(IEnumerable <double> failureMechanismProbabilities, double maximumAllowableFloodingProbability, double signalFloodingProbability)
        {
            if (ThrowExceptionOnCalculate)
            {
                throw new AssessmentSectionAssemblyCalculatorException("Message", new Exception());
            }

            FailureMechanismProbabilitiesInput       = failureMechanismProbabilities;
            MaximumAllowableFloodingProbabilityInput = maximumAllowableFloodingProbability;
            SignalFloodingProbability = signalFloodingProbability;

            return(AssessmentSectionAssemblyResult ?? (AssessmentSectionAssemblyResult =
                                                           new AssessmentSectionAssemblyResultWrapper(
                                                               new AssessmentSectionAssemblyResult(0.14, AssessmentSectionAssemblyGroup.APlus),
                                                               AssemblyMethod.BOI2A1, AssemblyMethod.BOI2B1)));
        }
Exemple #4
0
        public void AssembleAssessmentSection_AssemblyRan_ReturnsOutput()
        {
            // Setup
            AssessmentSection assessmentSection = CreateAssessmentSectionContainingFailureMechanismsWithInAssemblyTrue();

            using (new AssemblyToolCalculatorFactoryConfig())
            {
                var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance;
                AssessmentSectionAssemblyCalculatorStub assessmentSectionAssemblyCalculator = calculatorFactory.LastCreatedAssessmentSectionAssemblyCalculator;

                // Call
                AssessmentSectionAssemblyResultWrapper result = AssessmentSectionAssemblyFactory.AssembleAssessmentSection(assessmentSection);

                // Assert
                Assert.AreSame(assessmentSectionAssemblyCalculator.AssessmentSectionAssemblyResult, result);
            }
        }
        public void Constructor_ExpectedValues()
        {
            // Setup
            var random         = new Random(21);
            var assemblyResult = new AssessmentSectionAssemblyResult(
                random.NextDouble(), random.NextEnumValue <AssessmentSectionAssemblyGroup>());
            var probabilityMethod   = random.NextEnumValue <AssemblyMethod>();
            var assemblyGroupMethod = random.NextEnumValue <AssemblyMethod>();

            // Call
            var wrapper = new AssessmentSectionAssemblyResultWrapper(assemblyResult, probabilityMethod, assemblyGroupMethod);

            // Assert
            Assert.AreSame(assemblyResult, wrapper.AssemblyResult);
            Assert.AreEqual(probabilityMethod, wrapper.ProbabilityMethod);
            Assert.AreEqual(assemblyGroupMethod, wrapper.AssemblyGroupMethod);
        }