Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs =================================================================== diff -u -r1558 -r1620 --- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 1558) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 1620) @@ -24,6 +24,7 @@ using System.IO; using Deltares.DamEngine.Data.Design; using Deltares.DamEngine.Data.General; +using Deltares.DamEngine.Data.General.Sensors; using Deltares.DamEngine.Data.General.TimeSeries; using Deltares.DamEngine.Data.Geometry; using Deltares.DamEngine.Data.Geotechnics; @@ -32,6 +33,9 @@ using KellermanSoftware.CompareNetObjects; using NUnit.Framework; using Segment = Deltares.DamEngine.Data.General.Segment; +using Sensor = Deltares.DamEngine.Data.General.Sensors.Sensor; +using SensorGroup = Deltares.DamEngine.Data.General.Sensors.SensorGroup; +using SensorLocation = Deltares.DamEngine.Data.General.Sensors.SensorLocation; using Soil = Deltares.DamEngine.Data.Geotechnics.Soil; using SoilProfile1D = Deltares.DamEngine.Data.Geotechnics.SoilProfile1D; using SoilProfile2D = Deltares.DamEngine.Data.Geotechnics.SoilProfile2D; @@ -123,10 +127,84 @@ FillSegments(damProjectData); FillLocations(dike, damProjectData.Segments, damProjectData.ProjectPath); FillInputTimeSeries(dike); + FillSensorData(damProjectData); + return damProjectData; } + private void FillSensorData(DamProjectData damProjectData) + { + damProjectData.SensorData = new SensorData(); // SensorLocations, Sensors and SensorGroups are automatically created + var sensorData = damProjectData.SensorData; + var sensor1 = new Sensor() + { + ID = 1, + RelativeLocation = 12.2, + SensorType = SensorType.WaterLevel, + PlLineMappings = new[] { PlLineType.Pl1 } + }; + sensorData.Sensors.Add(sensor1); + var sensor2 = new Sensor() + { + ID = 2, + RelativeLocation = 24.2, + SensorType = SensorType.PolderLevel, + PlLineMappings = new [] { PlLineType .Pl1} + }; + sensorData.Sensors.Add(sensor2); + var sensorGroup1 = new SensorGroup() + { + ID = 1, + SensorArray = new Sensor[] { sensor1, sensor2 } + }; + sensorData.SensorGroups.Add(sensorGroup1); + var sensorLocation1 = new SensorLocation() + { + Location = damProjectData.Dike.Locations[0], + SensorGroup = sensorGroup1, + SourceTypePl1PlLineOffsetBelowDikeTopAtRiver = DataSourceTypeSensors.LocationData, + SourceTypePl1PlLineOffsetBelowDikeTopAtPolder = DataSourceTypeSensors.LocationData, + SourceTypePl1WaterLevelAtPolder = DataSourceTypeSensors.Sensor, + SourceTypePl1WaterLevelAtRiver = DataSourceTypeSensors.Sensor, + SourceTypePl3 = DataSourceTypeSensors.Sensor, + SourceTypePl4 = DataSourceTypeSensors.Sensor, + SourceTypePl1PlLineOffsetBelowDikeToeAtPolder = DataSourceTypeSensors.LocationData, + SourceTypePl1PlLineOffsetBelowShoulderBaseInside = DataSourceTypeSensors.LocationData + }; + damProjectData.Dike.Locations[0].SensorLocation = sensorLocation1; + sensorData.SensorLocations.Add(sensorLocation1); + var sensor3 = new Sensor() + { + ID = 3, + RelativeLocation = 8.8, + SensorType = SensorType.PiezometricHead, + PlLineMappings = new [] { PlLineType.Pl3, PlLineType.Pl4} + }; + sensorData.Sensors.Add(sensor3); + var sensorGroup2 = new SensorGroup() + { + ID = 2, + SensorArray = new Sensor[] { sensor3 } + }; + sensorData.SensorGroups.Add(sensorGroup2); + var sensorLocation2 = new SensorLocation() + { + Location = damProjectData.Dike.Locations[0], + SensorGroup = sensorGroup1, + SourceTypePl1PlLineOffsetBelowDikeTopAtRiver = DataSourceTypeSensors.LocationData, + SourceTypePl1PlLineOffsetBelowDikeTopAtPolder = DataSourceTypeSensors.LocationData, + SourceTypePl1WaterLevelAtPolder = DataSourceTypeSensors.Sensor, + SourceTypePl1WaterLevelAtRiver = DataSourceTypeSensors.Sensor, + SourceTypePl3 = DataSourceTypeSensors.Sensor, + SourceTypePl4 = DataSourceTypeSensors.Sensor, + SourceTypePl1PlLineOffsetBelowDikeToeAtPolder = DataSourceTypeSensors.LocationData, + SourceTypePl1PlLineOffsetBelowShoulderBaseInside = DataSourceTypeSensors.LocationData + }; + damProjectData.Dike.Locations[2].SensorLocation = sensorLocation2; + sensorData.SensorLocations.Add(sensorLocation2); + } + private void FillInputTimeSeries(Dike dike) { const int timeSeriesCount = 2;