private static string GetExpectedResult(IEnumerable <HydraulicBoundaryLocationCalculation> calculations, HydraulicBoundaryLocation hydraulicBoundaryLocation) { RoundedDouble result = calculations .Single(calculation => calculation.HydraulicBoundaryLocation.Equals(hydraulicBoundaryLocation)) .Output?.Result ?? RoundedDouble.NaN; return(result.ToString()); }
private static string GetExpectedWavePeriod(IEnumerable <DuneLocationCalculation> calculations, DuneLocation duneLocation) { RoundedDouble result = calculations .Single(calculation => calculation.DuneLocation.Equals(duneLocation)) .Output?.WavePeriod ?? RoundedDouble.NaN; return(result.ToString()); }
public void ToString_WithFormatAndDifferentCultureVariousScenarios_ExpectedText(string format, double value, int numberOfDecimals, string expectedText) { // Setup var roundedValue = new RoundedDouble(numberOfDecimals, value); // Call string text = roundedValue.ToString(format, CultureInfo.GetCultureInfo("en-GB")); // Assert Assert.AreEqual(expectedText, text); }
public void ToString_VariousScenarios_ExpectedText( double value, int numberOfDecimals, string expectedText) { // Setup var roundedValue = new RoundedDouble(numberOfDecimals, value); // Call string text = roundedValue.ToString(); // Assert Assert.AreEqual(expectedText, text); }
public void ConvertTo_NumberToString_ReturnStringInLocalEnglishCulture(double value) { // Setup var roundedDouble = new RoundedDouble(2, value); var converter = new NoValueRoundedDoubleConverter(); // Call var text = (string)converter.ConvertTo(roundedDouble, typeof(string)); // Assert Assert.AreEqual(roundedDouble.ToString(), text); }
public void CreateHydraulicBoundaryLocationCalculationFeature_WithData_ReturnFeature(bool calculationHasOutput) { // Setup const string metaDataHeader = "header"; var calculation = new HydraulicBoundaryLocationCalculation(new TestHydraulicBoundaryLocation("location 1")); if (calculationHasOutput) { calculation.Output = new TestHydraulicBoundaryLocationCalculationOutput(); } // Call MapFeature feature = HydraulicBoundaryLocationMapDataFeaturesFactory.CreateHydraulicBoundaryLocationCalculationFeature( calculation, metaDataHeader); // Assert RoundedDouble expectedMetaDataValue = calculationHasOutput ? calculation.Output.Result : RoundedDouble.NaN; MapFeaturesMetaDataTestHelper.AssertMetaData(expectedMetaDataValue.ToString(), feature, metaDataHeader); }
public void PipingCalculationsView_DataImportedOrChanged_ChangesCorrectlyObservedAndSynced() { // Setup using (var form = new Form()) { var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); PipingFailureMechanism failureMechanism = assessmentSection.Piping; // Show the view var pipingCalculationsView = new PipingCalculationsView(failureMechanism.CalculationsGroup, failureMechanism, assessmentSection); form.Controls.Add(pipingCalculationsView); form.Show(); // Obtain some relevant controls var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; // Import failure mechanism sections DataImportHelper.ImportReferenceLine(assessmentSection); DataImportHelper.ImportFailureMechanismSections(assessmentSection, failureMechanism); // Import surface lines DataImportHelper.ImportPipingSurfaceLines(assessmentSection); // Setup some calculations var calculation1 = new SemiProbabilisticPipingCalculationScenario { InputParameters = { SurfaceLine = failureMechanism.SurfaceLines.First(sl => sl.Name == "PK001_0001") } }; var calculation2 = new ProbabilisticPipingCalculationScenario { InputParameters = { SurfaceLine = failureMechanism.SurfaceLines.First(sl => sl.Name == "PK001_0001") } }; // Add a piping calculation and ensure it is shown in the data grid view failureMechanism.CalculationsGroup.Children.Add(calculation1); failureMechanism.CalculationsGroup.NotifyObservers(); Assert.AreEqual(1, dataGridView.Rows.Count); // Import soil models and profiles and ensure the corresponding combobox items are updated DataImportHelper.ImportPipingStochasticSoilModels(assessmentSection); PipingStochasticSoilModelCollection stochasticSoilModelCollection = failureMechanism.StochasticSoilModels; calculation1.InputParameters.StochasticSoilModel = stochasticSoilModelCollection.First(sl => sl.Name == "PK001_0001_Piping"); Assert.AreEqual(2, ((DataGridViewComboBoxCell)dataGridView.Rows[0].Cells[stochasticSoilModelsColumnIndex]).Items.Count); Assert.AreEqual("PK001_0001_Piping", dataGridView.Rows[0].Cells[stochasticSoilModelsColumnIndex].FormattedValue); Assert.AreEqual(1, ((DataGridViewComboBoxCell)dataGridView.Rows[0].Cells[stochasticSoilProfilesColumnIndex]).Items.Count); Assert.AreEqual("<selecteer>", dataGridView.Rows[0].Cells[stochasticSoilProfilesColumnIndex].FormattedValue); // Import hydraulic boundary locations and ensure the corresponding combobox items are updated DataImportHelper.ImportHydraulicBoundaryDatabase(assessmentSection); assessmentSection.HydraulicBoundaryDatabase.Locations.NotifyObservers(); Assert.AreEqual(19, ((DataGridViewComboBoxCell)dataGridView.Rows[0].Cells[hydraulicBoundaryLocationsColumnIndex]).Items.Count); // Add group and ensure the data grid view is not changed var nestedPipingCalculationGroup = new CalculationGroup(); failureMechanism.CalculationsGroup.Children.Add(nestedPipingCalculationGroup); failureMechanism.CalculationsGroup.NotifyObservers(); Assert.AreEqual(1, dataGridView.Rows.Count); // Add another, nested calculation and ensure the data grid view is updated nestedPipingCalculationGroup.Children.Add(calculation2); nestedPipingCalculationGroup.NotifyObservers(); Assert.AreEqual(2, dataGridView.Rows.Count); // Change the name of the first calculation and ensure the data grid view is updated calculation1.Name = "New name"; calculation1.NotifyObservers(); Assert.AreEqual("New name", dataGridView.Rows[0].Cells[nameColumnIndex].FormattedValue); // Change an input parameter of the second calculation and ensure the data grid view is updated var exitPointL = new RoundedDouble(2, 111.11); calculation2.InputParameters.ExitPointL = exitPointL; calculation2.InputParameters.NotifyObservers(); Assert.AreEqual(exitPointL.ToString(), dataGridView.Rows[1].Cells[exitPointLColumnIndex].FormattedValue); // Add another calculation and assign all soil models var pipingCalculation3 = new SemiProbabilisticPipingCalculationScenario(); failureMechanism.CalculationsGroup.Children.Add(pipingCalculation3); failureMechanism.CalculationsGroup.NotifyObservers(); pipingCalculation3.InputParameters.SurfaceLine = failureMechanism.SurfaceLines.First(sl => sl.Name == "PK001_0001"); pipingCalculation3.InputParameters.NotifyObservers(); Assert.AreEqual(3, dataGridView.Rows.Count); calculation1.InputParameters.StochasticSoilModel = stochasticSoilModelCollection[0]; calculation1.InputParameters.StochasticSoilProfile = stochasticSoilModelCollection[0].StochasticSoilProfiles.First(); calculation1.InputParameters.NotifyObservers(); Assert.AreEqual("PK001_0001_Piping", dataGridView.Rows[0].Cells[stochasticSoilModelsColumnIndex].FormattedValue); Assert.AreEqual("W1-6_0_1D1", dataGridView.Rows[0].Cells[stochasticSoilProfilesColumnIndex].FormattedValue); Assert.AreEqual(GetFormattedProbabilityValue(100), dataGridView.Rows[0].Cells[stochasticSoilProfilesProbabilityColumnIndex].FormattedValue); calculation2.InputParameters.SurfaceLine = failureMechanism.SurfaceLines.First(sl => sl.Name == "PK001_0002"); calculation2.InputParameters.StochasticSoilModel = stochasticSoilModelCollection[1]; calculation2.InputParameters.StochasticSoilProfile = stochasticSoilModelCollection[1].StochasticSoilProfiles.First(); calculation2.InputParameters.NotifyObservers(); Assert.AreEqual("PK001_0002_Piping", dataGridView.Rows[1].Cells[stochasticSoilModelsColumnIndex].FormattedValue); Assert.AreEqual("W1-6_4_1D1", dataGridView.Rows[1].Cells[stochasticSoilProfilesColumnIndex].FormattedValue); Assert.AreEqual(GetFormattedProbabilityValue(100), dataGridView.Rows[1].Cells[stochasticSoilProfilesProbabilityColumnIndex].FormattedValue); pipingCalculation3.InputParameters.SurfaceLine = failureMechanism.SurfaceLines.First(sl => sl.Name == "PK001_0003"); pipingCalculation3.InputParameters.StochasticSoilModel = stochasticSoilModelCollection[2]; pipingCalculation3.InputParameters.StochasticSoilProfile = stochasticSoilModelCollection[2].StochasticSoilProfiles.First(); pipingCalculation3.InputParameters.NotifyObservers(); Assert.AreEqual("PK001_0003_Piping", dataGridView.Rows[2].Cells[stochasticSoilModelsColumnIndex].FormattedValue); Assert.AreEqual("W1-7_0_1D1", dataGridView.Rows[2].Cells[stochasticSoilProfilesColumnIndex].FormattedValue); Assert.AreEqual(GetFormattedProbabilityValue(100), dataGridView.Rows[2].Cells[stochasticSoilProfilesProbabilityColumnIndex].FormattedValue); // Update stochastic soil models DataUpdateHelper.UpdatePipingStochasticSoilModels(assessmentSection); Assert.AreEqual("PK001_0001_Piping", dataGridView.Rows[0].Cells[stochasticSoilModelsColumnIndex].FormattedValue); Assert.AreEqual("W1-6_0_1D1", dataGridView.Rows[0].Cells[stochasticSoilProfilesColumnIndex].FormattedValue); Assert.AreEqual(GetFormattedProbabilityValue(50), dataGridView.Rows[0].Cells[stochasticSoilProfilesProbabilityColumnIndex].FormattedValue); Assert.AreEqual("PK001_0002_Piping", dataGridView.Rows[1].Cells[stochasticSoilModelsColumnIndex].FormattedValue); Assert.AreEqual("<selecteer>", dataGridView.Rows[1].Cells[stochasticSoilProfilesColumnIndex].FormattedValue); Assert.AreEqual(GetFormattedProbabilityValue(0), dataGridView.Rows[1].Cells[stochasticSoilProfilesProbabilityColumnIndex].FormattedValue); Assert.AreEqual("PK001_0003_Piping", dataGridView.Rows[2].Cells[stochasticSoilModelsColumnIndex].FormattedValue); Assert.AreEqual("W1-7_0_1D1", dataGridView.Rows[2].Cells[stochasticSoilProfilesColumnIndex].FormattedValue); Assert.AreEqual(GetFormattedProbabilityValue(100), dataGridView.Rows[2].Cells[stochasticSoilProfilesProbabilityColumnIndex].FormattedValue); } }
private static string GetOutputValue(RoundedDouble value) { return(!double.IsNaN(value) ? value.ToString(null, CultureInfo.InvariantCulture) : Resources.DuneLocationCalculationsWriter_CreateCsvLine_Parameter_without_value); }