/// <summary> /// Assembles a failure mechanism section result based on the input arguments. /// </summary> /// <param name="sectionResult">The section result to assemble for.</param> /// <param name="assessmentSection">The <see cref="IAssessmentSection"/> to assemble with.</param> /// <param name="useLengthEffect">Indicator whether to use the length effect or not.</param> /// <returns>A <see cref="FailureMechanismSectionAssemblyResultWrapper"/>.</returns> /// <exception cref="ArgumentNullException">Thrown when <paramref name="sectionResult"/> or <paramref name="assessmentSection"/> /// is <c>null</c>.</exception> /// <exception cref="AssemblyException">Thrown when the section could not be successfully assembled.</exception> public static FailureMechanismSectionAssemblyResultWrapper AssembleSection( NonAdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult, IAssessmentSection assessmentSection, bool useLengthEffect) { if (sectionResult == null) { throw new ArgumentNullException(nameof(sectionResult)); } if (assessmentSection == null) { throw new ArgumentNullException(nameof(assessmentSection)); } bool hasProbabilitySpecified = sectionResult.InitialFailureMechanismResultType != NonAdoptableInitialFailureMechanismResultType.NoFailureProbability; FailureMechanismSectionAssemblyInput input = useLengthEffect ? CreateInput( assessmentSection, sectionResult.IsRelevant, hasProbabilitySpecified, sectionResult.ManualInitialFailureMechanismResultProfileProbability, sectionResult.ManualInitialFailureMechanismResultSectionProbability, sectionResult.FurtherAnalysisType, sectionResult.RefinedProfileProbability, sectionResult.RefinedSectionProbability) : CreateInput( assessmentSection, sectionResult.IsRelevant, sectionResult.ManualInitialFailureMechanismResultSectionProbability, sectionResult.FurtherAnalysisType, sectionResult.RefinedSectionProbability, hasProbabilitySpecified); return(PerformAssembly(input)); }
private static void Property_SetNewValue_NotifyObserversAndPropertyChanged <T>( Action <NonAdoptableWithProfileProbabilityFailureMechanismSectionResultRow> setPropertyAction, Func <NonAdoptableWithProfileProbabilityFailureMechanismSectionResult, T> assertPropertyFunc, T newValue) { // Setup var mocks = new MockRepository(); var errorProvider = mocks.Stub <IFailureMechanismSectionResultRowErrorProvider>(); var observer = mocks.StrictMock <IObserver>(); observer.Expect(o => o.UpdateObserver()); mocks.ReplayAll(); FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section); result.Attach(observer); Func <FailureMechanismSectionAssemblyResultWrapper> performAssemblyFunc = FailureMechanismSectionAssemblyResultWrapperTestFactory.Create; var row = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResultRow(result, errorProvider, performAssemblyFunc, ConstructionProperties); // Call setPropertyAction(row); // Assert Assert.AreEqual(newValue, assertPropertyFunc(result)); mocks.VerifyAll(); }
public void Constructor_PerformAssemblyFuncReturnsResult_ReturnsAssemblyResult() { // Setup var mocks = new MockRepository(); var errorProvider = mocks.Stub <IFailureMechanismSectionResultRowErrorProvider>(); mocks.ReplayAll(); FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section); FailureMechanismSectionAssemblyResultWrapper assemblyResultWrapper = FailureMechanismSectionAssemblyResultWrapperTestFactory.Create(); Func <FailureMechanismSectionAssemblyResultWrapper> performAssemblyFunc = () => assemblyResultWrapper; // Call var row = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResultRow(result, errorProvider, performAssemblyFunc, ConstructionProperties); // Assert FailureMechanismSectionAssemblyResult assemblyResult = assemblyResultWrapper.AssemblyResult; Assert.AreEqual(assemblyResult.ProfileProbability, row.ProfileProbability); Assert.AreEqual(assemblyResult.SectionProbability, row.SectionProbability); Assert.AreEqual(assemblyResult.N, row.SectionN, row.SectionN.GetAccuracy()); Assert.AreEqual(2, row.SectionN.NumberOfDecimalPlaces); Assert.AreEqual(EnumDisplayNameHelper.GetDisplayName(assemblyResult.FailureMechanismSectionAssemblyGroup), row.AssemblyGroup); mocks.VerifyAll(); }
public void AssembleSection_CalculatorThrowsException_ThrowsAssemblyException() { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var sectionResult = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section); var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); var assessmentSection = new AssessmentSectionStub(); using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; calculator.ThrowExceptionOnCalculate = true; // Call void Call() => GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.AssembleSection( sectionResult, failureMechanism, assessmentSection); // Assert var exception = Assert.Throws <AssemblyException>(Call); Exception innerException = exception.InnerException; Assert.IsInstanceOf <FailureMechanismSectionAssemblyCalculatorException>(innerException); Assert.AreEqual(innerException.Message, exception.Message); } }
public void Constructor_WithFurtherAnalysisType_ExpectedColumnStates(FailureMechanismSectionResultFurtherAnalysisType furtherAnalysisType, bool expectedDisabled) { // Setup var mocks = new MockRepository(); var errorProvider = mocks.Stub <IFailureMechanismSectionResultRowErrorProvider>(); errorProvider.Stub(ep => ep.GetManualProbabilityValidationError(double.NaN)) .IgnoreArguments() .Return(string.Empty); mocks.ReplayAll(); FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section) { FurtherAnalysisType = furtherAnalysisType }; Func <FailureMechanismSectionAssemblyResultWrapper> performAssemblyFunc = FailureMechanismSectionAssemblyResultWrapperTestFactory.Create; // Call var row = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResultRow(result, errorProvider, performAssemblyFunc, ConstructionProperties); // Assert IDictionary <int, DataGridViewColumnStateDefinition> columnStateDefinitions = row.ColumnStateDefinitions; DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState( columnStateDefinitions[ConstructionProperties.RefinedProfileProbabilityIndex], expectedDisabled); DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState( columnStateDefinitions[ConstructionProperties.RefinedSectionProbabilityIndex], expectedDisabled); mocks.VerifyAll(); }
public void Constructor_Always_ExpectedColumnStates() { // Setup var mocks = new MockRepository(); var errorProvider = mocks.Stub <IFailureMechanismSectionResultRowErrorProvider>(); mocks.ReplayAll(); FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section); Func <FailureMechanismSectionAssemblyResultWrapper> performAssemblyFunc = FailureMechanismSectionAssemblyResultWrapperTestFactory.Create; // Call var row = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResultRow(result, errorProvider, performAssemblyFunc, ConstructionProperties); // Assert IDictionary <int, DataGridViewColumnStateDefinition> columnStateDefinitions = row.ColumnStateDefinitions; DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState( columnStateDefinitions[ConstructionProperties.ProfileProbabilityIndex], true, true); DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState( columnStateDefinitions[ConstructionProperties.SectionProbabilityIndex], true, true); DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState( columnStateDefinitions[ConstructionProperties.SectionNIndex], true, true); mocks.VerifyAll(); }
public void Constructor_WithAssemblyGroupSet_ExpectedColumnStates(FailureMechanismSectionAssemblyGroup assemblyGroup, Color expectedBackgroundColor) { // Setup var mocks = new MockRepository(); var errorProvider = mocks.Stub <IFailureMechanismSectionResultRowErrorProvider>(); mocks.ReplayAll(); FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section); Func <FailureMechanismSectionAssemblyResultWrapper> performAssemblyFunc = () => new FailureMechanismSectionAssemblyResultWrapper( FailureMechanismSectionAssemblyResultTestFactory.CreateFailureMechanismSectionAssemblyResult(assemblyGroup), AssemblyMethod.BOI0A1, AssemblyMethod.BOI0B1); // Call var row = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResultRow(result, errorProvider, performAssemblyFunc, ConstructionProperties); // Assert IDictionary <int, DataGridViewColumnStateDefinition> columnStateDefinitions = row.ColumnStateDefinitions; DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnWithColorState( columnStateDefinitions[ConstructionProperties.AssemblyGroupIndex], expectedBackgroundColor); mocks.VerifyAll(); }
public void CreateNonAdoptableWithProfileProbabilityFailureMechanismSectionResult_WithDifferentResults_ReturnsEntityWithExpectedResults() { // Setup var random = new Random(21); bool isRelevant = random.NextBoolean(); var initialFailureMechanismResultType = random.NextEnumValue <NonAdoptableInitialFailureMechanismResultType>(); double manualProfileProbability = random.NextDouble(); double manualSectionProbability = random.NextDouble(); var furtherAnalysisType = random.NextEnumValue <FailureMechanismSectionResultFurtherAnalysisType>(); double refinedProfileProbability = random.NextDouble(); double refinedSectionProbability = random.NextDouble(); var sectionResult = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) { IsRelevant = isRelevant, InitialFailureMechanismResultType = initialFailureMechanismResultType, ManualInitialFailureMechanismResultProfileProbability = manualProfileProbability, ManualInitialFailureMechanismResultSectionProbability = manualSectionProbability, FurtherAnalysisType = furtherAnalysisType, RefinedProfileProbability = refinedProfileProbability, RefinedSectionProbability = refinedSectionProbability }; // Call NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity entity = sectionResult.Create(); // Assert Assert.AreEqual(Convert.ToByte(isRelevant), entity.IsRelevant); Assert.AreEqual(Convert.ToByte(initialFailureMechanismResultType), entity.InitialFailureMechanismResultType); Assert.AreEqual(manualProfileProbability, entity.ManualInitialFailureMechanismResultProfileProbability); Assert.AreEqual(manualSectionProbability, entity.ManualInitialFailureMechanismResultSectionProbability); Assert.AreEqual(Convert.ToByte(furtherAnalysisType), entity.FurtherAnalysisType); Assert.AreEqual(refinedProfileProbability, entity.RefinedProfileProbability); Assert.AreEqual(refinedSectionProbability, entity.RefinedSectionProbability); }
public void FailureMechanismResultsView_AllDataSet_PassesInputToPerformAssemblyFunc() { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanism = new TestNonAdoptableWithProfileProbabilityFailureMechanism(); FailureMechanismTestHelper.SetSections(failureMechanism, new[] { section }); NonAdoptableWithProfileProbabilityFailureMechanismSectionResult functionInput = null; Func <NonAdoptableWithProfileProbabilityFailureMechanismSectionResult, FailureMechanismSectionAssemblyResultWrapper> performAssemblyFunc = sr => { functionInput = sr; return(FailureMechanismSectionAssemblyResultWrapperTestFactory.Create()); }; // Call using (ShowFailureMechanismResultsView(failureMechanism, performAssemblyFunc)) { // Assert Assert.AreSame(functionInput, failureMechanism.SectionResults.Single()); } }
public void GivenRowWithIsRelevantAndInitialFailureMechanismResultType_WhenErrorProviderReturnsError_ThenShowNoError( bool isRelevant, NonAdoptableInitialFailureMechanismResultType initialFailureMechanismResultType) { // Given var mocks = new MockRepository(); var errorProvider = mocks.StrictMock <IFailureMechanismSectionResultRowErrorProvider>(); errorProvider.Stub(ep => ep.GetManualProbabilityValidationError(double.NaN)) .IgnoreArguments() .Return("error message"); mocks.ReplayAll(); FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section) { IsRelevant = isRelevant, InitialFailureMechanismResultType = initialFailureMechanismResultType }; Func <FailureMechanismSectionAssemblyResultWrapper> performAssemblyFunc = FailureMechanismSectionAssemblyResultWrapperTestFactory.Create; // When var row = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResultRow(result, errorProvider, performAssemblyFunc, ConstructionProperties); // Then IDictionary <int, DataGridViewColumnStateDefinition> columnStateDefinitions = row.ColumnStateDefinitions; Assert.IsEmpty(columnStateDefinitions[ConstructionProperties.InitialFailureMechanismResultProfileProbabilityIndex].ErrorText); Assert.IsEmpty(columnStateDefinitions[ConstructionProperties.InitialFailureMechanismResultSectionProbabilityIndex].ErrorText); mocks.VerifyAll(); }
private static void ProbabilityProperty_SetInvalidValue_ThrowsArgumentOutOfRangeException( Action <NonAdoptableWithProfileProbabilityFailureMechanismSectionResultRow> setPropertyAction) { // Setup var mocks = new MockRepository(); var errorProvider = mocks.Stub <IFailureMechanismSectionResultRowErrorProvider>(); mocks.ReplayAll(); FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section); Func <FailureMechanismSectionAssemblyResultWrapper> performAssemblyFunc = FailureMechanismSectionAssemblyResultWrapperTestFactory.Create; var row = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResultRow(result, errorProvider, performAssemblyFunc, ConstructionProperties); // Call void Call() => setPropertyAction(row); // Assert const string expectedMessage = "De waarde voor de faalkans moet in het bereik [0,0, 1,0] liggen."; TestHelper.AssertThrowsArgumentExceptionAndTestMessage <ArgumentOutOfRangeException>(Call, expectedMessage); mocks.VerifyAll(); }
public void Constructor_ExpectedValues() { // Setup var mocks = new MockRepository(); var errorProvider = mocks.Stub <IFailureMechanismSectionResultRowErrorProvider>(); mocks.ReplayAll(); FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section); Func <FailureMechanismSectionAssemblyResultWrapper> performAssemblyFunc = FailureMechanismSectionAssemblyResultWrapperTestFactory.Create; // Call var row = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResultRow(result, errorProvider, performAssemblyFunc, ConstructionProperties); // Assert Assert.IsInstanceOf <FailureMechanismSectionResultRow <NonAdoptableWithProfileProbabilityFailureMechanismSectionResult> >(row); Assert.AreEqual(result.IsRelevant, row.IsRelevant); Assert.AreEqual(result.InitialFailureMechanismResultType, row.InitialFailureMechanismResultType); Assert.AreEqual(result.ManualInitialFailureMechanismResultProfileProbability, row.InitialFailureMechanismResultProfileProbability); Assert.AreEqual(result.ManualInitialFailureMechanismResultSectionProbability, row.InitialFailureMechanismResultSectionProbability); Assert.AreEqual(result.FurtherAnalysisType, row.FurtherAnalysisType); Assert.AreEqual(result.RefinedProfileProbability, row.RefinedProfileProbability); Assert.AreEqual(result.RefinedSectionProbability, row.RefinedSectionProbability); TestHelper.AssertTypeConverter <AdoptableWithProfileProbabilityFailureMechanismSectionResultRow, NoProbabilityValueDoubleConverter>( nameof(AdoptableWithProfileProbabilityFailureMechanismSectionResultRow.InitialFailureMechanismResultProfileProbability)); TestHelper.AssertTypeConverter <AdoptableWithProfileProbabilityFailureMechanismSectionResultRow, NoProbabilityValueDoubleConverter>( nameof(AdoptableWithProfileProbabilityFailureMechanismSectionResultRow.InitialFailureMechanismResultSectionProbability)); TestHelper.AssertTypeConverter <AdoptableWithProfileProbabilityFailureMechanismSectionResultRow, NoProbabilityValueDoubleConverter>( nameof(AdoptableWithProfileProbabilityFailureMechanismSectionResultRow.RefinedProfileProbability)); TestHelper.AssertTypeConverter <AdoptableWithProfileProbabilityFailureMechanismSectionResultRow, NoProbabilityValueDoubleConverter>( nameof(AdoptableWithProfileProbabilityFailureMechanismSectionResultRow.RefinedSectionProbability)); TestHelper.AssertTypeConverter <AdoptableWithProfileProbabilityFailureMechanismSectionResultRow, NoProbabilityValueDoubleConverter>( nameof(AdoptableWithProfileProbabilityFailureMechanismSectionResultRow.ProfileProbability)); TestHelper.AssertTypeConverter <AdoptableWithProfileProbabilityFailureMechanismSectionResultRow, NoProbabilityValueDoubleConverter>( nameof(AdoptableWithProfileProbabilityFailureMechanismSectionResultRow.SectionProbability)); TestHelper.AssertTypeConverter <AdoptableWithProfileProbabilityFailureMechanismSectionResultRow, NoValueRoundedDoubleConverter>( nameof(AdoptableWithProfileProbabilityFailureMechanismSectionResultRow.SectionN)); IDictionary <int, DataGridViewColumnStateDefinition> columnStateDefinitions = row.ColumnStateDefinitions; Assert.AreEqual(10, columnStateDefinitions.Count); DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.InitialFailureMechanismResultTypeIndex); DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.InitialFailureMechanismResultProfileProbabilityIndex); DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.InitialFailureMechanismResultSectionProbabilityIndex); DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.FurtherAnalysisTypeIndex); DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.RefinedProfileProbabilityIndex); DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.RefinedSectionProbabilityIndex); DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.ProfileProbabilityIndex); DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.SectionProbabilityIndex); DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.SectionNIndex); DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.AssemblyGroupIndex); mocks.VerifyAll(); }
/// <summary> /// Asserts whether the data of the <see cref="NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity"/> and /// <see cref="NonAdoptableWithProfileProbabilityFailureMechanismSectionResult"/> have equal values. /// </summary> /// <param name="sectionResultEntity">The <see cref="NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity"/>.</param> /// <param name="sectionResult">The <see cref="NonAdoptableWithProfileProbabilityFailureMechanismSectionResult"/>.</param> public static void AssertSectionResult(NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity sectionResultEntity, NonAdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult) { Assert.AreEqual(Convert.ToBoolean(sectionResultEntity.IsRelevant), sectionResult.IsRelevant); Assert.AreEqual((NonAdoptableInitialFailureMechanismResultType)sectionResultEntity.InitialFailureMechanismResultType, sectionResult.InitialFailureMechanismResultType); Assert.AreEqual(sectionResultEntity.ManualInitialFailureMechanismResultSectionProbability.ToNullAsNaN(), sectionResult.ManualInitialFailureMechanismResultSectionProbability); Assert.AreEqual((FailureMechanismSectionResultFurtherAnalysisType)sectionResultEntity.FurtherAnalysisType, sectionResult.FurtherAnalysisType); Assert.AreEqual(sectionResultEntity.RefinedSectionProbability.ToNullAsNaN(), sectionResult.RefinedSectionProbability); Assert.AreEqual(sectionResultEntity.ManualInitialFailureMechanismResultProfileProbability.ToNullAsNaN(), sectionResult.ManualInitialFailureMechanismResultProfileProbability); Assert.AreEqual(sectionResultEntity.RefinedProfileProbability.ToNullAsNaN(), sectionResult.RefinedProfileProbability); }
public void ManualInitialFailureMechanismResultProfileProbability_ValidValue_NewValueSet(double newValue) { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section); // Call result.ManualInitialFailureMechanismResultProfileProbability = newValue; // Assert Assert.AreEqual(newValue, result.ManualInitialFailureMechanismResultProfileProbability); }
public void GivenRowWithoutAssemblyErrors_WhenUpdatingAndPerformAssemblyThrowsException_ThenShowError() { // Given var mocks = new MockRepository(); var errorProvider = mocks.Stub <IFailureMechanismSectionResultRowErrorProvider>(); mocks.ReplayAll(); FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section); var nrOfCalls = 0; FailureMechanismSectionAssemblyResultWrapper assemblyResultWrapper = FailureMechanismSectionAssemblyResultWrapperTestFactory.Create(); Func <FailureMechanismSectionAssemblyResultWrapper> performAssemblyFunc = () => { if (nrOfCalls == 1) { throw new AssemblyException(); } nrOfCalls++; return(assemblyResultWrapper); }; var row = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResultRow(result, errorProvider, performAssemblyFunc, ConstructionProperties); // Precondition FailureMechanismSectionAssemblyResult assemblyResult = assemblyResultWrapper.AssemblyResult; Assert.AreEqual(assemblyResult.ProfileProbability, row.ProfileProbability); Assert.AreEqual(assemblyResult.SectionProbability, row.SectionProbability); Assert.AreEqual(assemblyResult.N, row.SectionN, row.SectionN.GetAccuracy()); Assert.AreEqual(2, row.SectionN.NumberOfDecimalPlaces); Assert.AreEqual(EnumDisplayNameHelper.GetDisplayName(assemblyResult.FailureMechanismSectionAssemblyGroup), row.AssemblyGroup); // When row.InitialFailureMechanismResultType = NonAdoptableInitialFailureMechanismResultType.NoFailureProbability; // Then var expectedAssemblyResult = new DefaultFailureMechanismSectionAssemblyResult(); Assert.AreEqual(expectedAssemblyResult.ProfileProbability, row.ProfileProbability); Assert.AreEqual(expectedAssemblyResult.SectionProbability, row.SectionProbability); Assert.AreEqual(expectedAssemblyResult.N, row.SectionN, row.SectionN.GetAccuracy()); Assert.AreEqual(2, row.SectionN.NumberOfDecimalPlaces); Assert.AreEqual(EnumDisplayNameHelper.GetDisplayName(expectedAssemblyResult.FailureMechanismSectionAssemblyGroup), row.AssemblyGroup); mocks.VerifyAll(); }
public void Constructor_ExpectedValues() { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); // Call var sectionResult = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section); // Assert Assert.IsInstanceOf <NonAdoptableFailureMechanismSectionResult>(sectionResult); Assert.IsNaN(sectionResult.ManualInitialFailureMechanismResultProfileProbability); Assert.IsNaN(sectionResult.RefinedProfileProbability); }
private static void ReadFailureMechanismSectionResults(this IFailureMechanismEntity entity, SpecificFailureMechanism specificFailureMechanism, ReadConversionCollector collector) { foreach (NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity sectionResultEntity in entity.FailureMechanismSectionEntities.SelectMany(fms => fms.NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntities)) { FailureMechanismSection failureMechanismSection = collector.Get(sectionResultEntity.FailureMechanismSectionEntity); NonAdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult = specificFailureMechanism.SectionResults.Single(sr => ReferenceEquals(sr.Section, failureMechanismSection)); sectionResultEntity.Read(sectionResult); } }
public void AssembleSectionNonAdoptableSectionWithoutProfileProbability_AssessmentSectionNull_ThrowsArgumentNullException() { // Setup var sectionResult = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); // Call void Call() => FailureMechanismSectionAssemblyResultFactory.AssembleSection(sectionResult, null); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("assessmentSection", exception.ParamName); }
public void RefinedProfileProbability_InvalidValue_ThrowsArgumentOutOfRangeException(double newValue) { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section); // Call void Call() => result.RefinedProfileProbability = newValue; // Assert const string message = "De waarde voor de faalkans moet in het bereik [0,0, 1,0] liggen."; TestHelper.AssertThrowsArgumentExceptionAndTestMessage <ArgumentOutOfRangeException>(Call, message); }
public void AssembleSectionNonAdoptableWithProfileProbability_WithInputAndUseLengthEffectTrue_SetsInputOnCalculator( NonAdoptableInitialFailureMechanismResultType initialFailureMechanismResultType, bool expectedHasProbabilitySpecified) { // Setup var random = new Random(21); bool isRelevant = random.NextBoolean(); double manualInitialProfileProbability = random.NextDouble(); double manualInitialSectionProbability = random.NextDouble(); var furtherAnalysisType = random.NextEnumValue <FailureMechanismSectionResultFurtherAnalysisType>(); double manualRefinedSectionProbability = random.NextDouble(); double manualRefinedProfileProbability = random.NextDouble(); var assessmentSection = new AssessmentSectionStub(); var sectionResult = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) { IsRelevant = isRelevant, InitialFailureMechanismResultType = initialFailureMechanismResultType, ManualInitialFailureMechanismResultProfileProbability = manualInitialProfileProbability, ManualInitialFailureMechanismResultSectionProbability = manualInitialSectionProbability, FurtherAnalysisType = furtherAnalysisType, RefinedProfileProbability = manualRefinedProfileProbability, RefinedSectionProbability = manualRefinedSectionProbability }; using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; // Call FailureMechanismSectionAssemblyResultFactory.AssembleSection(sectionResult, assessmentSection, true); // Assert FailureMechanismSectionWithProfileProbabilityAssemblyInput calculatorInput = calculator.FailureMechanismSectionWithProfileProbabilityAssemblyInput; FailureMechanismContribution failureMechanismContribution = assessmentSection.FailureMechanismContribution; Assert.AreEqual(failureMechanismContribution.SignalFloodingProbability, calculatorInput.SignalFloodingProbability); Assert.AreEqual(failureMechanismContribution.MaximumAllowableFloodingProbability, calculatorInput.MaximumAllowableFloodingProbability); Assert.AreEqual(isRelevant, calculatorInput.IsRelevant); Assert.AreEqual(expectedHasProbabilitySpecified, calculatorInput.HasProbabilitySpecified); Assert.AreEqual(manualInitialProfileProbability, calculatorInput.InitialProfileProbability); Assert.AreEqual(manualInitialSectionProbability, calculatorInput.InitialSectionProbability); Assert.AreEqual(furtherAnalysisType, calculatorInput.FurtherAnalysisType); Assert.AreEqual(manualRefinedProfileProbability, calculatorInput.RefinedProfileProbability); Assert.AreEqual(manualRefinedSectionProbability, calculatorInput.RefinedSectionProbability); } }
public void Constructor_FailureMechanismSectionResultRowErrorProviderNull_ThrowsArgumentNullException() { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section); Func <FailureMechanismSectionAssemblyResultWrapper> performAssemblyFunc = FailureMechanismSectionAssemblyResultWrapperTestFactory.Create; // Call void Call() => new NonAdoptableWithProfileProbabilityFailureMechanismSectionResultRow(result, null, performAssemblyFunc, ConstructionProperties); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("failureMechanismSectionResultRowErrorProvider", exception.ParamName); }
public void AssembleSection_AssessmentSectionNull_ThrowsArgumentNullException() { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var sectionResult = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section); var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); // Call void Call() => GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.AssembleSection(sectionResult, failureMechanism, null); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("assessmentSection", exception.ParamName); }
public void ReadNonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity_EntityWithNullValues_SectionResultWithNaNValues() { // Setup var entity = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity(); var sectionResult = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult( FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); // Call entity.Read(sectionResult); // Assert Assert.IsNaN(sectionResult.ManualInitialFailureMechanismResultProfileProbability); Assert.IsNaN(sectionResult.ManualInitialFailureMechanismResultSectionProbability); Assert.IsNaN(sectionResult.RefinedProfileProbability); Assert.IsNaN(sectionResult.RefinedSectionProbability); }
public void GivenRowWithAssemblyErrors_WhenUpdatingAndAssemblyDoesNotThrowException_ThenNoErrorShown() { // Given var mocks = new MockRepository(); var errorProvider = mocks.Stub <IFailureMechanismSectionResultRowErrorProvider>(); mocks.ReplayAll(); FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section); const string errorText = "Message"; int nrOfCalls = 0; Func <FailureMechanismSectionAssemblyResultWrapper> performAssemblyFunc = () => { if (nrOfCalls == 0) { nrOfCalls++; throw new AssemblyException(errorText); } return(FailureMechanismSectionAssemblyResultWrapperTestFactory.Create()); }; var row = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResultRow(result, errorProvider, performAssemblyFunc, ConstructionProperties); // Precondition IDictionary <int, DataGridViewColumnStateDefinition> columnStateDefinitions = row.ColumnStateDefinitions; Assert.AreEqual(errorText, columnStateDefinitions[ConstructionProperties.ProfileProbabilityIndex].ErrorText); Assert.AreEqual(errorText, columnStateDefinitions[ConstructionProperties.SectionProbabilityIndex].ErrorText); Assert.AreEqual(errorText, columnStateDefinitions[ConstructionProperties.SectionNIndex].ErrorText); Assert.AreEqual(errorText, columnStateDefinitions[ConstructionProperties.AssemblyGroupIndex].ErrorText); // When row.InitialFailureMechanismResultType = NonAdoptableInitialFailureMechanismResultType.NoFailureProbability; // Then Assert.AreEqual(string.Empty, columnStateDefinitions[ConstructionProperties.ProfileProbabilityIndex].ErrorText); Assert.AreEqual(string.Empty, columnStateDefinitions[ConstructionProperties.SectionProbabilityIndex].ErrorText); Assert.AreEqual(string.Empty, columnStateDefinitions[ConstructionProperties.SectionNIndex].ErrorText); Assert.AreEqual(string.Empty, columnStateDefinitions[ConstructionProperties.AssemblyGroupIndex].ErrorText); mocks.VerifyAll(); }
/// <summary> /// Creates an instance of <see cref="NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity"/> /// based on the information of the <see cref="NonAdoptableWithProfileProbabilityFailureMechanismSectionResult"/>. /// </summary> /// <param name="result">The result to create a database entity for.</param> /// <returns>A <see cref="NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity"/>.</returns> /// <exception cref="ArgumentNullException">Thrown when <paramref name="result"/> is <c>null</c>.</exception> internal static NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity Create( this NonAdoptableWithProfileProbabilityFailureMechanismSectionResult result) { if (result == null) { throw new ArgumentNullException(nameof(result)); } var sectionResultEntity = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity { InitialFailureMechanismResultType = Convert.ToByte(result.InitialFailureMechanismResultType), ManualInitialFailureMechanismResultProfileProbability = result.ManualInitialFailureMechanismResultProfileProbability.ToNaNAsNull(), RefinedProfileProbability = result.RefinedProfileProbability.ToNaNAsNull() }; sectionResultEntity.SetCommonFailureMechanismSectionResultProperties(result); return(sectionResultEntity); }
/// <summary> /// Reads the <see cref="NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity"/> and use the information /// to update an <see cref="NonAdoptableWithProfileProbabilityFailureMechanismSectionResult"/>. /// </summary> /// <param name="entity">The <see cref="NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity"/> used to update /// the <paramref name="sectionResult"/>.</param> /// <param name="sectionResult">The target of the read operation.</param> /// <exception cref="ArgumentNullException">Thrown when any parameter is <c>null</c>.</exception> internal static void Read(this NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity entity, NonAdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult) { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } if (sectionResult == null) { throw new ArgumentNullException(nameof(sectionResult)); } sectionResult.InitialFailureMechanismResultType = (NonAdoptableInitialFailureMechanismResultType)entity.InitialFailureMechanismResultType; sectionResult.ManualInitialFailureMechanismResultProfileProbability = entity.ManualInitialFailureMechanismResultProfileProbability.ToNullAsNaN(); sectionResult.RefinedProfileProbability = entity.RefinedProfileProbability.ToNullAsNaN(); sectionResult.SetCommonFailureMechanismSectionResultProperties(entity); }
public void Constructor_PerformAssemblyFuncNull_ThrowsArgumentNullException() { // Setup var mocks = new MockRepository(); var errorProvider = mocks.Stub <IFailureMechanismSectionResultRowErrorProvider>(); mocks.ReplayAll(); FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section); // Call void Call() => new NonAdoptableWithProfileProbabilityFailureMechanismSectionResultRow(result, errorProvider, null, ConstructionProperties); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("performAssemblyFunc", exception.ParamName); mocks.VerifyAll(); }
public void AssembleSectionNonAdoptableSectionWithProfileProbability_CalculatorRan_ReturnsExpectedOutput() { // Setup var random = new Random(21); var assessmentSection = new AssessmentSectionStub(); var sectionResult = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; // Call FailureMechanismSectionAssemblyResultWrapper result = FailureMechanismSectionAssemblyResultFactory.AssembleSection( sectionResult, assessmentSection, random.NextBoolean()); // Assert Assert.AreSame(calculator.FailureMechanismSectionAssemblyResultOutput, result); } }
public void CreateNonAdoptableWithProfileProbabilityFailureMechanismSectionResult_SectionResultWithNaNValues_ReturnsEntityWithExpectedResults() { // Setup var sectionResult = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) { ManualInitialFailureMechanismResultProfileProbability = double.NaN, ManualInitialFailureMechanismResultSectionProbability = double.NaN, RefinedProfileProbability = double.NaN, RefinedSectionProbability = double.NaN }; // Call NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity entity = sectionResult.Create(); // Assert Assert.IsNull(entity.ManualInitialFailureMechanismResultProfileProbability); Assert.IsNull(entity.ManualInitialFailureMechanismResultSectionProbability); Assert.IsNull(entity.RefinedProfileProbability); Assert.IsNull(entity.RefinedSectionProbability); }
public void GivenRowWithFurtherAnalysisTypeExecuted_WhenErrorProviderReturnsError_ThenShowsError() { // Given var random = new Random(21); double profileProbability = random.NextDouble(); double sectionProbability = profileProbability + 0.1; const string profileErrorText = "profile error"; const string sectionErrorText = "section error"; var mocks = new MockRepository(); var errorProvider = mocks.StrictMock <IFailureMechanismSectionResultRowErrorProvider>(); errorProvider.Expect(ep => ep.GetManualProbabilityValidationError(profileProbability)) .Return(profileErrorText); errorProvider.Expect(ep => ep.GetManualProbabilityValidationError(sectionProbability)) .Return(sectionErrorText); mocks.ReplayAll(); FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section) { InitialFailureMechanismResultType = NonAdoptableInitialFailureMechanismResultType.NoFailureProbability, FurtherAnalysisType = FailureMechanismSectionResultFurtherAnalysisType.Executed, RefinedProfileProbability = profileProbability, RefinedSectionProbability = sectionProbability }; Func <FailureMechanismSectionAssemblyResultWrapper> performAssemblyFunc = FailureMechanismSectionAssemblyResultWrapperTestFactory.Create; // When var row = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResultRow(result, errorProvider, performAssemblyFunc, ConstructionProperties); // Then IDictionary <int, DataGridViewColumnStateDefinition> columnStateDefinitions = row.ColumnStateDefinitions; Assert.AreEqual(profileErrorText, columnStateDefinitions[ConstructionProperties.RefinedProfileProbabilityIndex].ErrorText); Assert.AreEqual(sectionErrorText, columnStateDefinitions[ConstructionProperties.RefinedSectionProbabilityIndex].ErrorText); mocks.VerifyAll(); }