Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/CsvImporterTest.cs =================================================================== diff -u -r4047 -r4070 --- DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/CsvImporterTest.cs (.../CsvImporterTest.cs) (revision 4047) +++ DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/CsvImporterTest.cs (.../CsvImporterTest.cs) (revision 4070) @@ -19,16 +19,15 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System.IO; +using System.Linq; +using Deltares.Dam.Data; using Deltares.Geotechnics.SurfaceLines; using Deltares.Standard.Logging; +using NUnit.Framework; namespace Deltares.Dam.Tests { - using System.Linq; - using Data; - using NUnit.Framework; - using System.IO; - [TestFixture] public class CsvImporterTest { @@ -46,14 +45,26 @@ Directory.CreateDirectory(importFolder); } + [TearDown] + public void FixtureTearDown() + { + if (Directory.Exists(importFolder)) + { + Directory.Delete(importFolder, true); + } + } + /// /// Setup for single test /// [SetUp] public void Setup() { if (Directory.Exists(importFolder)) + { Directory.Delete(importFolder, true); + } + Directory.CreateDirectory(importFolder); File.Copy(Path.Combine(dataFolder, @"HoekscheWaardCsv\soilmaterials.mdb"), Path.Combine(importFolder, "soilmaterials.mdb")); @@ -65,99 +76,8 @@ CreateSoilProfilesFile(); CreateScenarios(); } - - /// - /// Create csv file with 1D soilprofiles - /// - private void CreateSoilProfilesFile() - { - using (var writer = File.CreateText(importFolder + "\\soilprofiles.csv")) - { - writer.WriteLine("soilprofile_id;top_level;soil_name;"); - writer.WriteLine("1DP1;10;HW-OBO;"); - writer.WriteLine("1DP1;-0.6;HW-DUN;"); - writer.WriteLine("1DP1;-1.8;HW-DUOzand;"); - writer.WriteLine("1DP1;-2.8;HW-HVN;"); - writer.WriteLine("1DP1;-4;HW-HVN;"); - writer.WriteLine("1DP1;-5;Alg-zand (0-30);"); - writer.WriteLine("1DP2;10;HW-OBO;"); - writer.WriteLine("1DP2;-0.7;HW-DUN;"); - writer.WriteLine("1DP2;-1.5;HW-DUOzand;"); - writer.WriteLine("1DP2;-2.4;HW-HVN;"); - writer.WriteLine("1DP2;-4.3;HW-HVN;"); - writer.WriteLine("1DP2;-5.3;Alg-zand (0-30);"); - } - } /// - /// Create csv file with scenarios - /// - private void CreateScenarios() - { - using (var writer = File.CreateText(importFolder + "\\scenarios.csv")) - { - writer.WriteLine("location_id;location_scenario_id;water_height;dike_table_height;safety_factor_stability_inner_slope;safety_factor_piping;water_height_decimerings_hoogte;max_waterheight"); - writer.WriteLine("LOC1;1;1.14;4.6;1.17;1.2;0.4;4"); - } - } - - /// - /// Create csv file with surface lines - /// - private void CreateSurfaceLinesFiles() - { - using (var writer = File.CreateText(importFolder + "\\surfacelines.csv")) - { - writer.WriteLine( - "Profielnaam;Geologischprofiel;X_GridPoint;Y_GridPoint;ScenarioClusterID;X1;Y1;Z1;.....;Xn;Yn;Zn;(Profiel)"); - writer.WriteLine( - "D1;;63,310;0,000;1;0,000;0,000;0,680;21,110;0,000;1,120;31,600;0,000;1,300;31,730;0,000;1,610;32,210;0,000;1,670;35,580;0,000;1,580;40,480;0,000;1,940;47,860;0,000;3,790;50,110;0,000;4,460;51,750;0,000;4,662;52,630;0,000;4,770;54,250;0,000;4,690;55,170;0,000;4,460;58,850;0,000;2,980;60,290;0,000;2,460;63,310;0,000;1,360;67,900;0,000;1,070;69,410;0,000;0,600;69,800;0,000;0,480;70,530;0,000;0,000;70,820;0,000;-0,190;71,550;0,000;-0,600;72,370;0,000;-1,060;72,380;0,000;-1,170;72,550;0,000;-1,460;73,860;0,000;-1,390;73,990;0,000;-1,0;74,570;0,000;-0,840;74,970;0,000;-0,600;76,170;0,000;0,110;86,660;0,000;0,270;103,280;0,000;0,220;117,940;0,000;0,120"); - } - } - - /// - /// Create csv file with segments containing 1d soilprofiles - /// - private void CreateSegmentsFor1DProfilesFile() - { - using (var writer = File.CreateText(importFolder + "\\segments.csv")) - { - writer.WriteLine("segment_id;soilprofile_id;probability;calculation_type"); - writer.WriteLine("1;1DP1;80;Stability"); - writer.WriteLine("1;1DP2;20;Stability"); - writer.WriteLine("1;1DP2;100;Piping"); - writer.WriteLine("2;1DP2;100;Stability"); - writer.WriteLine("2;1DP1;100;Piping"); - } - } - - /// - /// Create csv file with locations - /// - private void CreateLocationsFile() - { - using (var writer = File.CreateText(importFolder + "\\locations.csv")) - { - writer.WriteLine("location_id;surfaceline_id;segment_id;geo_x;geo_y;x_soilgeometry2D_origin;Pl1_id;polderlevel;head_pl2;head_pl3;grass_quality;direction;ophoogmateriaaldijk;ophoogmateriaalberm;dempingsfactor_pl3;dempingsfactor_pl4;Sheetpile_x;Sheetpile_y;Sheetpile_z;Sheetpile_length;"); - writer.WriteLine("LOC1;D1;1;414.950;91.850;14.0;PL1A;0.1;4.0;3.0;4.3;1.0;ophoogmateriaaldijk;ophoogmateriaalberm;0.31;0.41;432.1;0.0;654.3;22.0;"); - } - } - - /// - /// Create csv file with characteristic points - /// - private void CreateCharacteristicPointsFile() - { - using (var writer = File.CreateText(importFolder + "\\characteristicpoints.csv")) - { - writer.WriteLine( - "Profielnaam;X_Maaiveld binnenwaarts;Y_Maaiveld binnenwaarts;Z_Maaiveld binnenwaarts;X_Insteek sloot polderzijde;Y_Insteek sloot polderzijde;Z_Insteek sloot polderzijde;X_Slootbodem polderzijde;Y_Slootbodem polderzijde;Z_Slootbodem polderzijde;X_Slootbodem dijkzijde;Y_Slootbodem dijkzijde;Z_Slootbodem dijkzijde;X_Insteek sloot dijkzijde;Y_Insteek_sloot dijkzijde;Z_Insteek sloot dijkzijde;X_Teen dijk binnenwaarts;Y_Teen dijk binnenwaarts;Z_Teen dijk binnenwaarts;X_Kruin binnenberm;Y_Kruin binnenberm;Z_Kruin binnenberm;X_Insteek binnenberm;Y_Insteek binnenberm;Z_Insteek binnenberm;X_Kruin binnentalud;Y_Kruin binnentalud;Z_Kruin binnentalud;X_Verkeersbelasting kant binnenwaarts;Y_Verkeersbelasting kant binnenwaarts;Z_Verkeersbelasting kant binnenwaarts;X_Verkeersbelasting kant buitenwaarts;Y_Verkeersbelasting kant buitenwaarts;Z_Verkeersbelasting kant buitenwaarts;X_Kruin buitentalud;Y_Kruin buitentalud;Z_Kruin buitentalud;X_Insteek buitenberm;Y_Insteek buitenberm;Z_Insteek buitenberm;X_Kruin buitenberm;Y_Kruin buitenberm;Z_Kruin buitenberm;X_Teen dijk buitenwaarts;Y_Teen dijk buitenwaarts;Z_Teen dijk buitenwaarts;X_Maaiveld buitenwaarts;Y_Maaiveld buitenwaarts;Z_Maaiveld buitenwaarts;Volgnummer"); - writer.WriteLine( - "D1;117,94;0;0,12;-1;-1;-1;73,99;0;-1,0;72,55;0;-1,46;67,9;0;1,07;63,31;0;1,36;-1;-1;-1;-1;-1;-1;55,17;0;4,46;54,25;0;4,69;51,75;0;4,662;50,11;0;4,46;40,48;0;1,94;32,21;0;1,67;31,6;0;1,3;0;0;0,68;1"); - } - } - - /// /// Test /// [Test] @@ -175,11 +95,12 @@ public void CvsImporter_ImportWithIncompleteLocationTable_AddsMessageWithWarning() { File.Delete(importFolder + "\\locations.csv"); - using (var writer = File.CreateText(importFolder + "\\locations.csv")) + using (StreamWriter writer = File.CreateText(importFolder + "\\locations.csv")) { writer.WriteLine("location_id;surfaceline_id;segment_id;geo_x;geo_y;polderlevel;head_pl2;head_pl3;grass_quality;direction"); writer.WriteLine("LOC1;D1;ok;414.950;91.850;0.1;4.0;3.0;4.3;1.0"); } + ImportDirector.Construct(importFolder, null); Assert.AreEqual(LogMessageType.Warning, LogManager.Messages[0].MessageType); } @@ -192,7 +113,7 @@ { File.Delete(importFolder + "\\segments.csv"); File.Delete(importFolder + "\\soilprofiles.csv"); - using (var writer = File.CreateText(importFolder + "\\segments.csv")) + using (StreamWriter writer = File.CreateText(importFolder + "\\segments.csv")) { writer.WriteLine("segment_id;soilgeometry2D_name;probability;calculation_type"); writer.WriteLine("1;Geometrie 1;80;Stability"); @@ -201,7 +122,8 @@ writer.WriteLine("2;Geometrie 2;100;Stability"); writer.WriteLine("2;Geometrie 1 piping;100;Piping"); } - using (var waterBoard = ImportDirector.Construct(importFolder, null)) + + using (WaterBoard waterBoard = ImportDirector.Construct(importFolder, null)) { Assert.AreEqual(2, waterBoard.Segments.Count); Assert.AreEqual("Geometrie 1", waterBoard.Segments[0].GetMostProbableGeometry2DName(FailureMechanismSystemType.StabilityInside)); @@ -217,8 +139,9 @@ [Test] public void CanImportDikeWith1DSoilGeometries() { - using(var waterBoard = ImportDirector.Construct(importFolder, null)) { - var dike = waterBoard.Dikes[0]; + using (WaterBoard waterBoard = ImportDirector.Construct(importFolder, null)) + { + Dike dike = waterBoard.Dikes[0]; Assert.IsNotNull(dike); @@ -250,8 +173,8 @@ [Test] public void SoilProfilesOfImportedDikeHaveSameInstance() { - var waterBoard = ImportDirector.Construct(importFolder, null); - var dike = waterBoard.Dikes[0]; + WaterBoard waterBoard = ImportDirector.Construct(importFolder, null); + Dike dike = waterBoard.Dikes[0]; Assert.AreSame(dike.SoilProfiles[0], waterBoard.Segments[0].GetMostProbableProfile(FailureMechanismSystemType.StabilityInside)); } @@ -264,8 +187,8 @@ [Test] public void SoilProfilesOfImportedDikeHaveCorrectProbability() { - var waterBoard = ImportDirector.Construct(importFolder, null); - var dike = waterBoard.Dikes[0]; + WaterBoard waterBoard = ImportDirector.Construct(importFolder, null); + Dike dike = waterBoard.Dikes[0]; Assert.AreEqual(80, waterBoard.Segments[0].GetSoilProfileProbability(dike.SoilProfiles[0], FailureMechanismSystemType.StabilityInside)); Assert.AreEqual(100, waterBoard.Segments[0].GetSoilProfileProbability(dike.SoilProfiles[1], FailureMechanismSystemType.Piping)); } @@ -276,7 +199,7 @@ [Test] public void SegmentsOfImportedDikeHaveCorrectMostProbabableSoilProfile() { - var waterBoard = ImportDirector.Construct(importFolder, null); + WaterBoard waterBoard = ImportDirector.Construct(importFolder, null); Assert.AreEqual("1DP1", waterBoard.Segments[0].GetMostProbableProfile(FailureMechanismSystemType.StabilityInside).Name); Assert.AreEqual("1DP2", waterBoard.Segments[0].GetMostProbableProfile(FailureMechanismSystemType.Piping).Name); } @@ -287,8 +210,8 @@ [Test] public void SurfaceLinesOfImportedDikeHaveSameInstance() { - var waterBoard = ImportDirector.Construct(importFolder, null); - var dike = waterBoard.Dikes[0]; + WaterBoard waterBoard = ImportDirector.Construct(importFolder, null); + Dike dike = waterBoard.Dikes[0]; Assert.AreSame(dike.Locations[0].SurfaceLine2, dike.SurfaceLines2[0]); } @@ -298,19 +221,101 @@ [Test] public void CanImportDikeWithMinimalInput() { - var waterBoard = ImportDirector.Construct(importFolder, null); - var dike = waterBoard.Dikes[0]; + WaterBoard waterBoard = ImportDirector.Construct(importFolder, null); + Dike dike = waterBoard.Dikes[0]; Assert.IsNotNull(dike); } - [TearDown] - public void FixtureTearDown() + /// + /// Create csv file with 1D soilprofiles + /// + private void CreateSoilProfilesFile() { - if (Directory.Exists(importFolder)) - Directory.Delete(importFolder, true); + using (StreamWriter writer = File.CreateText(importFolder + "\\soilprofiles.csv")) + { + writer.WriteLine("soilprofile_id;top_level;soil_name;"); + writer.WriteLine("1DP1;10;HW-OBO;"); + writer.WriteLine("1DP1;-0.6;HW-DUN;"); + writer.WriteLine("1DP1;-1.8;HW-DUOzand;"); + writer.WriteLine("1DP1;-2.8;HW-HVN;"); + writer.WriteLine("1DP1;-4;HW-HVN;"); + writer.WriteLine("1DP1;-5;Alg-zand (0-30);"); + writer.WriteLine("1DP2;10;HW-OBO;"); + writer.WriteLine("1DP2;-0.7;HW-DUN;"); + writer.WriteLine("1DP2;-1.5;HW-DUOzand;"); + writer.WriteLine("1DP2;-2.4;HW-HVN;"); + writer.WriteLine("1DP2;-4.3;HW-HVN;"); + writer.WriteLine("1DP2;-5.3;Alg-zand (0-30);"); + } } - } + /// + /// Create csv file with scenarios + /// + private void CreateScenarios() + { + using (StreamWriter writer = File.CreateText(importFolder + "\\scenarios.csv")) + { + writer.WriteLine("location_id;location_scenario_id;water_height;dike_table_height;safety_factor_stability_inner_slope;safety_factor_piping;water_height_decimerings_hoogte;max_waterheight"); + writer.WriteLine("LOC1;1;1.14;4.6;1.17;1.2;0.4;4"); + } + } + /// + /// Create csv file with surface lines + /// + private void CreateSurfaceLinesFiles() + { + using (StreamWriter writer = File.CreateText(importFolder + "\\surfacelines.csv")) + { + writer.WriteLine( + "Profielnaam;Geologischprofiel;X_GridPoint;Y_GridPoint;ScenarioClusterID;X1;Y1;Z1;.....;Xn;Yn;Zn;(Profiel)"); + writer.WriteLine( + "D1;;63,310;0,000;1;0,000;0,000;0,680;21,110;0,000;1,120;31,600;0,000;1,300;31,730;0,000;1,610;32,210;0,000;1,670;35,580;0,000;1,580;40,480;0,000;1,940;47,860;0,000;3,790;50,110;0,000;4,460;51,750;0,000;4,662;52,630;0,000;4,770;54,250;0,000;4,690;55,170;0,000;4,460;58,850;0,000;2,980;60,290;0,000;2,460;63,310;0,000;1,360;67,900;0,000;1,070;69,410;0,000;0,600;69,800;0,000;0,480;70,530;0,000;0,000;70,820;0,000;-0,190;71,550;0,000;-0,600;72,370;0,000;-1,060;72,380;0,000;-1,170;72,550;0,000;-1,460;73,860;0,000;-1,390;73,990;0,000;-1,0;74,570;0,000;-0,840;74,970;0,000;-0,600;76,170;0,000;0,110;86,660;0,000;0,270;103,280;0,000;0,220;117,940;0,000;0,120"); + } + } + + /// + /// Create csv file with segments containing 1d soilprofiles + /// + private void CreateSegmentsFor1DProfilesFile() + { + using (StreamWriter writer = File.CreateText(importFolder + "\\segments.csv")) + { + writer.WriteLine("segment_id;soilprofile_id;probability;calculation_type"); + writer.WriteLine("1;1DP1;80;Stability"); + writer.WriteLine("1;1DP2;20;Stability"); + writer.WriteLine("1;1DP2;100;Piping"); + writer.WriteLine("2;1DP2;100;Stability"); + writer.WriteLine("2;1DP1;100;Piping"); + } + } + + /// + /// Create csv file with locations + /// + private void CreateLocationsFile() + { + using (StreamWriter writer = File.CreateText(importFolder + "\\locations.csv")) + { + writer.WriteLine("location_id;surfaceline_id;segment_id;geo_x;geo_y;x_soilgeometry2D_origin;Pl1_id;polderlevel;head_pl2;head_pl3;grass_quality;direction;ophoogmateriaaldijk;ophoogmateriaalberm;dempingsfactor_pl3;dempingsfactor_pl4;Sheetpile_x;Sheetpile_y;Sheetpile_z;Sheetpile_length;"); + writer.WriteLine("LOC1;D1;1;414.950;91.850;14.0;PL1A;0.1;4.0;3.0;4.3;1.0;ophoogmateriaaldijk;ophoogmateriaalberm;0.31;0.41;432.1;0.0;654.3;22.0;"); + } + } + + /// + /// Create csv file with characteristic points + /// + private void CreateCharacteristicPointsFile() + { + using (StreamWriter writer = File.CreateText(importFolder + "\\characteristicpoints.csv")) + { + writer.WriteLine( + "Profielnaam;X_Maaiveld binnenwaarts;Y_Maaiveld binnenwaarts;Z_Maaiveld binnenwaarts;X_Insteek sloot polderzijde;Y_Insteek sloot polderzijde;Z_Insteek sloot polderzijde;X_Slootbodem polderzijde;Y_Slootbodem polderzijde;Z_Slootbodem polderzijde;X_Slootbodem dijkzijde;Y_Slootbodem dijkzijde;Z_Slootbodem dijkzijde;X_Insteek sloot dijkzijde;Y_Insteek_sloot dijkzijde;Z_Insteek sloot dijkzijde;X_Teen dijk binnenwaarts;Y_Teen dijk binnenwaarts;Z_Teen dijk binnenwaarts;X_Kruin binnenberm;Y_Kruin binnenberm;Z_Kruin binnenberm;X_Insteek binnenberm;Y_Insteek binnenberm;Z_Insteek binnenberm;X_Kruin binnentalud;Y_Kruin binnentalud;Z_Kruin binnentalud;X_Verkeersbelasting kant binnenwaarts;Y_Verkeersbelasting kant binnenwaarts;Z_Verkeersbelasting kant binnenwaarts;X_Verkeersbelasting kant buitenwaarts;Y_Verkeersbelasting kant buitenwaarts;Z_Verkeersbelasting kant buitenwaarts;X_Kruin buitentalud;Y_Kruin buitentalud;Z_Kruin buitentalud;X_Insteek buitenberm;Y_Insteek buitenberm;Z_Insteek buitenberm;X_Kruin buitenberm;Y_Kruin buitenberm;Z_Kruin buitenberm;X_Teen dijk buitenwaarts;Y_Teen dijk buitenwaarts;Z_Teen dijk buitenwaarts;X_Maaiveld buitenwaarts;Y_Maaiveld buitenwaarts;Z_Maaiveld buitenwaarts;Volgnummer"); + writer.WriteLine( + "D1;117,94;0;0,12;-1;-1;-1;73,99;0;-1,0;72,55;0;-1,46;67,9;0;1,07;63,31;0;1,36;-1;-1;-1;-1;-1;-1;55,17;0;4,46;54,25;0;4,69;51,75;0;4,662;50,11;0;4,46;40,48;0;1,94;32,21;0;1,67;31,6;0;1,3;0;0;0,68;1"); + } + } + } } \ No newline at end of file