public void IsStructureIntersectionWithReferenceLineInSection_EmptySegmentCollection_ThrowsInvalidOperationException() { // Setup var structure = new TestStructure(new Point2D(0.0, 0.0)); var referenceLine = new ReferenceLine(); referenceLine.SetGeometry(new[] { new Point2D(0.0, 0.0), new Point2D(10.0, 0.0) }); var calculation = new TestStructuresCalculationScenario { InputParameters = { Structure = structure } }; // Call void Call() => calculation.IsStructureIntersectionWithReferenceLineInSection(Enumerable.Empty <Segment2D>()); // Assert Assert.Throws <InvalidOperationException>(Call); }
public void GetInitialFailureMechanismResultProbability_RelevantScenarioContributionsDoNotAddUpTo1_ReturnNaN(double contributionA, double contributionB) { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new AdoptableFailureMechanismSectionResult(section); var calculationScenarioA = new TestStructuresCalculationScenario { InputParameters = { Structure = new TestStructure(section.StartPoint) }, Contribution = (RoundedDouble)contributionA, Output = new TestStructuresOutput(0.1) }; var calculationScenarioB = new TestStructuresCalculationScenario { InputParameters = { Structure = new TestStructure(section.StartPoint) }, Contribution = (RoundedDouble)contributionB, Output = new TestStructuresOutput(0.2) }; // Call double initialFailureMechanismResultProbability = result.GetInitialFailureMechanismResultProbability(new[] { calculationScenarioA, calculationScenarioB }); // Assert Assert.IsNaN(initialFailureMechanismResultProbability); }
public void GetInitialFailureMechanismResultProbability_NoRelevantScenarios_ReturnsNaN() { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanismSectionResult = new AdoptableFailureMechanismSectionResult(section); var calculationScenario = new TestStructuresCalculationScenario { InputParameters = { Structure = new TestStructure(section.StartPoint) }, IsRelevant = false, Output = new TestStructuresOutput() }; // Call double initialFailureMechanismResultProbability = failureMechanismSectionResult.GetInitialFailureMechanismResultProbability(new[] { calculationScenario }); // Assert Assert.IsNaN(initialFailureMechanismResultProbability); }
public void IsStructureIntersectionWithReferenceLineInSection_StructureDoesNotIntersectReferenceLine_ReturnsFalse() { // Setup var structure = new TestStructure(new Point2D(0.0, 0.0)); var referenceLine = new ReferenceLine(); referenceLine.SetGeometry(new[] { new Point2D(10.0, 0.0), new Point2D(20.0, 0.0) }); var calculation = new TestStructuresCalculationScenario { InputParameters = { Structure = structure } }; IEnumerable <Segment2D> lineSegments = Math2D.ConvertPointsToLineSegments(referenceLine.Points); // Call bool intersects = calculation.IsStructureIntersectionWithReferenceLineInSection(lineSegments); // Assert Assert.IsFalse(intersects); }
public void IsStructureIntersectionWithReferenceLineInSection_CalculationWithoutStructure_ReturnsFalse() { // Setup var calculation = new TestStructuresCalculationScenario(); // Call bool intersects = calculation.IsStructureIntersectionWithReferenceLineInSection(Enumerable.Empty <Segment2D>()); // Assert Assert.IsFalse(intersects); }
public void IsStructureIntersectionWithReferenceLineInSection_LineSegmentsNull_ThrowsArgumentNullException() { // Setup var calculation = new TestStructuresCalculationScenario(); // Call void Call() => calculation.IsStructureIntersectionWithReferenceLineInSection(null); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("lineSegments", exception.ParamName); }
public void GivenStructuresFailureMechanismResultView_WhenNestedCalculationInputNotifiesObservers_ThenDataGridViewUpdatedAndAssemblyPerformed() { // Given var failureMechanism = new TestStructuresFailureMechanism(); FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection("Section 1"); FailureMechanismTestHelper.SetSections(failureMechanism, new[] { section }); var calculationScenario = new TestStructuresCalculationScenario { InputParameters = { Structure = new TestStructure(section.StartPoint) } }; var calculationGroup = new CalculationGroup(); calculationGroup.Children.Add(calculationScenario); failureMechanism.CalculationsGroup.Children.Add(calculationGroup); int nrOfCalls = 0; Func <TestStructuresFailureMechanism, IAssessmentSection, FailureMechanismAssemblyResultWrapper> performFailureMechanismAssemblyFunc = (fm, ass) => { nrOfCalls++; return(new FailureMechanismAssemblyResultWrapper(double.NaN, AssemblyMethod.BOI1A1)); }; using (new AssemblyToolCalculatorFactoryConfig()) using (ShowFailureMechanismResultsView(failureMechanism, performFailureMechanismAssemblyFunc)) { var rowsChanged = false; DataGridView dataGridView = GetDataGridView(); dataGridView.Rows.CollectionChanged += (sender, args) => rowsChanged = true; // Precondition Assert.AreEqual(1, nrOfCalls); Assert.IsFalse(rowsChanged); // When calculationScenario.InputParameters.NotifyObservers(); // Then Assert.AreEqual(2, nrOfCalls); Assert.IsTrue(rowsChanged); } }
public void CreateInstance_StructuresOutputContext_ReturnStructuresOutputProperties() { // Setup var calculation = new TestStructuresCalculationScenario { Output = new StructuresOutput(0, null) }; // Call IObjectProperties objectProperties = info.CreateInstance(new StructuresOutputContext(calculation)); // Assert Assert.IsInstanceOf <ObjectProperties <StructuresOutput> >(objectProperties); Assert.AreSame(calculation.Output, objectProperties.Data); }
public void GetInitialFailureMechanismResultProbability_MultipleScenarios_ReturnsValueBasedOnRelevantScenarios() { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanismSectionResult = new AdoptableFailureMechanismSectionResult(section); var calculationScenario1 = new TestStructuresCalculationScenario { InputParameters = { Structure = new TestStructure(section.StartPoint) }, Contribution = (RoundedDouble)0.2111, Output = new TestStructuresOutput(1.1) }; var calculationScenario2 = new TestStructuresCalculationScenario { InputParameters = { Structure = new TestStructure(section.StartPoint) }, Contribution = (RoundedDouble)0.7889, Output = new TestStructuresOutput(2.2) }; var calculationScenario3 = new TestStructuresCalculationScenario { InputParameters = { Structure = new TestStructure(section.StartPoint) }, IsRelevant = false }; TestStructuresCalculationScenario[] calculations = { calculationScenario1, calculationScenario2, calculationScenario3 }; // Call double initialFailureMechanismResultProbability = failureMechanismSectionResult.GetInitialFailureMechanismResultProbability(calculations); // Assert Assert.AreEqual(0.039607535209180436, initialFailureMechanismResultProbability); }
public void Constructor_ParentNull_ThrowsArgumentNullException() { // Setup var mockRepository = new MockRepository(); var assessmentSection = mockRepository.Stub <IAssessmentSection>(); mockRepository.ReplayAll(); var calculation = new TestStructuresCalculationScenario(); var failureMechanism = new TestCalculatableFailureMechanism(); // Call void Call() => new TestStructuresCalculationScenarioContext(calculation, null, failureMechanism, assessmentSection); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("parent", exception.ParamName); mockRepository.VerifyAll(); }
public void GetInitialFailureMechanismResultProbability_ScenarioWithNaNResults_ReturnsNaN() { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanismSectionResult = new AdoptableFailureMechanismSectionResult(section); var calculationScenario1 = new TestStructuresCalculationScenario { InputParameters = { Structure = new TestStructure(section.StartPoint) }, IsRelevant = true, Contribution = (RoundedDouble)0.2, Output = new TestStructuresOutput(double.NaN) }; var calculationScenario2 = new TestStructuresCalculationScenario { InputParameters = { Structure = new TestStructure(section.StartPoint) }, IsRelevant = true, Contribution = (RoundedDouble)0.8, Output = new TestStructuresOutput(0.1) }; TestStructuresCalculationScenario[] calculations = { calculationScenario1, calculationScenario2 }; // Call double initialFailureMechanismResultProbability = failureMechanismSectionResult.GetInitialFailureMechanismResultProbability(calculations); // Assert Assert.IsNaN(initialFailureMechanismResultProbability); }
public void Constructor_ExpectedValues() { // Setup var mocksRepository = new MockRepository(); var assessmentSection = mocksRepository.Stub <IAssessmentSection>(); mocksRepository.ReplayAll(); var calculation = new TestStructuresCalculationScenario(); var failureMechanism = new TestCalculatableFailureMechanism(); var parent = new CalculationGroup(); // Call var context = new TestStructuresCalculationScenarioContext(calculation, parent, failureMechanism, assessmentSection); // Assert Assert.IsInstanceOf <FailureMechanismItemContextBase <StructuresCalculationScenario <TestStructuresInput>, TestCalculatableFailureMechanism> >(context); Assert.IsInstanceOf <ICalculationContext <StructuresCalculationScenario <TestStructuresInput>, TestCalculatableFailureMechanism> >(context); Assert.AreSame(calculation, context.WrappedData); Assert.AreSame(parent, context.Parent); Assert.AreSame(failureMechanism, context.FailureMechanism); Assert.AreSame(assessmentSection, context.AssessmentSection); mocksRepository.VerifyAll(); }