Index: Ringtoets/Common/src/Ringtoets.Common.Data/BaseFailureMechanism.cs
===================================================================
diff -u -r6f069737c5a49402fc344e4f7e350c6d869b69f2 -reaba38093f5f76350766303e83e497fd4af07227
--- Ringtoets/Common/src/Ringtoets.Common.Data/BaseFailureMechanism.cs (.../BaseFailureMechanism.cs) (revision 6f069737c5a49402fc344e4f7e350c6d869b69f2)
+++ Ringtoets/Common/src/Ringtoets.Common.Data/BaseFailureMechanism.cs (.../BaseFailureMechanism.cs) (revision eaba38093f5f76350766303e83e497fd4af07227)
@@ -69,7 +69,7 @@
}
set
{
- if (value <= 0 || value > 100)
+ if (value < 0 || value > 100)
{
throw new ArgumentOutOfRangeException("value", Resources.Contribution_Value_should_be_in_interval_0_100);
}
Index: Ringtoets/Common/src/Ringtoets.Common.Data/Properties/Resources.Designer.cs
===================================================================
diff -u -r5b575c7019f5ec9d0db2784fda5cb5c7b4df9a90 -reaba38093f5f76350766303e83e497fd4af07227
--- Ringtoets/Common/src/Ringtoets.Common.Data/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 5b575c7019f5ec9d0db2784fda5cb5c7b4df9a90)
+++ Ringtoets/Common/src/Ringtoets.Common.Data/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision eaba38093f5f76350766303e83e497fd4af07227)
@@ -70,7 +70,7 @@
}
///
- /// Looks up a localized string similar to De waarde voor de toegestane bijdrage aan faalkans moet in interval (0,100] liggen..
+ /// Looks up a localized string similar to De waarde voor de toegestane bijdrage aan faalkans moet in interval [0,100] liggen..
///
public static string Contribution_Value_should_be_in_interval_0_100 {
get {
Index: Ringtoets/Common/src/Ringtoets.Common.Data/Properties/Resources.resx
===================================================================
diff -u -r5b575c7019f5ec9d0db2784fda5cb5c7b4df9a90 -reaba38093f5f76350766303e83e497fd4af07227
--- Ringtoets/Common/src/Ringtoets.Common.Data/Properties/Resources.resx (.../Resources.resx) (revision 5b575c7019f5ec9d0db2784fda5cb5c7b4df9a90)
+++ Ringtoets/Common/src/Ringtoets.Common.Data/Properties/Resources.resx (.../Resources.resx) (revision eaba38093f5f76350766303e83e497fd4af07227)
@@ -124,7 +124,7 @@
Randvoorwaarden
- De waarde voor de toegestane bijdrage aan faalkans moet in interval (0,100] liggen.
+ De waarde voor de toegestane bijdrage aan faalkans moet in interval [0,100] liggen.
Locaties
Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/BaseFailureMechanismTest.cs
===================================================================
diff -u -r6f069737c5a49402fc344e4f7e350c6d869b69f2 -reaba38093f5f76350766303e83e497fd4af07227
--- Ringtoets/Common/test/Ringtoets.Common.Data.Test/BaseFailureMechanismTest.cs (.../BaseFailureMechanismTest.cs) (revision 6f069737c5a49402fc344e4f7e350c6d869b69f2)
+++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/BaseFailureMechanismTest.cs (.../BaseFailureMechanismTest.cs) (revision eaba38093f5f76350766303e83e497fd4af07227)
@@ -32,7 +32,6 @@
[Test]
[TestCase(101)]
- [TestCase(0)]
[TestCase(-1e-6)]
[TestCase(-1)]
[TestCase(100+1e-6)]
@@ -51,7 +50,7 @@
[Test]
[TestCase(100)]
[TestCase(50)]
- [TestCase(1e-9)]
+ [TestCase(0)]
public void Contribution_ValueIntsideValidRegion_DoesNotThrow(double value)
{
// Setup
Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/Contribution/FailureMechanismContributionTest.cs
===================================================================
diff -u -r019c82bf6273ff150976c8c2ea9b895258951455 -reaba38093f5f76350766303e83e497fd4af07227
--- Ringtoets/Common/test/Ringtoets.Common.Data.Test/Contribution/FailureMechanismContributionTest.cs (.../FailureMechanismContributionTest.cs) (revision 019c82bf6273ff150976c8c2ea9b895258951455)
+++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/Contribution/FailureMechanismContributionTest.cs (.../FailureMechanismContributionTest.cs) (revision eaba38093f5f76350766303e83e497fd4af07227)
@@ -83,7 +83,6 @@
}
[Test]
- [TestCase(0)]
[TestCase(-10)]
[TestCase(-1e-6)]
[TestCase(100 + 1e-6)]
@@ -106,7 +105,7 @@
[Test]
[TestCase(50)]
- [TestCase(1e-6)]
+ [TestCase(0)]
[TestCase(100)]
public void Constructor_EmptyFailureMechanisms_OnlyOtherFailureMechanismAddedWithContributionSet(double contribution)
{
Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/AssessmentSection.cs
===================================================================
diff -u -r8b5a6f938fe2b04cd78623649df37580e145055f -reaba38093f5f76350766303e83e497fd4af07227
--- Ringtoets/Integration/src/Ringtoets.Integration.Data/AssessmentSection.cs (.../AssessmentSection.cs) (revision 8b5a6f938fe2b04cd78623649df37580e145055f)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Data/AssessmentSection.cs (.../AssessmentSection.cs) (revision eaba38093f5f76350766303e83e497fd4af07227)
@@ -77,6 +77,10 @@
{
Contribution = 3
};
+ DuneErosionFailureMechanism = new FailureMechanismPlaceholder(Resources.DuneErosionFailureMechanism_DisplayName)
+ {
+ Contribution = 0
+ };
FailureMechanismContribution = new FailureMechanismContribution(GetFailureMechanisms(), 30, 30000);
}
@@ -152,6 +156,11 @@
///
public FailureMechanismPlaceholder GrassRevetmentFailureMechanism { get; private set; }
+ ///
+ /// Gets the "Duinerosie" failure mechanism.
+ ///
+ public FailureMechanismPlaceholder DuneErosionFailureMechanism { get; private set; }
+
public override IEnumerable GetFailureMechanisms()
{
yield return PipingFailureMechanism;
@@ -163,6 +172,7 @@
yield return StoneRevetmentFailureMechanism;
yield return AsphaltRevetmentFailureMechanism;
yield return GrassRevetmentFailureMechanism;
+ yield return DuneErosionFailureMechanism;
}
}
}
\ No newline at end of file
Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Properties/Resources.Designer.cs
===================================================================
diff -u -r8b5a6f938fe2b04cd78623649df37580e145055f -reaba38093f5f76350766303e83e497fd4af07227
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 8b5a6f938fe2b04cd78623649df37580e145055f)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision eaba38093f5f76350766303e83e497fd4af07227)
@@ -163,6 +163,15 @@
}
///
+ /// Looks up a localized string similar to n.v.t.
+ ///
+ public static string FailureMechanismContributionView_ProbabilityPerYear_Not_applicable {
+ get {
+ return ResourceManager.GetString("FailureMechanismContributionView_ProbabilityPerYear_Not_applicable", resourceCulture);
+ }
+ }
+
+ ///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
public static System.Drawing.Bitmap FailureMechanismIcon {
Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Properties/Resources.resx
===================================================================
diff -u -r8b5a6f938fe2b04cd78623649df37580e145055f -reaba38093f5f76350766303e83e497fd4af07227
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Properties/Resources.resx (.../Resources.resx) (revision 8b5a6f938fe2b04cd78623649df37580e145055f)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Properties/Resources.resx (.../Resources.resx) (revision eaba38093f5f76350766303e83e497fd4af07227)
@@ -225,4 +225,7 @@
Selecteer database
+
+ n.v.t
+
\ No newline at end of file
Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.Designer.cs
===================================================================
diff -u -ra9a8404155745054ae98ccfeec456b820b05b2bf -reaba38093f5f76350766303e83e497fd4af07227
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.Designer.cs (.../FailureMechanismContributionView.Designer.cs) (revision a9a8404155745054ae98ccfeec456b820b05b2bf)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.Designer.cs (.../FailureMechanismContributionView.Designer.cs) (revision eaba38093f5f76350766303e83e497fd4af07227)
@@ -15,19 +15,6 @@
///
private System.ComponentModel.IContainer components = null;
- ///
- /// Clean up any resources being used.
- ///
- /// true if managed resources should be disposed; otherwise, false.
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
#region Component Designer generated code
///
Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs
===================================================================
diff -u -rd1565906db90df7be4365d277d5ff22dc2d77a82 -reaba38093f5f76350766303e83e497fd4af07227
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs (.../FailureMechanismContributionView.cs) (revision d1565906db90df7be4365d277d5ff22dc2d77a82)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs (.../FailureMechanismContributionView.cs) (revision eaba38093f5f76350766303e83e497fd4af07227)
@@ -20,14 +20,18 @@
// All rights reserved.
using System;
+using System.Linq;
using System.Windows.Forms;
+
using Core.Common.Base;
using Core.Common.Controls.Views;
-using Core.Common.Gui.Properties;
using Core.Common.Utils.Reflection;
using Ringtoets.Common.Data.Contribution;
+using CommonGuiResources = Core.Common.Gui.Properties.Resources;
+using RingtoetsIntegrationFormsResources = Ringtoets.Integration.Forms.Properties.Resources;
+
namespace Ringtoets.Integration.Forms.Views
{
///
@@ -37,6 +41,7 @@
///
public partial class FailureMechanismContributionView : UserControl, IView, IObserver
{
+ private DataGridViewColumn probabilityPerYearColumn;
private FailureMechanismContribution data;
///
@@ -48,6 +53,7 @@
InitializeGridColumns();
BindNormChange();
BindNormInputLeave();
+ SubscribeEvents();
}
public object Data
@@ -68,6 +74,43 @@
probabilityDistributionGrid.Invalidate();
}
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ UnsubscribeEvents();
+ base.Dispose(disposing);
+ }
+
+ private void SubscribeEvents()
+ {
+ probabilityDistributionGrid.CellFormatting += ProbabilityDistributionGridOnCellFormatting;
+ }
+
+ private void UnsubscribeEvents()
+ {
+ probabilityDistributionGrid.CellFormatting -= ProbabilityDistributionGridOnCellFormatting;
+ }
+
+ private void ProbabilityDistributionGridOnCellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
+ {
+ if (e.ColumnIndex == probabilityPerYearColumn.Index)
+ {
+ var contributionItem = data.Distribution.ElementAt(e.RowIndex);
+ if (contributionItem.Contribution == 0.0)
+ {
+ e.Value = RingtoetsIntegrationFormsResources.FailureMechanismContributionView_ProbabilityPerYear_Not_applicable;
+ e.FormattingApplied = true;
+ }
+ }
+ }
+
private void SetNormValue(FailureMechanismContribution value)
{
UnbindNormChange();
@@ -155,7 +198,7 @@
var assessmentColumn = new DataGridViewTextBoxColumn
{
DataPropertyName = assessmentName,
- HeaderText = Resources.FailureMechanismContributionView_GridColumn_Assessment,
+ HeaderText = CommonGuiResources.FailureMechanismContributionView_GridColumn_Assessment,
Name = string.Format(columnNameFormat, assessmentName),
AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader
};
@@ -164,16 +207,16 @@
var probabilityColumn = new DataGridViewTextBoxColumn
{
DataPropertyName = contributionName,
- HeaderText = Resources.FailureMechanismContributionView_GridColumn_Contribution,
+ HeaderText = CommonGuiResources.FailureMechanismContributionView_GridColumn_Contribution,
Name = string.Format(columnNameFormat, contributionName),
AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader
};
var probabilitySpaceName = TypeUtils.GetMemberName(fmci => fmci.ProbabilitySpace);
- var probabilityPerYearColumn = new DataGridViewTextBoxColumn
+ probabilityPerYearColumn = new DataGridViewTextBoxColumn
{
DataPropertyName = probabilitySpaceName,
- HeaderText = Resources.FailureMechanismContributionView_GridColumn_ProbabilitySpace,
+ HeaderText = CommonGuiResources.FailureMechanismContributionView_GridColumn_ProbabilitySpace,
Name = string.Format(columnNameFormat, probabilitySpaceName),
AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill,
MinimumWidth = 100
Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs
===================================================================
diff -u -r8b5a6f938fe2b04cd78623649df37580e145055f -reaba38093f5f76350766303e83e497fd4af07227
--- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs (.../AssessmentSectionTest.cs) (revision 8b5a6f938fe2b04cd78623649df37580e145055f)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs (.../AssessmentSectionTest.cs) (revision eaba38093f5f76350766303e83e497fd4af07227)
@@ -30,9 +30,10 @@
var stoneRevetmentName = "Dijken - Steenbekledingen";
var asphaltName = "Dijken - Asfaltbekledingen";
var grassRevetmentName = "Dijken - Grasbekledingen";
+ var duneErosionName = "Duinen - Erosie";
var pipingContribution = 24;
- var contributions = new double[] { pipingContribution, 24, 4, 2, 4, 2, 4, 3, 3, 30 };
+ var contributions = new double[] { pipingContribution, 24, 4, 2, 4, 2, 4, 3, 3, 0, 30 };
var names = new[] {
pipingName,
grassErosionName,
@@ -43,6 +44,7 @@
stoneRevetmentName,
asphaltName,
grassRevetmentName,
+ duneErosionName,
"Overig"
};
@@ -66,6 +68,7 @@
Assert.AreEqual(stoneRevetmentName, section.StoneRevetmentFailureMechanism.Name);
Assert.AreEqual(asphaltName, section.AsphaltRevetmentFailureMechanism.Name);
Assert.AreEqual(grassRevetmentName, section.GrassRevetmentFailureMechanism.Name);
+ Assert.AreEqual(duneErosionName, section.DuneErosionFailureMechanism.Name);
Assert.AreEqual(24, section.PipingFailureMechanism.Contribution);
Assert.AreEqual(24, section.GrassErosionFailureMechanism.Contribution);
@@ -76,10 +79,11 @@
Assert.AreEqual(4, section.StoneRevetmentFailureMechanism.Contribution);
Assert.AreEqual(3, section.AsphaltRevetmentFailureMechanism.Contribution);
Assert.AreEqual(3, section.GrassRevetmentFailureMechanism.Contribution);
+ Assert.AreEqual(0, section.DuneErosionFailureMechanism.Contribution);
Assert.AreEqual(contributions, section.FailureMechanismContribution.Distribution.Select(d => d.Contribution));
Assert.AreEqual(names, section.FailureMechanismContribution.Distribution.Select(d => d.Assessment));
- Assert.AreEqual(Enumerable.Repeat(30000.0, 10), section.FailureMechanismContribution.Distribution.Select(d => d.Norm));
+ Assert.AreEqual(Enumerable.Repeat(30000.0, 11), section.FailureMechanismContribution.Distribution.Select(d => d.Norm));
Assert.AreEqual(pipingContribution, section.PipingFailureMechanism.SemiProbabilisticInput.Contribution);
Assert.AreEqual(30000.0, section.PipingFailureMechanism.SemiProbabilisticInput.Norm);
@@ -113,7 +117,7 @@
var failureMechanisms = assessmentSection.GetFailureMechanisms().ToArray();
// Assert
- Assert.AreEqual(9, failureMechanisms.Length);
+ Assert.AreEqual(10, failureMechanisms.Length);
Assert.AreSame(assessmentSection.PipingFailureMechanism, failureMechanisms[0]);
Assert.AreSame(assessmentSection.GrassErosionFailureMechanism, failureMechanisms[1]);
Assert.AreSame(assessmentSection.MacrostabilityInwardFailureMechanism, failureMechanisms[2]);
@@ -123,6 +127,7 @@
Assert.AreSame(assessmentSection.StoneRevetmentFailureMechanism, failureMechanisms[6]);
Assert.AreSame(assessmentSection.AsphaltRevetmentFailureMechanism, failureMechanisms[7]);
Assert.AreSame(assessmentSection.GrassRevetmentFailureMechanism, failureMechanisms[8]);
+ Assert.AreSame(assessmentSection.DuneErosionFailureMechanism, failureMechanisms[9]);
}
[Test]
@@ -138,19 +143,19 @@
// Assert
var failureMechanisms = assessmentSection.GetFailureMechanisms().ToArray();
- Assert.AreEqual(10, contribution.Length);
+ Assert.AreEqual(11, contribution.Length);
- for (int i = 0; i < 9; i++)
+ for (int i = 0; i < 10; i++)
{
Assert.AreEqual(failureMechanisms[i].Name, contribution[i].Assessment);
Assert.AreEqual(failureMechanisms[i].Contribution, contribution[i].Contribution);
Assert.AreEqual(norm, contribution[i].Norm);
Assert.AreEqual((norm / contribution[i].Contribution) * 100, contribution[i].ProbabilitySpace);
}
- Assert.AreEqual("Overig", contribution[9].Assessment);
- Assert.AreEqual(30, contribution[9].Contribution);
- Assert.AreEqual(norm, contribution[9].Norm);
- Assert.AreEqual((norm / contribution[9].Contribution) * 100, 100000);
+ Assert.AreEqual("Overig", contribution[10].Assessment);
+ Assert.AreEqual(30, contribution[10].Contribution);
+ Assert.AreEqual(norm, contribution[10].Norm);
+ Assert.AreEqual((norm / contribution[10].Contribution) * 100, 100000);
}
[Test]
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs
===================================================================
diff -u -rd1565906db90df7be4365d277d5ff22dc2d77a82 -reaba38093f5f76350766303e83e497fd4af07227
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs (.../FailureMechanismContributionViewTest.cs) (revision d1565906db90df7be4365d277d5ff22dc2d77a82)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs (.../FailureMechanismContributionViewTest.cs) (revision eaba38093f5f76350766303e83e497fd4af07227)
@@ -13,10 +13,12 @@
[TestFixture]
public class FailureMechanismContributionViewTest
{
+ private const string normInputTextBoxName = "normInput";
+ private const string dataGridViewControlName = "probabilityDistributionGrid";
+
private MockRepository mockRepository;
private FailureMechanismContribution distribution;
private Form testForm;
- private ControlTester normTester;
[SetUp]
public void Setup()
@@ -52,6 +54,7 @@
})
{
ShowFormWithView(distributionView);
+ var normTester = new ControlTester(normInputTextBoxName);
// Assert
Assert.AreEqual(distribution.Norm.ToString(), normTester.Text);
@@ -75,6 +78,7 @@
})
{
ShowFormWithView(distributionView);
+ var normTester = new ControlTester(normInputTextBoxName);
// Precondition
Assert.AreEqual(distribution.Norm.ToString(), normTester.Text);
@@ -115,6 +119,7 @@
})
{
ShowFormWithView(distributionView);
+ var normTester = new ControlTester(normInputTextBoxName);
// Precondition
Assert.AreEqual(aValue.ToString(), normTester.Properties.Text);
@@ -137,12 +142,76 @@
mockRepository.VerifyAll();
}
+ [Test]
+ public void GivenFailureMechanismContributionView_WhenSettingDataWithZeroContributionFailureMechanism_ProbabilitySpaceShowsAsNotApplicable()
+ {
+ // Given
+ using (var view = new FailureMechanismContributionView())
+ {
+ // When
+ var failureMechanismStub = mockRepository.Stub();
+ failureMechanismStub.Stub(fm => fm.Name).Return("A");
+ failureMechanismStub.Contribution = 0;
+ mockRepository.ReplayAll();
+
+ var contributionData = new FailureMechanismContribution(new[]
+ {
+ failureMechanismStub
+ }, 100, 500);
+
+ view.Data = contributionData;
+ ShowFormWithView(view);
+
+ // Then
+ var dataGridView = (DataGridView)new ControlTester(dataGridViewControlName).TheObject;
+
+ DataGridViewRow zeroContributionFailureMechanismRow = dataGridView.Rows[0];
+ DataGridViewCell probabilitySpaceCell = zeroContributionFailureMechanismRow.Cells[2];
+ Assert.AreEqual("n.v.t", probabilitySpaceCell.FormattedValue);
+ }
+ mockRepository.VerifyAll();
+ }
+
+ [Test]
+ public void GivenFailureMechanismContributionView_WhenSettingDataWithNormalContributionFailureMechanism_ProbabilitySpaceShowsAsLocalisedText()
+ {
+ // Given
+ using (var view = new FailureMechanismContributionView())
+ {
+ // When
+ const double contribution = 25.0;
+ const int norm = 500;
+
+ var failureMechanismStub = mockRepository.Stub();
+ failureMechanismStub.Stub(fm => fm.Name).Return("A");
+ failureMechanismStub.Contribution = contribution;
+ mockRepository.ReplayAll();
+
+ var contributionData = new FailureMechanismContribution(new[]
+ {
+ failureMechanismStub
+ }, 100.0 - contribution, norm);
+
+ view.Data = contributionData;
+ ShowFormWithView(view);
+
+ // Then
+ var dataGridView = (DataGridView)new ControlTester(dataGridViewControlName).TheObject;
+
+ DataGridViewRow zeroContributionFailureMechanismRow = dataGridView.Rows[0];
+ DataGridViewCell probabilitySpaceCell = zeroContributionFailureMechanismRow.Cells[2];
+
+ string expectedTextValue = new FailureMechanismContributionItem(failureMechanismStub, norm)
+ .ProbabilitySpace.ToString(probabilitySpaceCell.InheritedStyle.Format, probabilitySpaceCell.InheritedStyle.FormatProvider);
+ Assert.AreEqual(expectedTextValue, probabilitySpaceCell.FormattedValue);
+ }
+ mockRepository.VerifyAll();
+ }
+
private void ShowFormWithView(FailureMechanismContributionView distributionView)
{
testForm.Controls.Add(distributionView);
testForm.Show();
-
- normTester = new ControlTester("normInput");
}
}
}
\ No newline at end of file