public void GivenFormWithAssemblyResultTotalView_WhenSpecificFailureMechanismRemovedAndRefreshingAssemblyResults_ThenDataGridViewDataSourceAndRowsUpdated() { // Given AssessmentSection assessmentSection = CreateAssessmentSection(); using (new AssemblyToolCalculatorFactoryConfig()) using (AssemblyResultTotalView view = ShowAssemblyResultTotalView(assessmentSection)) { var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; DataGridView dataGridView = GetDataGridView(); object dataSource = dataGridView.DataSource; // Precondition DataGridViewRowCollection rows = dataGridView.Rows; AssertFailureMechanismRows(view.AssessmentSection, calculator.AssemblyResultOutput.AssemblyResult, rows); // When ObservableList <SpecificFailureMechanism> specificFailureMechanisms = assessmentSection.SpecificFailureMechanisms; SpecificFailureMechanism failureMechanismToRemove = specificFailureMechanisms.Last(); specificFailureMechanisms.Remove(failureMechanismToRemove); specificFailureMechanisms.NotifyObservers(); ButtonTester buttonTester = GetRefreshAssemblyResultButtonTester(); buttonTester.Click(); // Then Assert.AreNotSame(dataSource, dataGridView.DataSource); AssertFailureMechanismRows(view.AssessmentSection, calculator.AssemblyResultOutput.AssemblyResult, rows); } }
public void AssembleAssessmentSection_AssessmentSectionContainingFailureMechanismsWithRandomInAssemblyState_SetsInputOnCalculator() { // Setup AssessmentSection assessmentSection = CreateAssessmentSectionContainingFailureMechanismsWithRandomInAssemblyState(); using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismAssemblyCalculatorStub failureMechanismAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; AssessmentSectionAssemblyCalculatorStub assessmentSectionAssemblyCalculator = calculatorFactory.LastCreatedAssessmentSectionAssemblyCalculator; // Call AssessmentSectionAssemblyFactory.AssembleAssessmentSection(assessmentSection); // Assert FailureMechanismContribution contribution = assessmentSection.FailureMechanismContribution; Assert.AreEqual(contribution.SignalFloodingProbability, assessmentSectionAssemblyCalculator.SignalFloodingProbability); Assert.AreEqual(contribution.MaximumAllowableFloodingProbability, assessmentSectionAssemblyCalculator.MaximumAllowableFloodingProbabilityInput); int expectedNrOfProbabilities = assessmentSection.GetFailureMechanisms() .Concat(assessmentSection.SpecificFailureMechanisms) .Count(fp => fp.InAssembly); IEnumerable <double> calculatorInput = assessmentSectionAssemblyCalculator.FailureMechanismProbabilitiesInput; Assert.AreEqual(expectedNrOfProbabilities, calculatorInput.Count()); foreach (double failureMechanismProbability in calculatorInput) { Assert.AreEqual(failureMechanismAssemblyCalculator.AssemblyResultOutput.AssemblyResult, failureMechanismProbability); } } }
public void AssembleFailureMechanism_WithInput_SetsInputOnCalculator() { // Setup var failureMechanism = new MacroStabilityInwardsFailureMechanism { AssemblyResult = { ProbabilityResultType = FailureMechanismAssemblyProbabilityResultType.Automatic } }; failureMechanism.SetSections(new[] { FailureMechanismSectionTestFactory.CreateFailureMechanismSection() }, "APath"); var assessmentSection = new AssessmentSectionStub(); using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; FailureMechanismAssemblyCalculatorStub failureMechanismAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; // Call MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism, assessmentSection); // Assert double expectedN = failureMechanism.MacroStabilityInwardsProbabilityAssessmentInput.GetN(assessmentSection.ReferenceLine.Length); Assert.AreEqual(expectedN, failureMechanismAssemblyCalculator.FailureMechanismN); Assert.AreSame(calculator.FailureMechanismSectionAssemblyResultOutput.AssemblyResult, failureMechanismAssemblyCalculator.SectionAssemblyResultsInput.Single()); Assert.AreEqual(failureMechanism.GeneralInput.ApplyLengthEffectInSection, failureMechanismAssemblyCalculator.ApplyLengthEffect); } }
public void FailureMechanismResultsView_AllDataSet_SetsCorrectInputOnCalculator() { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanism = new MacroStabilityInwardsFailureMechanism(); FailureMechanismTestHelper.SetSections(failureMechanism, new[] { section }); var assessmentSection = new AssessmentSectionStub(); // Call using (new AssemblyToolCalculatorFactoryConfig()) using (ShowFailureMechanismResultsView(failureMechanism, assessmentSection)) { // Assert var testFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismAssemblyCalculatorStub calculator = testFactory.LastCreatedFailureMechanismAssemblyCalculator; double expectedN = failureMechanism.MacroStabilityInwardsProbabilityAssessmentInput.GetN(assessmentSection.ReferenceLine.Length); Assert.AreEqual(expectedN, calculator.FailureMechanismN); } }
public void AssembleFailureMechanism_WithInputWithProbabilityResultTypeManual_NoInputOnCalculatorAndReturnsOutput() { // Setup var random = new Random(21); var failureMechanismResult = new FailureMechanismAssemblyResult { ProbabilityResultType = FailureMechanismAssemblyProbabilityResultType.Manual, ManualFailureMechanismAssemblyProbability = random.NextDouble() }; using (new AssemblyToolCalculatorFactoryConfig()) { // Call FailureMechanismAssemblyResultWrapper assemblyResult = FailureMechanismAssemblyResultFactory.AssembleFailureMechanism( random.NextDouble(), Enumerable.Empty <FailureMechanismSectionAssemblyResult>(), random.NextBoolean(), failureMechanismResult); // Assert var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; Assert.AreEqual(0, calculator.FailureMechanismN); Assert.IsNull(calculator.SectionAssemblyResultsInput); Assert.IsFalse(calculator.ApplyLengthEffect); Assert.AreEqual(failureMechanismResult.ManualFailureMechanismAssemblyProbability, assemblyResult.AssemblyResult); Assert.AreEqual(AssemblyMethod.Manual, assemblyResult.AssemblyMethod); } }
public void AssembleFailureMechanism_CalculatorRan_ReturnsExpectedOutput() { // Setup var failureMechanism = new ClosingStructuresFailureMechanism { AssemblyResult = { ProbabilityResultType = FailureMechanismAssemblyProbabilityResultType.Automatic } }; var assessmentSection = new AssessmentSectionStub(); using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; // Call FailureMechanismAssemblyResultWrapper result = ClosingStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism, assessmentSection); // Assert Assert.AreSame(calculator.AssemblyResultOutput, result); } }
public void AssembleFailureMechanism_CalculatorThrowsException_ThrowsAssemblyException() { // Setup var failureMechanism = new ClosingStructuresFailureMechanism { AssemblyResult = { ProbabilityResultType = FailureMechanismAssemblyProbabilityResultType.Automatic } }; var assessmentSection = new AssessmentSectionStub(); using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; calculator.ThrowExceptionOnCalculate = true; // Call void Call() => ClosingStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism, assessmentSection); // Assert var exception = Assert.Throws <AssemblyException>(Call); Exception innerException = exception.InnerException; Assert.IsInstanceOf <FailureMechanismAssemblyCalculatorException>(innerException); Assert.AreEqual(innerException.Message, exception.Message); } }
public void FailureMechanismResultsView_AllDataSet_SetsCorrectInputOnCalculator() { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); FailureMechanismTestHelper.SetSections(failureMechanism, new[] { section }); var assessmentSection = new AssessmentSectionStub(); // Call using (new AssemblyToolCalculatorFactoryConfig()) using (ShowFailureMechanismResultsView(failureMechanism, assessmentSection)) { // Assert var testFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismAssemblyCalculatorStub calculator = testFactory.LastCreatedFailureMechanismAssemblyCalculator; Assert.AreEqual(failureMechanism.GeneralInput.N, calculator.FailureMechanismN); } }
public void AssembleFailureMechanism_WithInput_SetsInputOnCalculator() { // Setup var failureMechanism = new ClosingStructuresFailureMechanism { AssemblyResult = { ProbabilityResultType = FailureMechanismAssemblyProbabilityResultType.Automatic } }; failureMechanism.SetSections(new[] { FailureMechanismSectionTestFactory.CreateFailureMechanismSection() }, "APath"); var assessmentSection = new AssessmentSectionStub(); using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; FailureMechanismAssemblyCalculatorStub failureMechanismAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; // Call ClosingStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism(failureMechanism, assessmentSection); // Assert double expectedN = failureMechanism.GeneralInput.N; Assert.AreEqual(expectedN, failureMechanismAssemblyCalculator.FailureMechanismN); Assert.AreSame(calculator.FailureMechanismSectionAssemblyResultOutput.AssemblyResult, failureMechanismAssemblyCalculator.SectionAssemblyResultsInput.Single()); } }
/// <summary> /// Creates a new instance of <see cref="TestAssemblyToolCalculatorFactory"/>. /// </summary> public TestAssemblyToolCalculatorFactory() { LastCreatedAssessmentSectionAssemblyGroupBoundariesCalculator = new AssessmentSectionAssemblyGroupBoundariesCalculatorStub(); LastCreatedFailureMechanismSectionAssemblyGroupBoundariesCalculator = new FailureMechanismSectionAssemblyGroupBoundariesCalculatorStub(); LastCreatedFailureMechanismSectionAssemblyCalculator = new FailureMechanismSectionAssemblyCalculatorStub(); LastCreatedFailureMechanismAssemblyCalculator = new FailureMechanismAssemblyCalculatorStub(); LastCreatedAssessmentSectionAssemblyCalculator = new AssessmentSectionAssemblyCalculatorStub(); }
public void AssembleFailureMechanism_CalculatorRan_ReturnsOutput() { // Setup using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; // Call FailureMechanismAssemblyResultWrapper assemblyResult = FailureMechanismAssemblyResultFactory.AssembleFailureMechanism( 0, Enumerable.Empty <FailureMechanismSectionAssemblyResult>(), false, new FailureMechanismAssemblyResult()); // Assert Assert.AreSame(calculator.AssemblyResultOutput, assemblyResult); } }
public void GivenMacroStabilityInwardsFailureMechanismResultView_WhenNestedCalculationInputNotifiesObservers_ThenDataGridViewUpdatedAndAssemblyPerformed() { // Given var failureMechanism = new MacroStabilityInwardsFailureMechanism(); FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection("Section 1"); FailureMechanismTestHelper.SetSections(failureMechanism, new[] { section }); MacroStabilityInwardsCalculationScenario calculationScenario = MacroStabilityInwardsCalculationScenarioTestFactory.CreateMacroStabilityInwardsCalculationScenario(section); var calculationGroup = new CalculationGroup(); calculationGroup.Children.Add(calculationScenario); failureMechanism.CalculationsGroup.Children.Add(calculationGroup); using (new AssemblyToolCalculatorFactoryConfig()) using (ShowFailureMechanismResultsView(failureMechanism)) { var testFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = testFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; failureMechanismSectionAssemblyCalculator.FailureMechanismSectionAssemblyResultOutput = new FailureMechanismSectionAssemblyResultWrapper( new FailureMechanismSectionAssemblyResult(1, 1, 1, FailureMechanismSectionAssemblyGroup.III), AssemblyMethod.BOI0A1, AssemblyMethod.BOI0B1); FailureMechanismAssemblyCalculatorStub failureMechanismAssemblyCalculator = testFactory.LastCreatedFailureMechanismAssemblyCalculator; IEnumerable <FailureMechanismSectionAssemblyResult> initialCalculatorInput = failureMechanismAssemblyCalculator.SectionAssemblyResultsInput .ToArray(); var rowsChanged = false; DataGridView dataGridView = GetDataGridView(); dataGridView.Rows.CollectionChanged += (sender, args) => rowsChanged = true; // Precondition Assert.IsFalse(rowsChanged); // When calculationScenario.InputParameters.NotifyObservers(); // Then Assert.IsTrue(rowsChanged); IEnumerable <FailureMechanismSectionAssemblyResult> updatedCalculatorInput = failureMechanismAssemblyCalculator.SectionAssemblyResultsInput .ToArray(); CollectionAssert.AreNotEqual(initialCalculatorInput, updatedCalculatorInput); } }
public void GivenFormWithAssemblyResultTotalView_ThenExpectedCellsVisible() { // Given using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; using (AssemblyResultTotalView view = ShowAssemblyResultTotalView()) { // Then DataGridView dataGridView = GetDataGridView(); AssertFailureMechanismRows(view.AssessmentSection, calculator.AssemblyResultOutput.AssemblyResult, dataGridView.Rows); } } }
public void AssembleAssessmentSection_FailureMechanismCalculatorThrowsException_ThrowsAssemblyException() { // Setup using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; calculator.ThrowExceptionOnCalculate = true; // Call void Call() => AssessmentSectionAssemblyFactory.AssembleAssessmentSection(CreateAssessmentSectionContainingFailureMechanismsWithInAssemblyTrue()); // Assert var exception = Assert.Throws <AssemblyException>(Call); Exception innerException = exception.InnerException; Assert.IsInstanceOf <AssemblyException>(innerException); Assert.AreEqual("Voor een of meerdere faalmechanismen kan geen assemblageresultaat worden bepaald.", exception.Message); } }
public void AssembleFailureMechanism_CalculatorThrowsException_ThrowsAssemblyException() { // Setup using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; calculator.ThrowExceptionOnCalculate = true; // Call void Call() => FailureMechanismAssemblyResultFactory.AssembleFailureMechanism( 0, Enumerable.Empty <FailureMechanismSectionAssemblyResult>(), false, new FailureMechanismAssemblyResult()); // Assert var exception = Assert.Throws <AssemblyException>(Call); Exception innerException = exception.InnerException; Assert.IsInstanceOf <FailureMechanismAssemblyCalculatorException>(innerException); Assert.AreEqual(innerException.Message, exception.Message); } }
public void GivenPipingFailureMechanismResultView_WhenScenarioConfigurationsPerFailureMechanismSectionNotifiesObservers_ThenDataGridViewUpdatedAndAssemblyPerformed() { // Given var failureMechanism = new PipingFailureMechanism(); FailureMechanismTestHelper.SetSections(failureMechanism, new[] { FailureMechanismSectionTestFactory.CreateFailureMechanismSection("Section 1") }); using (new AssemblyToolCalculatorFactoryConfig()) using (ShowFailureMechanismResultsView(failureMechanism)) { var testFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = testFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; failureMechanismSectionAssemblyCalculator.FailureMechanismSectionAssemblyResultOutput = new FailureMechanismSectionAssemblyResultWrapper( new FailureMechanismSectionAssemblyResult(1, 1, 1, FailureMechanismSectionAssemblyGroup.III), AssemblyMethod.BOI0A1, AssemblyMethod.BOI0B1); FailureMechanismAssemblyCalculatorStub failureMechanismAssemblyCalculator = testFactory.LastCreatedFailureMechanismAssemblyCalculator; IEnumerable <FailureMechanismSectionAssemblyResult> initialCalculatorInput = failureMechanismAssemblyCalculator.SectionAssemblyResultsInput .ToArray(); var rowsChanged = false; DataGridView dataGridView = GetDataGridView(); dataGridView.Rows.CollectionChanged += (sender, args) => rowsChanged = true; // Precondition Assert.IsFalse(rowsChanged); // When failureMechanism.ScenarioConfigurationsPerFailureMechanismSection.First().NotifyObservers(); // Then Assert.IsTrue(rowsChanged); IEnumerable <FailureMechanismSectionAssemblyResult> updatedCalculatorInput = failureMechanismAssemblyCalculator.SectionAssemblyResultsInput .ToArray(); CollectionAssert.AreNotEqual(initialCalculatorInput, updatedCalculatorInput); } }
public void AssembleFailureMechanism_WithInputWithProbabilityResultTypeAutomatic_SetsInputOnCalculator() { // Setup var random = new Random(21); double n = random.NextDouble(); bool applyLengthEffect = random.NextBoolean(); IEnumerable <FailureMechanismSectionAssemblyResult> sectionResults = Enumerable.Empty <FailureMechanismSectionAssemblyResult>(); using (new AssemblyToolCalculatorFactoryConfig()) { // Call FailureMechanismAssemblyResultFactory.AssembleFailureMechanism(n, sectionResults, applyLengthEffect, new FailureMechanismAssemblyResult()); // Assert var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; Assert.AreEqual(n, calculator.FailureMechanismN); Assert.AreSame(sectionResults, calculator.SectionAssemblyResultsInput); Assert.AreEqual(applyLengthEffect, calculator.ApplyLengthEffect); } }