Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/CsvImporterTestsNew.cs =================================================================== diff -u -r4047 -r4070 --- DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/CsvImporterTestsNew.cs (.../CsvImporterTestsNew.cs) (revision 4047) +++ DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/CsvImporterTestsNew.cs (.../CsvImporterTestsNew.cs) (revision 4070) @@ -50,315 +50,11 @@ public void Setup() { if (!Directory.Exists(importFolder)) - Directory.CreateDirectory(importFolder); - } - - /// - /// Create csv file with segments containing 1d soilprofiles - /// - /// - private static void CreateSegmentsFor1DProfilesFile(string filePath) - { - using (var writer = File.CreateText(filePath)) { - 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"); + Directory.CreateDirectory(importFolder); } } - /// - /// Create csv file with segments containing 2d geometries - /// - /// - private static void CreateSegmentsFor2DGeometriesFile(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine("segment_id;soilgeometry2D_name;probability;calculation_type"); - writer.WriteLine("1;GeomA;80;Stability"); - writer.WriteLine("2;GeomB;20;Piping"); - } - } - - /// - /// Create csv file with segments containing error header - /// - /// - private static void CreateSegmentsFileWithIllegalHeader(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine("segment_id;soilgeometry2D_name;soilprofile_id;probability;calculation_type"); - writer.WriteLine("1;GeomA;80;Stability"); - writer.WriteLine("1;GeomB;20;Stability"); - } - } - - - private static void CreateSoilProfilesFileWithObsoleteColumns(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine("soilprofile_id;top_level;soil_name;soiltype"); - writer.WriteLine("1DP1;10;HW-OBO;zand"); - writer.WriteLine("1DP1;-0.6;HW-DUN;veen"); - writer.WriteLine("1DP1;-1.8;HW-DUOzand;veen"); - writer.WriteLine("1DP1;-2.8;HW-HVN;zand"); - writer.WriteLine("1DP1;-4;HW-HVN;zand"); - writer.WriteLine("1DP1;-5;Alg-zand (0-30);zand"); - writer.WriteLine("1DP2;10;HW-OBO;zand"); - writer.WriteLine("1DP2;-0.7;HW-DUN;veen"); - writer.WriteLine("1DP2;-1.5;HW-DUOzand;veen"); - writer.WriteLine("1DP2;-2.4;HW-HVN;zand"); - writer.WriteLine("1DP2;-4.3;HW-HVN;zand"); - writer.WriteLine("1DP2;-5.3;Alg-zand (0-30);zand"); - } - } - - private static void CreateSoilProfilesFile(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - 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)"); - } - } - - private static void CreateSoilProfilesFileWithIllegalHeader(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine("soilprofile_id;soil_name"); - writer.WriteLine("1DP1;10;HW-OBO"); - } - } - - private static void CreateSoilProfilesFileWithIllegalHeaderField(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine("soilprofile_id;soil_name;aaa;bbb;"); - writer.WriteLine("1DP1;10;HW-OBO"); - } - } - - private static void CreateCharacteristicPointsFile(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - 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;X_Dijktafelhoogte;Y_Dijktafelhoogte;Z_Dijktafelhoogte;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;52.63;0;4.77;1"); - } - } - - private static void CreateCharacteristicPointsFileWithLocationId(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine( - "LocationId;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;X_Dijktafelhoogte;Y_Dijktafelhoogte;Z_Dijktafelhoogte;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;52.63;0;4.77;1"); - } - } - - private static void CreateCharacteristicPointsFileWithIllegalHeader(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine( - "Profielnaam;X_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;X_Dijktafelhoogte;Y_Dijktafelhoogte;Z_Dijktafelhoogte;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;52.63;0;4.77;1"); - } - } - - private static void CreateSurfaceLinesFile(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - 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"); - writer.WriteLine( - "D2;;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"); - } - } - - private static void CreateSurfaceLinesFileWithLocationId(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine( - "LocationId;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"); - writer.WriteLine( - "D2;;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"); - } - } - - private static void CreateSurfaceLinesFileWithIllegalValues(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine( - "Profielnaam;Geologischprofiel;X_GridPoint;Y_GridPoint;ScenarioClusterID;X1;Y1;Z1;.....;Xn;Yn;Zn;(Profiel)"); - writer.WriteLine( - "D1;;AS63.310;Bw0.000;1;0.000;0.000;0.680;21.110;0.000;1.120;31.600;0.0as00;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"); - writer.WriteLine( - "D2;;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"); - } - } - - private static void CreateSurfaceLinesFileWithIllegalHeaders(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine( - "Proflnaam;Geologischprofiel;X_GridPoint;Y_GridPoint;ScenarioClusterID;X1;Y1;Z1;.....;Xn;Yn;Zn;(Profiel)"); - writer.WriteLine( - "D1;;AS63.310;Bw0.000;1;0.000;0.000;0.680;21.110;0.000;1.120;31.600;0.0as00;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"); - writer.WriteLine( - "D2;;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"); - } - } - - private static void CreateLocationsFileWithObsoleteColumn(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine( - "location_id;surfaceline_id;segment_id;geo_x;geo_y;x_soilgeometry2D_origin;Pl1_id;polderlevel;polderlevellow;head_pl2;head_pl3;head_pl4;Grass_quality;Direction;Ophoogmateriaaldijk;Ophoogmateriaalberm;Sheetpile_x;Sheetpile_y;Sheetpile_z;Sheetpile_length;use_original_plline_assignments;PenetrationLength;TrafficLoad;minimal_circle_depth;dempingsfactor_pl3;dempingsfactor_pl4;PLLineCreationMethod;level_reduction_inside;level_reduction_outside;layer_height_distribution;layer_height_deviation;safety_factor_piping;safety_factor_stability_inner_slope;safety_factor_stability_outer_slope;probability_of_failure_stability_innerslope;probability_of_failure_stability_outerslope;probability_of_failure_piping;uplift_criterion_piping;uplift_criterion_stability;Materiaaltypedijk;bp_tp;bp_hbp;bp_lbp;Baggerdiepte;distance_to_entry_point;PLLineOffsetBelowDikeTopAtRiver;PLLineOffsetBelowDikeTopAtPolder;PLLineOffsetBelowShoulderBaseInside;PLLineOffsetBelowDikeToeAtPolder;PLLineOffsetDryBelowDikeTopAtRiver;PLLineOffsetDryBelowDikeTopAtPolder;PLLineOffsetDryBelowShoulderBaseInside;PLLineOffsetDryBelowDikeToeAtPolder;StabilityShoulderGrowSlope;StabilityShoulderGrowDeltaX;StabilitySlopeAdaptionDeltaX;detrimentfactor;dike_table_height;SlopeDampingPiezometricHeightPolderSide;StabilityDesignMethod;SlopeAdaptionStartCotangent;SlopeAdaptionEndCotangent;SlopeAdaptionStepCotangent; UseNewDikeTopWidth; NewDikeTopWidth;UseNewDikeSlopeInside;NewDikeSlopeInside;UseNewDikeSlopeOutside;NewDikeSlopeOutside;UseNewShoulderTopSlope;NewShoulderTopSlope;UseNewShoulderBaseSlope;NewShoulderBaseSlope;UseNewMaxHeightShoulderAsFraction;NewMaxHeightShoulderAsFraction;UseNewMinDistanceDikeToeStartDitch;NewMinDistanceDikeToeStartDitch;UseNewDitchDefinition;NewWidthDitchBottom;newSlopeAngleDitch;NewDepthDitch;ZoneType;ForbiddenZoneFactor;ZoneAreaRestSlopeCrestWidth;PLLineOffsetBelowDikeCrestMiddle;PLLineOffsetFactorBelowShoulderCrest;UsePLLineOffsetDryBelowDikeCrestMiddle;PLLineOffsetDryBelowDikeCrestMiddle;UsePLLineOffsetDryFactorBelowShoulderCrest;PLLineOffsetDryFactorBelowShoulderCrest;IntrusionVerticalWaterPressure;TL_DegreeOfConsolidation;water_height;water_height_low;water_height_decimerings_hoogte;max_waterheight"); - writer.WriteLine( - "16-1-1-C-3-Z;16-1-1-C-3-Z;1043;124330;441312;1;16-1-1-C-3-Z;0.9;0.2;13.056;0.9;0.8;1;1;klei;klei2;1;2;3;12;TRUE;1.3;10;1.5;30;40;ExpertKnowledgeRRD;1;2;Uniform;0.1;1.2;1.3;1.4;0.01;0.02;0.03;1.1;1.2;klei;1.0;1.1;1.2;2.0;2.1;0.5;0.6;0.1;0.2;0.6;1.6;0.2;0.3;2.0;0.2;0.5;0.9;3.5;0.01;OptimizedSlopeAndShoulderAdaption;3.0;6.0;0.5;TRUE;1.8;TRUE;1.9;TRUE;2.9;TRUE;2.8;TRUE;2.7;TRUE;0.6;TRUE;2.6;TRUE;1.1;1.2;1.3;NoZones;0.5;1.6;1.0;0.1;TRUE;1.1;FALSE;0.11;Standard;10.1;1.2;1.3;1.4;1.5"); - writer.WriteLine( - "25-2-2-A-1-A;25-2-2-A-1-A;106;66586;424173;2;25-2-2-A-1-A;-0.25;-0.25;0.8727;-0.25;-0.25;1;1;klei;klei2;1;2;3;12;FALSE;1.3;10;1.5;30;40;ExpertKnowledgeRRD;1;2;Uniform;0.1;1.2;1.3;1.4;0.01;0.02;0.03;1.1;1.2;klei;1.0;1.1;1.2;2.0;2.1;0.5;0.6;0.1;0.2;0.6;1.6;0.2;0.3;2.0;0.2;0.5;0.9;3.5;0.2;SlopeAdaptionBeforeShoulderAdaption;4.5;6.5;0.25;FALSE;0.8;FALSE;0.9;FALSE;1.9;FALSE;1.8;FALSE;1.7;FALSE;0.7;FALSE;1.6;FALSE;1.4;1.5;1.6;ForbiddenZone;0.9;2.1; 1.1;0.11;FALSE; 1.0;TRUE;0.1;SemiTimeDependent;55.5;2.2;2.3;2.4;2.5"); - } - } - - private static void CreateScenariosFile(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine( - "location_id;location_scenario_id;water_height;water_height_low;dike_table_height;water_height_decimerings_hoogte;max_waterheight;safety_factor_piping;safety_factor_stability_inner_slope;safety_factor_stability_outer_slope;probability_of_failure_stability_innerslope;probability_of_failure_stability_outerslope;probability_of_failure_piping;uplift_criterion_piping;uplift_criterion_stability"); - writer.WriteLine( - "D1;1;0.000;0.680;21.110;0.000;1.120;31.600;0.000;1.300;31.730;63.310;0.000;1.3;0.000"); - writer.WriteLine( - "D2;1;0.000;1.680;22.110;2.000;1.220;32.600;1.000;1.400;32.730;3.310;1.000;1.3;0.000"); - } - } - - private static void CreateScenariosFileWithOffsetData(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine( - "location_id;location_scenario_id;water_height;water_height_low;dike_table_height;water_height_decimerings_hoogte;max_waterheight;safety_factor_piping;safety_factor_stability_inner_slope;safety_factor_stability_outer_slope;probability_of_failure_stability_innerslope;probability_of_failure_stability_outerslope;probability_of_failure_piping;uplift_criterion_piping;uplift_criterion_stability;PLLineOffsetBelowDikeTopAtRiver;PLLineOffsetBelowDikeTopAtPolder;PLLineOffsetBelowShoulderBaseInside;PLLineOffsetBelowDikeToeAtPolder;UsePLLineOffsetBelowDikeCrestMiddle;PLLineOffsetBelowDikeCrestMiddle;UsePLLineOffsetFactorBelowShoulderCrest;PLLineOffsetFactorBelowShoulderCrest;head_pl3;head_pl4"); - writer.WriteLine( - "D1;1;0.000;0.680;21.110;0.000;1.120;31.600;0.000;1.300;31.730;63.310;0.000;1.3;0.000;1.1;2.2;3.3;4.4;TRUE;5.5;FALSE;6.6;7.7;8.8"); - writer.WriteLine( - "D2;1;0.000;1.680;22.110;2.000;1.220;32.600;1.000;1.400;32.730;3.310;1.000;1.3;0.000;0.1;0.2;0.3;0.4;FALSE;0.5;TRUE;0.6;0.7;0.8"); - } - } - - private static void CreateScenariosWithHeadPl3AndHeadPl4File(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine( - "location_id;location_scenario_id;head_pl3;head_pl4"); - writer.WriteLine( - "D1;1;0.001;0.002"); - writer.WriteLine( - "D2;1;0.003;0.004"); - } - } - - private static void CreateScenariosWithHeadPl3AndHeadPl4OldFormatFile(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine( - "location_id;location_scenario_id;HeadPl3;HeadPl4"); - writer.WriteLine( - "D1;1;0.011;0.012"); - writer.WriteLine( - "D2;1;0.013;0.014"); - } - } - - private static void CreateScenariosWithPolderLevelFile(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine( - "location_id;location_scenario_id;polderlevel;"); - writer.WriteLine( - "D1;1;0.001;"); - writer.WriteLine( - "D2;1;0.003;"); - } - } - - private static void CreateScenariosWithHeadPL2File(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine( - "location_id;location_scenario_id;head_pl2;"); - writer.WriteLine( - "D1;1;0.001;"); - writer.WriteLine( - "D2;1;0.003;"); - } - } - - private void CreateScenariosFileWithIllegalHeader(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine( - "location_id;water_height;water_height_low;dike_table_height;water_height_decimerings_hoogte;max_waterheight;safety_factor_piping;safety_factor_stability_inner_slope;safety_factor_stability_outer_slope;probability_of_failure_stability_innerslope;probability_of_failure_stability_outerslope;probability_of_failure_piping;uplift_criterion_piping;uplift_criterion_stability"); - writer.WriteLine( - "D1;1;0.000;0.680;21.110;0.000;1.120;31.600;0.000;1.300;31.730;63.310;0.000;1.3;0.000"); - writer.WriteLine( - "D2;1;0.000;1.680;22.110;2.000;1.220;32.600;1.000;1.400;32.730;3.310;1.000;1.3;0.000"); - } - } - - private void CreateScenariosFileWithIllegalValues(string filePath) - { - using (var writer = File.CreateText(filePath)) - { - writer.WriteLine( - "location_id;location_scenario_id;water_height;water_height_low;dike_table_height;water_height_decimerings_hoogte;max_waterheight;safety_factor_piping;safety_factor_stability_inner_slope;safety_factor_stability_outer_slope;probability_of_failure_stability_innerslope;probability_of_failure_stability_outerslope;probability_of_failure_piping;uplift_criterion_piping;uplift_criterion_stability"); - writer.WriteLine( - "D1;1;0.000;0.680;21.110;0.000;1.120;aa;0.000;1.300;31.730;63.310;0.000;1.3;0.000"); - writer.WriteLine( - "D2;1;0.000;1.680;dd;22.110;1.220;32.600;1.000;1.400;32.730;3.310;1.000;1.3;0.000"); - } - } - [Test] public void SegmentImporterThrowsArgumentExceptionWhenFileNameIsEmpty() { @@ -377,9 +73,12 @@ const string importFile = "segments.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateSegmentsFor1DProfilesFile(testFilePath); - CsvImporterSegments csvImporterSegments = new CsvImporterSegments(testFilePath); + var csvImporterSegments = new CsvImporterSegments(testFilePath); IList segmentRecords = csvImporterSegments.ImportedItems; Assert.AreEqual("1", segmentRecords[0].SegmentId); @@ -402,9 +101,12 @@ const string importFile = "segments.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateSegmentsFor2DGeometriesFile(testFilePath); - CsvImporterSegments csvImporterSegments = new CsvImporterSegments(testFilePath); + var csvImporterSegments = new CsvImporterSegments(testFilePath); IList segmentRecords = csvImporterSegments.ImportedItems; Assert.AreEqual("1", segmentRecords[0].SegmentId); @@ -424,7 +126,10 @@ const string importFile = "segments.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateSegmentsFileWithIllegalHeader(testFilePath); Assert.That(() => new CsvImporterSegments(testFilePath), Throws.InstanceOf()); } @@ -435,9 +140,12 @@ const string importFile = "soilprofiles.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateSoilProfilesFileWithObsoleteColumns(testFilePath); - CsvImporterSoilProfiles csvImporterSoilProfiles = new CsvImporterSoilProfiles(testFilePath); + var csvImporterSoilProfiles = new CsvImporterSoilProfiles(testFilePath); IList soilProfileRecords = csvImporterSoilProfiles.ImportedItems; Assert.AreEqual("1DP1", soilProfileRecords[0].SoilProfileId); @@ -459,9 +167,12 @@ const string importFile = "soilprofiles.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateSoilProfilesFile(testFilePath); - CsvImporterSoilProfiles csvImporterSoilProfiles = new CsvImporterSoilProfiles(testFilePath); + var csvImporterSoilProfiles = new CsvImporterSoilProfiles(testFilePath); IList soilProfileRecords = csvImporterSoilProfiles.ImportedItems; Assert.AreEqual("1DP1", soilProfileRecords[0].SoilProfileId); @@ -483,7 +194,10 @@ const string importFile = "soilprofiles.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateSoilProfilesFileWithIllegalHeader(testFilePath); Assert.That(() => new CsvImporterSoilProfiles(testFilePath), Throws.InstanceOf()); } @@ -494,7 +208,10 @@ const string importFile = "soilprofiles.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateSoilProfilesFileWithIllegalHeaderField(testFilePath); Assert.That(() => new CsvImporterSoilProfiles(testFilePath), Throws.InstanceOf()); } @@ -505,105 +222,44 @@ const string importFile = "characteristicpoints.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateCharacteristicPointsFile(testFilePath); - CsvImporterCharacteristicPoints csvImporterCharacteristicPoints = new CsvImporterCharacteristicPoints(testFilePath); + var csvImporterCharacteristicPoints = new CsvImporterCharacteristicPoints(testFilePath); IList characteristicPointsRecords = csvImporterCharacteristicPoints.ImportedItems; CheckCharacteristicPoints(characteristicPointsRecords); } - + [Test] public void CharacteristicPointsWithLocationIdImporterCorrectFileTest() { const string importFile = "characteristicpoints.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateCharacteristicPointsFileWithLocationId(testFilePath); - CsvImporterCharacteristicPoints csvImporterCharacteristicPoints = new CsvImporterCharacteristicPoints(testFilePath); + var csvImporterCharacteristicPoints = new CsvImporterCharacteristicPoints(testFilePath); IList characteristicPointsRecords = csvImporterCharacteristicPoints.ImportedItems; CheckCharacteristicPoints(characteristicPointsRecords); } - private static void CheckCharacteristicPoints(IList characteristicPointsRecords) - { - Assert.AreEqual("D1", characteristicPointsRecords[0].SurfaceLineId); - Assert.AreEqual(1, characteristicPointsRecords[0].Volgnummer); - - Assert.AreEqual(117.94, characteristicPointsRecords[0].Points[0].X); - Assert.AreEqual(0, characteristicPointsRecords[0].Points[0].Y); - Assert.AreEqual(0.12, characteristicPointsRecords[0].Points[0].Z); - - Assert.AreEqual(-1, characteristicPointsRecords[0].Points[1].X); - Assert.AreEqual(-1, characteristicPointsRecords[0].Points[1].Y); - Assert.AreEqual(-1, characteristicPointsRecords[0].Points[1].Z); - - Assert.AreEqual(73.99, characteristicPointsRecords[0].Points[2].X); - Assert.AreEqual(0, characteristicPointsRecords[0].Points[2].Y); - Assert.AreEqual(-1.0, characteristicPointsRecords[0].Points[2].Z); - - Assert.AreEqual(72.55, characteristicPointsRecords[0].Points[3].X); - Assert.AreEqual(0, characteristicPointsRecords[0].Points[3].Y); - Assert.AreEqual(-1.46, characteristicPointsRecords[0].Points[3].Z); - - Assert.AreEqual(67.9, characteristicPointsRecords[0].Points[4].X); - Assert.AreEqual(0, characteristicPointsRecords[0].Points[4].Y); - Assert.AreEqual(1.07, characteristicPointsRecords[0].Points[4].Z); - - Assert.AreEqual(63.31, characteristicPointsRecords[0].Points[5].X); - Assert.AreEqual(0, characteristicPointsRecords[0].Points[5].Y); - Assert.AreEqual(1.36, characteristicPointsRecords[0].Points[5].Z); - - Assert.AreEqual(-1, characteristicPointsRecords[0].Points[6].X); - Assert.AreEqual(-1, characteristicPointsRecords[0].Points[6].Y); - Assert.AreEqual(-1, characteristicPointsRecords[0].Points[6].Z); - - Assert.AreEqual(-1, characteristicPointsRecords[0].Points[7].X); - Assert.AreEqual(-1, characteristicPointsRecords[0].Points[7].Y); - Assert.AreEqual(-1, characteristicPointsRecords[0].Points[7].Z); - - Assert.AreEqual(55.17, characteristicPointsRecords[0].Points[8].X); - Assert.AreEqual(0, characteristicPointsRecords[0].Points[8].Y); - Assert.AreEqual(4.46, characteristicPointsRecords[0].Points[8].Z); - - Assert.AreEqual(54.25, characteristicPointsRecords[0].Points[9].X); - Assert.AreEqual(0, characteristicPointsRecords[0].Points[9].Y); - Assert.AreEqual(4.69, characteristicPointsRecords[0].Points[9].Z); - - Assert.AreEqual(51.75, characteristicPointsRecords[0].Points[10].X); - Assert.AreEqual(0, characteristicPointsRecords[0].Points[10].Y); - Assert.AreEqual(4.662, characteristicPointsRecords[0].Points[10].Z); - - Assert.AreEqual(50.11, characteristicPointsRecords[0].Points[11].X); - Assert.AreEqual(0, characteristicPointsRecords[0].Points[11].Y); - Assert.AreEqual(4.46, characteristicPointsRecords[0].Points[11].Z); - - Assert.AreEqual(40.48, characteristicPointsRecords[0].Points[12].X); - Assert.AreEqual(0, characteristicPointsRecords[0].Points[12].Y); - Assert.AreEqual(1.94, characteristicPointsRecords[0].Points[12].Z); - - Assert.AreEqual(32.21, characteristicPointsRecords[0].Points[13].X); - Assert.AreEqual(0, characteristicPointsRecords[0].Points[13].Y); - Assert.AreEqual(1.67, characteristicPointsRecords[0].Points[13].Z); - - Assert.AreEqual(31.6, characteristicPointsRecords[0].Points[14].X); - Assert.AreEqual(0, characteristicPointsRecords[0].Points[14].Y); - Assert.AreEqual(1.3, characteristicPointsRecords[0].Points[14].Z); - - Assert.AreEqual(0, characteristicPointsRecords[0].Points[15].X); - Assert.AreEqual(0, characteristicPointsRecords[0].Points[15].Y); - Assert.AreEqual(0.68, characteristicPointsRecords[0].Points[15].Z); - } - [Test] public void CharacteristicPointsImporterIllegalHeaderTest() { const string importFile = "characteristicpoints.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateCharacteristicPointsFileWithIllegalHeader(testFilePath); - Assert.That(() => new CsvImporterCharacteristicPoints(testFilePath), Throws.InstanceOf()); + Assert.That(() => new CsvImporterCharacteristicPoints(testFilePath), Throws.InstanceOf()); } [Test] @@ -612,9 +268,12 @@ const string importFile = "surfacelines.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateSurfaceLinesFile(testFilePath); - CsvImporterSurfaceLines csvImporterSurfaceLines = new CsvImporterSurfaceLines(testFilePath); + var csvImporterSurfaceLines = new CsvImporterSurfaceLines(testFilePath); IList surfaceLineRecords = csvImporterSurfaceLines.ImportedItems; CheckSurfaceLine(surfaceLineRecords); @@ -626,53 +285,27 @@ const string importFile = "surfacelines.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateSurfaceLinesFileWithLocationId(testFilePath); - CsvImporterSurfaceLines csvImporterSurfaceLines = new CsvImporterSurfaceLines(testFilePath); + var csvImporterSurfaceLines = new CsvImporterSurfaceLines(testFilePath); IList surfaceLineRecords = csvImporterSurfaceLines.ImportedItems; CheckSurfaceLine(surfaceLineRecords); } - private static void CheckSurfaceLine(IList surfaceLineRecords) - { - Assert.AreEqual("D1", surfaceLineRecords[0].SurfaceLineId); - Assert.AreEqual(0.0, surfaceLineRecords[0].Xcoors[0]); - Assert.AreEqual(0.0, surfaceLineRecords[0].Ycoors[0]); - Assert.AreEqual(0.680, surfaceLineRecords[0].Zcoors[0]); - - Assert.AreEqual(21.110, surfaceLineRecords[0].Xcoors[1]); - Assert.AreEqual(0.0, surfaceLineRecords[0].Ycoors[1]); - Assert.AreEqual(1.120, surfaceLineRecords[0].Zcoors[1]); - - Assert.AreEqual(31.600, surfaceLineRecords[0].Xcoors[2]); - Assert.AreEqual(0.0, surfaceLineRecords[0].Ycoors[2]); - Assert.AreEqual(1.300, surfaceLineRecords[0].Zcoors[2]); - - Assert.AreEqual(52.630, surfaceLineRecords[0].Xcoors[10]); - Assert.AreEqual(0.0, surfaceLineRecords[0].Ycoors[10]); - Assert.AreEqual(4.770, surfaceLineRecords[0].Zcoors[10]); - - Assert.AreEqual(72.370, surfaceLineRecords[0].Xcoors[22]); - Assert.AreEqual(0.0, surfaceLineRecords[0].Ycoors[22]); - Assert.AreEqual(-1.060, surfaceLineRecords[0].Zcoors[22]); - - Assert.AreEqual(86.660, surfaceLineRecords[0].Xcoors[30]); - Assert.AreEqual(0.0, surfaceLineRecords[0].Ycoors[30]); - Assert.AreEqual(0.270, surfaceLineRecords[0].Zcoors[30]); - - Assert.AreEqual(117.940, surfaceLineRecords[0].Xcoors[32]); - Assert.AreEqual(0.0, surfaceLineRecords[0].Ycoors[32]); - Assert.AreEqual(0.120, surfaceLineRecords[0].Zcoors[32]); - } - [Test] public void SurfaceLinesImporterIllegalHeaderTest() { const string importFile = "surfacelines.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateSurfaceLinesFileWithIllegalHeaders(testFilePath); Assert.That(() => new CsvImporterSurfaceLines(testFilePath), Throws.InstanceOf()); } @@ -683,9 +316,12 @@ const string importFile = "surfacelines.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateSurfaceLinesFileWithIllegalValues(testFilePath); - CsvImporterSurfaceLines csvImporterSurfaceLines = new CsvImporterSurfaceLines(testFilePath); + var csvImporterSurfaceLines = new CsvImporterSurfaceLines(testFilePath); Assert.AreEqual(1, csvImporterSurfaceLines.ErrorMessages.Count); } @@ -696,9 +332,12 @@ const string importFile = "locations.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateLocationsFileWithObsoleteColumn(testFilePath); - CsvImporterLocations csvImporterLocations = new CsvImporterLocations(testFilePath); + var csvImporterLocations = new CsvImporterLocations(testFilePath); IList locationRecords = csvImporterLocations.ImportedItems; Assert.That(locationRecords.Count, Is.EqualTo(2)); Assert.That(locationRecords[1].LocationId, Is.EqualTo("25-2-2-A-1-A")); @@ -799,7 +438,7 @@ Assert.That(locationRecords[0].RiverLevel, Is.EqualTo(1.2).Within(tolerance)); Assert.That(locationRecords[1].RiverLevel, Is.EqualTo(2.2).Within(tolerance)); Assert.That(locationRecords[0].RiverLevelLow, Is.EqualTo(1.3).Within(tolerance)); - Assert.That(locationRecords[1].RiverLevelLow, Is.EqualTo(2.3).Within(tolerance)); + Assert.That(locationRecords[1].RiverLevelLow, Is.EqualTo(2.3).Within(tolerance)); } [Test] @@ -808,9 +447,12 @@ const string importFile = "scenarios.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateScenariosFile(testFilePath); - CsvImporterScenarios csvImporterScenarios = new CsvImporterScenarios(testFilePath); + var csvImporterScenarios = new CsvImporterScenarios(testFilePath); IList scenarioRecords = csvImporterScenarios.ImportedItems; Assert.AreEqual("D1", scenarioRecords[0].LocationId); @@ -842,9 +484,12 @@ const string importFile = "scenarios.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateScenariosFileWithOffsetData(testFilePath); - CsvImporterScenarios csvImporterScenarios = new CsvImporterScenarios(testFilePath); + var csvImporterScenarios = new CsvImporterScenarios(testFilePath); IList scenarioRecords = csvImporterScenarios.ImportedItems; Assert.AreEqual("D1", scenarioRecords[0].LocationId); @@ -896,7 +541,10 @@ const string importFile = "scenarios.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateScenariosFileWithIllegalHeader(testFilePath); Assert.That(() => new CsvImporterScenarios(testFilePath), Throws.InstanceOf()); } @@ -907,9 +555,12 @@ const string importFile = "scenarios.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateScenariosFileWithIllegalValues(testFilePath); - CsvImporterScenarios csvImporterScenarios = new CsvImporterScenarios(testFilePath); + var csvImporterScenarios = new CsvImporterScenarios(testFilePath); IList scenarioRecords = csvImporterScenarios.ImportedItems; Assert.IsEmpty(scenarioRecords); Assert.AreEqual(2, csvImporterScenarios.ErrorMessages.Count); @@ -921,9 +572,12 @@ const string importFile = "scenarios.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateScenariosWithHeadPl3AndHeadPl4File(testFilePath); - CsvImporterScenarios csvImporterScenarios = new CsvImporterScenarios(testFilePath); + var csvImporterScenarios = new CsvImporterScenarios(testFilePath); IList scenarioRecords = csvImporterScenarios.ImportedItems; Assert.AreEqual("D1", scenarioRecords[0].LocationId); @@ -943,9 +597,12 @@ const string importFile = "scenarios.csv"; string testFilePath = Path.Combine(importFolder, importFile); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateScenariosWithHeadPl3AndHeadPl4OldFormatFile(testFilePath); - CsvImporterScenarios csvImporterScenarios = new CsvImporterScenarios(testFilePath); + var csvImporterScenarios = new CsvImporterScenarios(testFilePath); IList scenarioRecords = csvImporterScenarios.ImportedItems; Assert.AreEqual("D1", scenarioRecords[0].LocationId); @@ -965,9 +622,12 @@ const string fileName = "polderlevel.csv"; string testFilePath = Path.Combine(importFolder, fileName); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateScenariosWithPolderLevelFile(testFilePath); - CsvImporterScenarios csvImporterScenarios = new CsvImporterScenarios(testFilePath); + var csvImporterScenarios = new CsvImporterScenarios(testFilePath); IList scenarioRecords = csvImporterScenarios.ImportedItems; Assert.AreEqual("D1", scenarioRecords[0].LocationId); @@ -985,9 +645,12 @@ const string fileName = "headPL2.csv"; string testFilePath = Path.Combine(importFolder, fileName); if (File.Exists(testFilePath)) + { File.Delete(testFilePath); + } + CreateScenariosWithHeadPL2File(testFilePath); - CsvImporterScenarios csvImporterScenarios = new CsvImporterScenarios(testFilePath); + var csvImporterScenarios = new CsvImporterScenarios(testFilePath); IList scenarioRecords = csvImporterScenarios.ImportedItems; Assert.AreEqual("D1", scenarioRecords[0].LocationId); @@ -1004,23 +667,430 @@ { DataEventPublisher.InvokeWithoutPublishingEvents(() => { - var start = DateTime.Now; + DateTime start = DateTime.Now; const string testDataFolder = @"TestData\CsvData\ImporterTest"; var csvImporterSurfaceLines = new CsvImporterSurfaceLines(testDataFolder + "\\surfacelines.csv"); var csvImporterCharacteristicPoints = new CsvImporterCharacteristicPoints(testDataFolder + "\\characteristicpoints.csv"); var csvImporterSoilProfiles = new CsvImporterSoilProfiles(testDataFolder + "\\soilprofiles.csv"); var csvImporterSegments = new CsvImporterSegments(testDataFolder + "\\segments.csv"); - var end = DateTime.Now; - var elapsed = end - start; + DateTime end = DateTime.Now; + TimeSpan elapsed = end - start; // Note: numbers are the number of records read, not the number of Dam data objects. Assert.AreEqual(3306, csvImporterSurfaceLines.ImportedItems.Count); Assert.AreEqual(3305, csvImporterCharacteristicPoints.ImportedItems.Count); Assert.AreEqual(23554, csvImporterSoilProfiles.ImportedItems.Count); Assert.AreEqual(7672, csvImporterSegments.ImportedItems.Count); - var maxTime = TimeSpan.FromSeconds(6); // This is the time on the buildserver; local time was 2 seconds; - // enlarged from 4 to 6 sec because code coverage was turned on on build server + TimeSpan maxTime = TimeSpan.FromSeconds(6); // This is the time on the buildserver; local time was 2 seconds; + // enlarged from 4 to 6 sec because code coverage was turned on on build server Assert.Less(elapsed, maxTime); }); } + + /// + /// Create csv file with segments containing 1d soilprofiles + /// + /// + private static void CreateSegmentsFor1DProfilesFile(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + 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 segments containing 2d geometries + /// + /// + private static void CreateSegmentsFor2DGeometriesFile(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine("segment_id;soilgeometry2D_name;probability;calculation_type"); + writer.WriteLine("1;GeomA;80;Stability"); + writer.WriteLine("2;GeomB;20;Piping"); + } + } + + /// + /// Create csv file with segments containing error header + /// + /// + private static void CreateSegmentsFileWithIllegalHeader(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine("segment_id;soilgeometry2D_name;soilprofile_id;probability;calculation_type"); + writer.WriteLine("1;GeomA;80;Stability"); + writer.WriteLine("1;GeomB;20;Stability"); + } + } + + private static void CreateSoilProfilesFileWithObsoleteColumns(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine("soilprofile_id;top_level;soil_name;soiltype"); + writer.WriteLine("1DP1;10;HW-OBO;zand"); + writer.WriteLine("1DP1;-0.6;HW-DUN;veen"); + writer.WriteLine("1DP1;-1.8;HW-DUOzand;veen"); + writer.WriteLine("1DP1;-2.8;HW-HVN;zand"); + writer.WriteLine("1DP1;-4;HW-HVN;zand"); + writer.WriteLine("1DP1;-5;Alg-zand (0-30);zand"); + writer.WriteLine("1DP2;10;HW-OBO;zand"); + writer.WriteLine("1DP2;-0.7;HW-DUN;veen"); + writer.WriteLine("1DP2;-1.5;HW-DUOzand;veen"); + writer.WriteLine("1DP2;-2.4;HW-HVN;zand"); + writer.WriteLine("1DP2;-4.3;HW-HVN;zand"); + writer.WriteLine("1DP2;-5.3;Alg-zand (0-30);zand"); + } + } + + private static void CreateSoilProfilesFile(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + 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)"); + } + } + + private static void CreateSoilProfilesFileWithIllegalHeader(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine("soilprofile_id;soil_name"); + writer.WriteLine("1DP1;10;HW-OBO"); + } + } + + private static void CreateSoilProfilesFileWithIllegalHeaderField(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine("soilprofile_id;soil_name;aaa;bbb;"); + writer.WriteLine("1DP1;10;HW-OBO"); + } + } + + private static void CreateCharacteristicPointsFile(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + 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;X_Dijktafelhoogte;Y_Dijktafelhoogte;Z_Dijktafelhoogte;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;52.63;0;4.77;1"); + } + } + + private static void CreateCharacteristicPointsFileWithLocationId(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine( + "LocationId;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;X_Dijktafelhoogte;Y_Dijktafelhoogte;Z_Dijktafelhoogte;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;52.63;0;4.77;1"); + } + } + + private static void CreateCharacteristicPointsFileWithIllegalHeader(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine( + "Profielnaam;X_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;X_Dijktafelhoogte;Y_Dijktafelhoogte;Z_Dijktafelhoogte;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;52.63;0;4.77;1"); + } + } + + private static void CreateSurfaceLinesFile(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + 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"); + writer.WriteLine( + "D2;;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"); + } + } + + private static void CreateSurfaceLinesFileWithLocationId(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine( + "LocationId;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"); + writer.WriteLine( + "D2;;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"); + } + } + + private static void CreateSurfaceLinesFileWithIllegalValues(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine( + "Profielnaam;Geologischprofiel;X_GridPoint;Y_GridPoint;ScenarioClusterID;X1;Y1;Z1;.....;Xn;Yn;Zn;(Profiel)"); + writer.WriteLine( + "D1;;AS63.310;Bw0.000;1;0.000;0.000;0.680;21.110;0.000;1.120;31.600;0.0as00;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"); + writer.WriteLine( + "D2;;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"); + } + } + + private static void CreateSurfaceLinesFileWithIllegalHeaders(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine( + "Proflnaam;Geologischprofiel;X_GridPoint;Y_GridPoint;ScenarioClusterID;X1;Y1;Z1;.....;Xn;Yn;Zn;(Profiel)"); + writer.WriteLine( + "D1;;AS63.310;Bw0.000;1;0.000;0.000;0.680;21.110;0.000;1.120;31.600;0.0as00;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"); + writer.WriteLine( + "D2;;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"); + } + } + + private static void CreateLocationsFileWithObsoleteColumn(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine( + "location_id;surfaceline_id;segment_id;geo_x;geo_y;x_soilgeometry2D_origin;Pl1_id;polderlevel;polderlevellow;head_pl2;head_pl3;head_pl4;Grass_quality;Direction;Ophoogmateriaaldijk;Ophoogmateriaalberm;Sheetpile_x;Sheetpile_y;Sheetpile_z;Sheetpile_length;use_original_plline_assignments;PenetrationLength;TrafficLoad;minimal_circle_depth;dempingsfactor_pl3;dempingsfactor_pl4;PLLineCreationMethod;level_reduction_inside;level_reduction_outside;layer_height_distribution;layer_height_deviation;safety_factor_piping;safety_factor_stability_inner_slope;safety_factor_stability_outer_slope;probability_of_failure_stability_innerslope;probability_of_failure_stability_outerslope;probability_of_failure_piping;uplift_criterion_piping;uplift_criterion_stability;Materiaaltypedijk;bp_tp;bp_hbp;bp_lbp;Baggerdiepte;distance_to_entry_point;PLLineOffsetBelowDikeTopAtRiver;PLLineOffsetBelowDikeTopAtPolder;PLLineOffsetBelowShoulderBaseInside;PLLineOffsetBelowDikeToeAtPolder;PLLineOffsetDryBelowDikeTopAtRiver;PLLineOffsetDryBelowDikeTopAtPolder;PLLineOffsetDryBelowShoulderBaseInside;PLLineOffsetDryBelowDikeToeAtPolder;StabilityShoulderGrowSlope;StabilityShoulderGrowDeltaX;StabilitySlopeAdaptionDeltaX;detrimentfactor;dike_table_height;SlopeDampingPiezometricHeightPolderSide;StabilityDesignMethod;SlopeAdaptionStartCotangent;SlopeAdaptionEndCotangent;SlopeAdaptionStepCotangent; UseNewDikeTopWidth; NewDikeTopWidth;UseNewDikeSlopeInside;NewDikeSlopeInside;UseNewDikeSlopeOutside;NewDikeSlopeOutside;UseNewShoulderTopSlope;NewShoulderTopSlope;UseNewShoulderBaseSlope;NewShoulderBaseSlope;UseNewMaxHeightShoulderAsFraction;NewMaxHeightShoulderAsFraction;UseNewMinDistanceDikeToeStartDitch;NewMinDistanceDikeToeStartDitch;UseNewDitchDefinition;NewWidthDitchBottom;newSlopeAngleDitch;NewDepthDitch;ZoneType;ForbiddenZoneFactor;ZoneAreaRestSlopeCrestWidth;PLLineOffsetBelowDikeCrestMiddle;PLLineOffsetFactorBelowShoulderCrest;UsePLLineOffsetDryBelowDikeCrestMiddle;PLLineOffsetDryBelowDikeCrestMiddle;UsePLLineOffsetDryFactorBelowShoulderCrest;PLLineOffsetDryFactorBelowShoulderCrest;IntrusionVerticalWaterPressure;TL_DegreeOfConsolidation;water_height;water_height_low;water_height_decimerings_hoogte;max_waterheight"); + writer.WriteLine( + "16-1-1-C-3-Z;16-1-1-C-3-Z;1043;124330;441312;1;16-1-1-C-3-Z;0.9;0.2;13.056;0.9;0.8;1;1;klei;klei2;1;2;3;12;TRUE;1.3;10;1.5;30;40;ExpertKnowledgeRRD;1;2;Uniform;0.1;1.2;1.3;1.4;0.01;0.02;0.03;1.1;1.2;klei;1.0;1.1;1.2;2.0;2.1;0.5;0.6;0.1;0.2;0.6;1.6;0.2;0.3;2.0;0.2;0.5;0.9;3.5;0.01;OptimizedSlopeAndShoulderAdaption;3.0;6.0;0.5;TRUE;1.8;TRUE;1.9;TRUE;2.9;TRUE;2.8;TRUE;2.7;TRUE;0.6;TRUE;2.6;TRUE;1.1;1.2;1.3;NoZones;0.5;1.6;1.0;0.1;TRUE;1.1;FALSE;0.11;Standard;10.1;1.2;1.3;1.4;1.5"); + writer.WriteLine( + "25-2-2-A-1-A;25-2-2-A-1-A;106;66586;424173;2;25-2-2-A-1-A;-0.25;-0.25;0.8727;-0.25;-0.25;1;1;klei;klei2;1;2;3;12;FALSE;1.3;10;1.5;30;40;ExpertKnowledgeRRD;1;2;Uniform;0.1;1.2;1.3;1.4;0.01;0.02;0.03;1.1;1.2;klei;1.0;1.1;1.2;2.0;2.1;0.5;0.6;0.1;0.2;0.6;1.6;0.2;0.3;2.0;0.2;0.5;0.9;3.5;0.2;SlopeAdaptionBeforeShoulderAdaption;4.5;6.5;0.25;FALSE;0.8;FALSE;0.9;FALSE;1.9;FALSE;1.8;FALSE;1.7;FALSE;0.7;FALSE;1.6;FALSE;1.4;1.5;1.6;ForbiddenZone;0.9;2.1; 1.1;0.11;FALSE; 1.0;TRUE;0.1;SemiTimeDependent;55.5;2.2;2.3;2.4;2.5"); + } + } + + private static void CreateScenariosFile(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine( + "location_id;location_scenario_id;water_height;water_height_low;dike_table_height;water_height_decimerings_hoogte;max_waterheight;safety_factor_piping;safety_factor_stability_inner_slope;safety_factor_stability_outer_slope;probability_of_failure_stability_innerslope;probability_of_failure_stability_outerslope;probability_of_failure_piping;uplift_criterion_piping;uplift_criterion_stability"); + writer.WriteLine( + "D1;1;0.000;0.680;21.110;0.000;1.120;31.600;0.000;1.300;31.730;63.310;0.000;1.3;0.000"); + writer.WriteLine( + "D2;1;0.000;1.680;22.110;2.000;1.220;32.600;1.000;1.400;32.730;3.310;1.000;1.3;0.000"); + } + } + + private static void CreateScenariosFileWithOffsetData(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine( + "location_id;location_scenario_id;water_height;water_height_low;dike_table_height;water_height_decimerings_hoogte;max_waterheight;safety_factor_piping;safety_factor_stability_inner_slope;safety_factor_stability_outer_slope;probability_of_failure_stability_innerslope;probability_of_failure_stability_outerslope;probability_of_failure_piping;uplift_criterion_piping;uplift_criterion_stability;PLLineOffsetBelowDikeTopAtRiver;PLLineOffsetBelowDikeTopAtPolder;PLLineOffsetBelowShoulderBaseInside;PLLineOffsetBelowDikeToeAtPolder;UsePLLineOffsetBelowDikeCrestMiddle;PLLineOffsetBelowDikeCrestMiddle;UsePLLineOffsetFactorBelowShoulderCrest;PLLineOffsetFactorBelowShoulderCrest;head_pl3;head_pl4"); + writer.WriteLine( + "D1;1;0.000;0.680;21.110;0.000;1.120;31.600;0.000;1.300;31.730;63.310;0.000;1.3;0.000;1.1;2.2;3.3;4.4;TRUE;5.5;FALSE;6.6;7.7;8.8"); + writer.WriteLine( + "D2;1;0.000;1.680;22.110;2.000;1.220;32.600;1.000;1.400;32.730;3.310;1.000;1.3;0.000;0.1;0.2;0.3;0.4;FALSE;0.5;TRUE;0.6;0.7;0.8"); + } + } + + private static void CreateScenariosWithHeadPl3AndHeadPl4File(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine( + "location_id;location_scenario_id;head_pl3;head_pl4"); + writer.WriteLine( + "D1;1;0.001;0.002"); + writer.WriteLine( + "D2;1;0.003;0.004"); + } + } + + private static void CreateScenariosWithHeadPl3AndHeadPl4OldFormatFile(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine( + "location_id;location_scenario_id;HeadPl3;HeadPl4"); + writer.WriteLine( + "D1;1;0.011;0.012"); + writer.WriteLine( + "D2;1;0.013;0.014"); + } + } + + private static void CreateScenariosWithPolderLevelFile(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine( + "location_id;location_scenario_id;polderlevel;"); + writer.WriteLine( + "D1;1;0.001;"); + writer.WriteLine( + "D2;1;0.003;"); + } + } + + private static void CreateScenariosWithHeadPL2File(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine( + "location_id;location_scenario_id;head_pl2;"); + writer.WriteLine( + "D1;1;0.001;"); + writer.WriteLine( + "D2;1;0.003;"); + } + } + + private void CreateScenariosFileWithIllegalHeader(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine( + "location_id;water_height;water_height_low;dike_table_height;water_height_decimerings_hoogte;max_waterheight;safety_factor_piping;safety_factor_stability_inner_slope;safety_factor_stability_outer_slope;probability_of_failure_stability_innerslope;probability_of_failure_stability_outerslope;probability_of_failure_piping;uplift_criterion_piping;uplift_criterion_stability"); + writer.WriteLine( + "D1;1;0.000;0.680;21.110;0.000;1.120;31.600;0.000;1.300;31.730;63.310;0.000;1.3;0.000"); + writer.WriteLine( + "D2;1;0.000;1.680;22.110;2.000;1.220;32.600;1.000;1.400;32.730;3.310;1.000;1.3;0.000"); + } + } + + private void CreateScenariosFileWithIllegalValues(string filePath) + { + using (StreamWriter writer = File.CreateText(filePath)) + { + writer.WriteLine( + "location_id;location_scenario_id;water_height;water_height_low;dike_table_height;water_height_decimerings_hoogte;max_waterheight;safety_factor_piping;safety_factor_stability_inner_slope;safety_factor_stability_outer_slope;probability_of_failure_stability_innerslope;probability_of_failure_stability_outerslope;probability_of_failure_piping;uplift_criterion_piping;uplift_criterion_stability"); + writer.WriteLine( + "D1;1;0.000;0.680;21.110;0.000;1.120;aa;0.000;1.300;31.730;63.310;0.000;1.3;0.000"); + writer.WriteLine( + "D2;1;0.000;1.680;dd;22.110;1.220;32.600;1.000;1.400;32.730;3.310;1.000;1.3;0.000"); + } + } + + private static void CheckCharacteristicPoints(IList characteristicPointsRecords) + { + Assert.AreEqual("D1", characteristicPointsRecords[0].SurfaceLineId); + Assert.AreEqual(1, characteristicPointsRecords[0].Volgnummer); + + Assert.AreEqual(117.94, characteristicPointsRecords[0].Points[0].X); + Assert.AreEqual(0, characteristicPointsRecords[0].Points[0].Y); + Assert.AreEqual(0.12, characteristicPointsRecords[0].Points[0].Z); + + Assert.AreEqual(-1, characteristicPointsRecords[0].Points[1].X); + Assert.AreEqual(-1, characteristicPointsRecords[0].Points[1].Y); + Assert.AreEqual(-1, characteristicPointsRecords[0].Points[1].Z); + + Assert.AreEqual(73.99, characteristicPointsRecords[0].Points[2].X); + Assert.AreEqual(0, characteristicPointsRecords[0].Points[2].Y); + Assert.AreEqual(-1.0, characteristicPointsRecords[0].Points[2].Z); + + Assert.AreEqual(72.55, characteristicPointsRecords[0].Points[3].X); + Assert.AreEqual(0, characteristicPointsRecords[0].Points[3].Y); + Assert.AreEqual(-1.46, characteristicPointsRecords[0].Points[3].Z); + + Assert.AreEqual(67.9, characteristicPointsRecords[0].Points[4].X); + Assert.AreEqual(0, characteristicPointsRecords[0].Points[4].Y); + Assert.AreEqual(1.07, characteristicPointsRecords[0].Points[4].Z); + + Assert.AreEqual(63.31, characteristicPointsRecords[0].Points[5].X); + Assert.AreEqual(0, characteristicPointsRecords[0].Points[5].Y); + Assert.AreEqual(1.36, characteristicPointsRecords[0].Points[5].Z); + + Assert.AreEqual(-1, characteristicPointsRecords[0].Points[6].X); + Assert.AreEqual(-1, characteristicPointsRecords[0].Points[6].Y); + Assert.AreEqual(-1, characteristicPointsRecords[0].Points[6].Z); + + Assert.AreEqual(-1, characteristicPointsRecords[0].Points[7].X); + Assert.AreEqual(-1, characteristicPointsRecords[0].Points[7].Y); + Assert.AreEqual(-1, characteristicPointsRecords[0].Points[7].Z); + + Assert.AreEqual(55.17, characteristicPointsRecords[0].Points[8].X); + Assert.AreEqual(0, characteristicPointsRecords[0].Points[8].Y); + Assert.AreEqual(4.46, characteristicPointsRecords[0].Points[8].Z); + + Assert.AreEqual(54.25, characteristicPointsRecords[0].Points[9].X); + Assert.AreEqual(0, characteristicPointsRecords[0].Points[9].Y); + Assert.AreEqual(4.69, characteristicPointsRecords[0].Points[9].Z); + + Assert.AreEqual(51.75, characteristicPointsRecords[0].Points[10].X); + Assert.AreEqual(0, characteristicPointsRecords[0].Points[10].Y); + Assert.AreEqual(4.662, characteristicPointsRecords[0].Points[10].Z); + + Assert.AreEqual(50.11, characteristicPointsRecords[0].Points[11].X); + Assert.AreEqual(0, characteristicPointsRecords[0].Points[11].Y); + Assert.AreEqual(4.46, characteristicPointsRecords[0].Points[11].Z); + + Assert.AreEqual(40.48, characteristicPointsRecords[0].Points[12].X); + Assert.AreEqual(0, characteristicPointsRecords[0].Points[12].Y); + Assert.AreEqual(1.94, characteristicPointsRecords[0].Points[12].Z); + + Assert.AreEqual(32.21, characteristicPointsRecords[0].Points[13].X); + Assert.AreEqual(0, characteristicPointsRecords[0].Points[13].Y); + Assert.AreEqual(1.67, characteristicPointsRecords[0].Points[13].Z); + + Assert.AreEqual(31.6, characteristicPointsRecords[0].Points[14].X); + Assert.AreEqual(0, characteristicPointsRecords[0].Points[14].Y); + Assert.AreEqual(1.3, characteristicPointsRecords[0].Points[14].Z); + + Assert.AreEqual(0, characteristicPointsRecords[0].Points[15].X); + Assert.AreEqual(0, characteristicPointsRecords[0].Points[15].Y); + Assert.AreEqual(0.68, characteristicPointsRecords[0].Points[15].Z); + } + + private static void CheckSurfaceLine(IList surfaceLineRecords) + { + Assert.AreEqual("D1", surfaceLineRecords[0].SurfaceLineId); + Assert.AreEqual(0.0, surfaceLineRecords[0].Xcoors[0]); + Assert.AreEqual(0.0, surfaceLineRecords[0].Ycoors[0]); + Assert.AreEqual(0.680, surfaceLineRecords[0].Zcoors[0]); + + Assert.AreEqual(21.110, surfaceLineRecords[0].Xcoors[1]); + Assert.AreEqual(0.0, surfaceLineRecords[0].Ycoors[1]); + Assert.AreEqual(1.120, surfaceLineRecords[0].Zcoors[1]); + + Assert.AreEqual(31.600, surfaceLineRecords[0].Xcoors[2]); + Assert.AreEqual(0.0, surfaceLineRecords[0].Ycoors[2]); + Assert.AreEqual(1.300, surfaceLineRecords[0].Zcoors[2]); + + Assert.AreEqual(52.630, surfaceLineRecords[0].Xcoors[10]); + Assert.AreEqual(0.0, surfaceLineRecords[0].Ycoors[10]); + Assert.AreEqual(4.770, surfaceLineRecords[0].Zcoors[10]); + + Assert.AreEqual(72.370, surfaceLineRecords[0].Xcoors[22]); + Assert.AreEqual(0.0, surfaceLineRecords[0].Ycoors[22]); + Assert.AreEqual(-1.060, surfaceLineRecords[0].Zcoors[22]); + + Assert.AreEqual(86.660, surfaceLineRecords[0].Xcoors[30]); + Assert.AreEqual(0.0, surfaceLineRecords[0].Ycoors[30]); + Assert.AreEqual(0.270, surfaceLineRecords[0].Zcoors[30]); + + Assert.AreEqual(117.940, surfaceLineRecords[0].Xcoors[32]); + Assert.AreEqual(0.0, surfaceLineRecords[0].Ycoors[32]); + Assert.AreEqual(0.120, surfaceLineRecords[0].Zcoors[32]); + } } -} +} \ No newline at end of file