Index: DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/DamLiveGrebbedijkTest.cs =================================================================== diff -u -r1574 -r1670 --- DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/DamLiveGrebbedijkTest.cs (.../DamLiveGrebbedijkTest.cs) (revision 1574) +++ DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/DamLiveGrebbedijkTest.cs (.../DamLiveGrebbedijkTest.cs) (revision 1670) @@ -44,29 +44,29 @@ const string calculationParametersStabilityFilename = @"Grebbedijk.Calculation.Parameters.xml"; const string calculationParametersPipingFilename = @"Grebbedijk Piping.Calculation.Parameters.xml"; - const string TestWorkingFolder = @".\damLiveWork"; - private const string TestStablityDataFolder = @"..\..\..\data\Projects\Grebbedijk"; - private const string TestPipingDataFolder = @"..\..\..\data\Projects\Grebbedijk - Piping"; + const string testWorkingFolder = @".\damLiveWork"; + private const string testStablityDataFolder = @"..\..\..\data\Projects\Grebbedijk"; + private const string testPipingDataFolder = @"..\..\..\data\Projects\Grebbedijk - Piping"; private List locations; private string inputFile; private string outputFile; private string projectFile; private string parameterFile; - private TestModelRunner runner; + private DamEngineRunner runner; [TestFixtureSetUp] public void SetupFixture() { - IoHelper.RemoveTestWorkingDirectory(TestWorkingFolder); // to be sure no test directory exist from previous tests - Directory.CreateDirectory(TestWorkingFolder); + IoHelper.RemoveTestWorkingDirectory(testWorkingFolder); // to be sure no test directory exist from previous tests + Directory.CreateDirectory(testWorkingFolder); } [TestFixtureTearDown] public void TearDownFixture() { - //IOHelper.RemoveTestWorkingDirectory(TestWorkingFolder); + IoHelper.RemoveTestWorkingDirectory(testWorkingFolder); } [TearDown] @@ -83,11 +83,11 @@ /// private void SetupStabilityProject() { - var actualTestPath = Path.GetFullPath(TestWorkingFolder); + var actualTestPath = Path.GetFullPath(testWorkingFolder); Directory.CreateDirectory(actualTestPath); - DirectoryHelper.CopyRecursive(actualTestPath, TestStablityDataFolder); + DirectoryHelper.CopyRecursive(actualTestPath, testStablityDataFolder); //inputFile = Path.Combine(actualTestPath, "live.FEWS.InputFile.1Step.xml"); inputFile = Path.Combine(actualTestPath, input1aFilename); @@ -102,14 +102,13 @@ var inputTimeSeries = TimeSerieCollection.LoadFromFile(inputFile); ShortenTimeSeries(inputTimeSeries); - runner = new TestModelRunner + runner = new DamEngineRunner { DamXFile = new FileInfo(projectFile), ParametersFile = new FileInfo(parameterFile), FewsInputFile = new FileInfo(inputFile), FewsOutputFile = new FileInfo(outputFile), Filter = "", - RunnerDelegate = new SensorModelRunner(), InputTimeSeriesCollection = inputTimeSeries }; } @@ -166,18 +165,17 @@ const double cTolerance = 0.0005; SetupStabilityProject(); runner.Initialize(); - runner.CreateAndSetWorkingDirectories(); - runner.DeleteFormerProjectFiles(); +// runner.CreateAndSetWorkingDirectories(); +// runner.DeleteFormerProjectFiles(); Assert.IsNotNull(runner); - Assert.IsNotNull(runner.ProjectData); - Assert.IsNotNull(runner.RunnerDelegate); + Assert.IsNotNull(runner.DamProjectData); Assert.IsNotNull(runner.CalculationParameters); Assert.IsNotNull(runner.CalculationParameters.CalculationModules); Assert.IsNotNull(runner.CalculationParameters.MStabParameters); - runner.Process(); - runner.WriteResultsToFile(outputFile); + runner.Run(); + //runner.WriteResultsToFile(outputFile); AssertNoErrors(); @@ -208,57 +206,5 @@ Assert.IsTrue(seriesCount > 0, "No output time series"); } - [Test, Ignore("Under construction")] - public void CalculateStabilityUsingTestFilesDupuitHasExpectedResultsInOutputFile() - { - const double cTolerance = 0.0005; - SetupStabilityProject(); - runner.Initialize(); - runner.CreateAndSetWorkingDirectories(); - runner.DeleteFormerProjectFiles(); - - Assert.IsNotNull(runner); - Assert.IsNotNull(runner.ProjectData); - Assert.IsNotNull(runner.RunnerDelegate); - Assert.IsNotNull(runner.CalculationParameters); - Assert.IsNotNull(runner.CalculationParameters.CalculationModules); - Assert.IsNotNull(runner.CalculationParameters.MStabParameters); - - runner.Process(); - runner.WriteResultsToFile(outputFile); - - AssertNoErrors(); - - // Assertions - - var series = runner.OutputTimeSeriesCollection.Series; - - int seriesCount = 0; - - var validParameterIDs = Enum.GetNames(typeof(TimeSerieParameters)); - foreach (var timeSeries in series) - { - Assert.IsTrue(validParameterIDs.Any(n => n == timeSeries.ParameterId)); - Assert.IsTrue(locations.Any(l => l.Name == timeSeries.LocationId)); - // Stability inside check - if (timeSeries.ParameterId == TimeSerieParameters.StabilityInsideFactor.ToString()) - { - if (timeSeries.LocationId == "grebbedijk1a") - { - var firstEntry = timeSeries.Entries.First(); - Assert.AreEqual(1.603, firstEntry.Value, cTolerance, "The computed safety factory is not correct"); - } - if (timeSeries.LocationId == "grebbedijk3a") - { - var firstEntry = timeSeries.Entries.First(); - Assert.AreEqual(0.590, firstEntry.Value, cTolerance, "The computed safety factory is not correct"); - } - } - - seriesCount++; - } - - Assert.IsTrue(seriesCount > 0, "No output time series"); - } } } Index: DamClients/DamLive/trunk/src/Deltares.Dam.Application.Live/DamEngineRunner.cs =================================================================== diff -u -r1666 -r1670 --- DamClients/DamLive/trunk/src/Deltares.Dam.Application.Live/DamEngineRunner.cs (.../DamEngineRunner.cs) (revision 1666) +++ DamClients/DamLive/trunk/src/Deltares.Dam.Application.Live/DamEngineRunner.cs (.../DamEngineRunner.cs) (revision 1670) @@ -1,9 +1,26 @@ -using System; -using System.Collections.Generic; +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of the application DAM - Live. +// +// DAM - UI is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Xml.Linq; using Deltares.Dam.Application.Live.Properties; using Deltares.Dam.Data; @@ -14,7 +31,6 @@ using Deltares.DamEngine.Io.XmlInput; using Deltares.DamEngine.Io.XmlOutput; using Deltares.Standard.Application; -using Deltares.Standard.Language; using Deltares.Standard.Logging; namespace Deltares.Dam.Application.Live @@ -177,9 +193,17 @@ DamProjectData.DamProjectCalculationSpecification.CurrentSpecification.FailureMechanismSystemType = FailureMechanismSystemType.StabilityInside; DamProjectData.DamProjectCalculationSpecification.CurrentSpecification.FailureMechanismeParamatersMStab.MStabParameters = CalculationParameters.MStabParameters; + foreach (var location in DamProjectData.Locations) + { + location.StabilityZoneType = CalculationParameters.MStabParameters.ZonesType; + } CallDamEngine(); OutputTimeSeriesCollection.Series.AddRange(DamProjectData.OutputTimeSerieCollection.Series); } + else + { + throw new NotImplementedException(string.Format("Only failuremechanism Macrostability is implemented")); + } } private void CallDamEngine() Index: DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/DamLiveIntegrationTest.cs =================================================================== diff -u -r1666 -r1670 --- DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/DamLiveIntegrationTest.cs (.../DamLiveIntegrationTest.cs) (revision 1666) +++ DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/DamLiveIntegrationTest.cs (.../DamLiveIntegrationTest.cs) (revision 1670) @@ -38,28 +38,27 @@ { #region Test Setup - const string TestWorkingFolder = "LiveDikeIntegrationTestWork"; - private const string TestDataFolder = @"TestData\DamLive\Set2"; + const string testWorkingFolder = "LiveDikeIntegrationTestWork"; + private const string testDataFolder = @"TestData\DamLive\Set2"; private List locations; private string inputFile; private string outputFile; private string projectFile; - private string parameterFile; private DamEngineRunner runner; private DamProjectData damProjectData; [TestFixtureSetUp] public void SetupFixture() { - IoHelper.RemoveTestWorkingDirectory(TestWorkingFolder); // to be sure no test directory exist from previous tests - Directory.CreateDirectory(TestWorkingFolder); + IoHelper.RemoveTestWorkingDirectory(testWorkingFolder); // to be sure no test directory exist from previous tests + Directory.CreateDirectory(testWorkingFolder); } [TestFixtureTearDown] public void TearDownFixture() { - IoHelper.RemoveTestWorkingDirectory(TestWorkingFolder); + IoHelper.RemoveTestWorkingDirectory(testWorkingFolder); } [TearDown] @@ -74,14 +73,13 @@ { // create a random unique test directory name in the // test working folder - var actualTestPath = TestWorkingFolder; + var actualTestPath = testWorkingFolder; Directory.CreateDirectory(actualTestPath); - DirectoryHelper.CopyRecursive(actualTestPath, TestDataFolder); + DirectoryHelper.CopyRecursive(actualTestPath, testDataFolder); inputFile = Path.Combine(actualTestPath, "live.FEWS.InputFile.1Step.xml"); outputFile = Path.Combine(actualTestPath, "live.FEWS.OutputFile.xml"); - parameterFile = Path.Combine(actualTestPath, "live.Parameters.xml"); projectFile = Path.Combine(actualTestPath, "output.damx"); var soilDatabasFile = Path.Combine(actualTestPath, "output0.soilmaterials.mdb"); @@ -341,7 +339,7 @@ SoilDatabaseName = Path.Combine(@".\", soilDatabasFile), SearchMethod = MStabSearchMethod.Grid, GridPosition = MStabGridPosition.Right, - CalculationOptions = new MStabCalculationOptions{ }, + CalculationOptions = new MStabCalculationOptions(), }, CalculationModules = new CalculationModules {