public void CalculateFailureMechanismSectionAssemblyGroupBoundaries_KernelWithCompleteOutput_ReturnsExpectedFailureMechanismSectionAssembly() { // Setup const double maximumAllowableFloodingProbability = 0.001; const double signalFloodingProbability = 0.0001; using (new AssemblyToolKernelFactoryConfig()) { var factory = (TestAssemblyToolKernelFactory)AssemblyToolKernelFactory.Instance; AssemblyCategoryLimitsKernelStub categoryLimitsKernel = factory.LastCreatedAssemblyCategoryLimitsKernel; CategoriesList <InterpretationCategory> interpretationCategories = CreateInterpretationCategories(); categoryLimitsKernel.InterpretationCategoryLimits = interpretationCategories; var calculator = new FailureMechanismSectionAssemblyGroupBoundariesCalculator(factory); // Call IEnumerable <FailureMechanismSectionAssemblyGroupBoundaries> result = calculator.CalculateFailureMechanismSectionAssemblyGroupBoundaries(signalFloodingProbability, maximumAllowableFloodingProbability); // Assert Assert.IsTrue(categoryLimitsKernel.Calculated); FailureMechanismSectionAssemblyGroupBoundariesAssert.AssertFailureMechanismSectionAssemblyGroupBoundaries(interpretationCategories, result); } }
public void CalculateFailureMechanismSectionAssemblyGroupBoundaries_KernelThrowsAssemblyException_ThrowsAssemblyGroupBoundariesCalculatorException() { // Setup const double maximumAllowableFloodingProbability = 0.001; const double signalFloodingProbability = 0.0001; using (new AssemblyToolKernelFactoryConfig()) { var factory = (TestAssemblyToolKernelFactory)AssemblyToolKernelFactory.Instance; AssemblyCategoryLimitsKernelStub categoryLimitsKernel = factory.LastCreatedAssemblyCategoryLimitsKernel; categoryLimitsKernel.ThrowAssemblyExceptionOnCalculate = true; var calculator = new FailureMechanismSectionAssemblyGroupBoundariesCalculator(factory); // Call void Call() => calculator.CalculateFailureMechanismSectionAssemblyGroupBoundaries(signalFloodingProbability, maximumAllowableFloodingProbability); // Assert Assert.IsFalse(categoryLimitsKernel.Calculated); var exception = Assert.Throws <FailureMechanismSectionAssemblyGroupBoundariesCalculatorException>(Call); var innerException = exception.InnerException as AssemblyException; Assert.IsNotNull(innerException); Assert.AreEqual(AssemblyErrorMessageCreator.CreateErrorMessage(innerException.Errors), exception.Message); } }
public void CalculateFailureMechanismSectionAssemblyGroupBoundaries_KernelWithInCompleteOutput_ThrowsAssemblyGroupBoundariesCalculatorException() { // Setup const double maximumAllowableFloodingProbability = 0.001; const double signalFloodingProbability = 0.0001; using (new AssemblyToolKernelFactoryConfig()) { var factory = (TestAssemblyToolKernelFactory)AssemblyToolKernelFactory.Instance; AssemblyCategoryLimitsKernelStub categoryLimitsKernel = factory.LastCreatedAssemblyCategoryLimitsKernel; var interpretationCategories = new CategoriesList <InterpretationCategory>(new[] { new InterpretationCategory((EInterpretationCategory)99, new Probability(0), new Probability(1)) }); categoryLimitsKernel.InterpretationCategoryLimits = interpretationCategories; var calculator = new FailureMechanismSectionAssemblyGroupBoundariesCalculator(factory); // Call void Call() => calculator.CalculateFailureMechanismSectionAssemblyGroupBoundaries(signalFloodingProbability, maximumAllowableFloodingProbability); // Assert var exception = Assert.Throws <FailureMechanismSectionAssemblyGroupBoundariesCalculatorException>(Call); Assert.IsInstanceOf <Exception>(exception.InnerException); Assert.AreEqual(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), exception.Message); Assert.IsTrue(categoryLimitsKernel.Calculated); } }
public void Constructor_ExpectedValues() { // Setup var mocks = new MockRepository(); var factory = mocks.Stub <IAssemblyToolKernelFactory>(); mocks.ReplayAll(); // Call var calculator = new FailureMechanismSectionAssemblyGroupBoundariesCalculator(factory); // Assert Assert.IsInstanceOf <IFailureMechanismSectionAssemblyGroupBoundariesCalculator>(calculator); mocks.VerifyAll(); }
public void CalculateFailureMechanismSectionAssemblyGroupBoundaries_WithValidInput_InputCorrectlySentToKernel() { // Setup const double maximumAllowableFloodingProbability = 0.001; const double signalFloodingProbability = 0.0001; using (new AssemblyToolKernelFactoryConfig()) { var factory = (TestAssemblyToolKernelFactory)AssemblyToolKernelFactory.Instance; AssemblyCategoryLimitsKernelStub categoryLimitsKernel = factory.LastCreatedAssemblyCategoryLimitsKernel; categoryLimitsKernel.InterpretationCategoryLimits = CreateInterpretationCategories(); var calculator = new FailureMechanismSectionAssemblyGroupBoundariesCalculator(factory); // Call calculator.CalculateFailureMechanismSectionAssemblyGroupBoundaries(signalFloodingProbability, maximumAllowableFloodingProbability); // Assert AssessmentSection assessmentSection = categoryLimitsKernel.AssessmentSection; ProbabilityAssert.AreEqual(maximumAllowableFloodingProbability, assessmentSection.MaximumAllowableFloodingProbability); ProbabilityAssert.AreEqual(signalFloodingProbability, assessmentSection.SignalFloodingProbability); } }