Fisheye: Tag 80b447a18c4d1abf1b4a7155f863f4faaed45ba6 refers to a dead (removed) revision in file `Ringtoets/Demo/src/Ringtoets.Demo/Commands/AddNewDemoAssessmentSectionCommand.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Demo/src/Ringtoets.Demo/Commands/AddNewDemoDikeAssessmentSectionCommand.cs =================================================================== diff -u --- Ringtoets/Demo/src/Ringtoets.Demo/Commands/AddNewDemoDikeAssessmentSectionCommand.cs (revision 0) +++ Ringtoets/Demo/src/Ringtoets.Demo/Commands/AddNewDemoDikeAssessmentSectionCommand.cs (revision 80b447a18c4d1abf1b4a7155f863f4faaed45ba6) @@ -0,0 +1,124 @@ +using System; +using System.IO; +using System.Linq; +using System.Reflection; + +using Core.Common.Gui; + +using Ringtoets.Integration.Data; +using Ringtoets.Piping.Plugin.FileImporter; + +namespace Ringtoets.Demo.Commands +{ + /// + /// Command that adds a new with demo data to the project tree. + /// + public class AddNewDemoDikeAssessmentSectionCommand : IGuiCommand + { + public bool Enabled + { + get + { + return true; + } + } + + public bool Checked { get; set; } + + public IGui Gui { get; set; } + + public void Execute(params object[] arguments) + { + var project = Gui.Application.Project; + project.Items.Add(CreateNewDemoAssessmentSection()); + project.NotifyObservers(); + } + + private DikeAssessmentSection CreateNewDemoAssessmentSection() + { + var demoAssessmentSection = new DikeAssessmentSection + { + Name = "Demo dijktraject" + }; + InitializeDemoPipingData(demoAssessmentSection); + return demoAssessmentSection; + } + + private void InitializeDemoPipingData(DikeAssessmentSection demoAssessmentSection) + { + var pipingFailureMechanism = demoAssessmentSection.PipingFailureMechanism; + + using (var tempPath = new TemporaryImportFile("DR6_surfacelines.csv")) + { + var surfaceLinesImporter = new PipingSurfaceLinesCsvImporter(); + surfaceLinesImporter.ImportItem(tempPath.FilePath, pipingFailureMechanism.SurfaceLines); + } + + using (var tempPath = new TemporaryImportFile("complete.soil")) + { + var surfaceLinesImporter = new PipingSoilProfilesImporter(); + surfaceLinesImporter.ImportItem(tempPath.FilePath, pipingFailureMechanism.SoilProfiles); + } + + var calculation = pipingFailureMechanism.Calculations.First(); + calculation.SurfaceLine = pipingFailureMechanism.SurfaceLines.First(sl => sl.Name == "PK001_0001"); + calculation.SoilProfile = pipingFailureMechanism.SoilProfiles.First(sl => sl.Name == "AD640M00_Segment_36005_1D2"); + } + + /// + /// Class for creating a temporary file in the windows Temp directory based on a + /// file stored in Embedded Resources. + /// + private class TemporaryImportFile : IDisposable + { + private readonly string tempTargetFolderPath; + private readonly string fullFilePath; + + /// + /// Initializes a new instance of the class. + /// + /// Name of the file with build action 'Embedded Resource' within this project. + public TemporaryImportFile(string embeddedResourceFileName) + { + tempTargetFolderPath = Path.Combine(Path.GetTempPath(), "demo_traject"); + Directory.CreateDirectory(tempTargetFolderPath); + + fullFilePath = Path.Combine(tempTargetFolderPath, embeddedResourceFileName); + + var stream = GetStreamToFileInResource(embeddedResourceFileName); + + var bytes = GetBinaryDataOfStream(stream); + + File.WriteAllBytes(fullFilePath, bytes); + } + + public string FilePath + { + get + { + return fullFilePath; + } + } + + public void Dispose() + { + Directory.Delete(tempTargetFolderPath, true); + } + + private Stream GetStreamToFileInResource(string embeddedResourceFileName) + { + var assembly = Assembly.GetAssembly(GetType()); + string embeddedResourceName = assembly.GetManifestResourceNames().First(n => n.EndsWith(embeddedResourceFileName)); + return assembly.GetManifestResourceStream(embeddedResourceName); + } + + private static byte[] GetBinaryDataOfStream(Stream stream) + { + var bytes = new byte[stream.Length]; + var reader = new BinaryReader(stream); + reader.Read(bytes, 0, (int)stream.Length); + return bytes; + } + } + } +} \ No newline at end of file Index: Ringtoets/Demo/src/Ringtoets.Demo/Commands/AddNewDemoDuneAssessmentSectionCommand.cs =================================================================== diff -u --- Ringtoets/Demo/src/Ringtoets.Demo/Commands/AddNewDemoDuneAssessmentSectionCommand.cs (revision 0) +++ Ringtoets/Demo/src/Ringtoets.Demo/Commands/AddNewDemoDuneAssessmentSectionCommand.cs (revision 80b447a18c4d1abf1b4a7155f863f4faaed45ba6) @@ -0,0 +1,40 @@ +using Core.Common.Gui; + +using Ringtoets.Integration.Data; + +namespace Ringtoets.Demo.Commands +{ + /// + /// Command that adds a new with demo data to the project tree. + /// + public class AddNewDemoDuneAssessmentSectionCommand : IGuiCommand + { + public bool Enabled + { + get + { + return true; + } + } + + public bool Checked { get; set; } + + public IGui Gui { get; set; } + + public void Execute(params object[] arguments) + { + var project = Gui.Application.Project; + project.Items.Add(CreateNewDemoAssessmentSection()); + project.NotifyObservers(); + } + + private DuneAssessmentSection CreateNewDemoAssessmentSection() + { + var demoAssessmentSection = new DuneAssessmentSection + { + Name = "Demo duintraject" + }; + return demoAssessmentSection; + } + } +} \ No newline at end of file Index: Ringtoets/Demo/src/Ringtoets.Demo/Properties/Resources.Designer.cs =================================================================== diff -u -r1e08e4d88dc94cddaf7cbd38bdc2b42f263225bc -r80b447a18c4d1abf1b4a7155f863f4faaed45ba6 --- Ringtoets/Demo/src/Ringtoets.Demo/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 1e08e4d88dc94cddaf7cbd38bdc2b42f263225bc) +++ Ringtoets/Demo/src/Ringtoets.Demo/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 80b447a18c4d1abf1b4a7155f863f4faaed45ba6) @@ -70,7 +70,7 @@ } /// - /// Looks up a localized string similar to Demo dijk traject. + /// Looks up a localized string similar to Demo dijktraject. /// public static string DemoDikeAssessmentSection { get { @@ -79,6 +79,15 @@ } /// + /// Looks up a localized string similar to Demo duintraject. + /// + public static string DemoDuneAssessmentSection { + get { + return ResourceManager.GetString("DemoDuneAssessmentSection", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Voorbeeld data. /// public static string ExampleData { Index: Ringtoets/Demo/src/Ringtoets.Demo/Properties/Resources.resx =================================================================== diff -u -r1e08e4d88dc94cddaf7cbd38bdc2b42f263225bc -r80b447a18c4d1abf1b4a7155f863f4faaed45ba6 --- Ringtoets/Demo/src/Ringtoets.Demo/Properties/Resources.resx (.../Resources.resx) (revision 1e08e4d88dc94cddaf7cbd38bdc2b42f263225bc) +++ Ringtoets/Demo/src/Ringtoets.Demo/Properties/Resources.resx (.../Resources.resx) (revision 80b447a18c4d1abf1b4a7155f863f4faaed45ba6) @@ -121,8 +121,11 @@ Demo - Demo dijk traject + Demo dijktraject + + Demo duintraject + Voorbeeld data Index: Ringtoets/Demo/src/Ringtoets.Demo/Ringtoets.Demo.csproj =================================================================== diff -u -r5c044a6799b45bec77af170dca0a84bc434c5f6f -r80b447a18c4d1abf1b4a7155f863f4faaed45ba6 --- Ringtoets/Demo/src/Ringtoets.Demo/Ringtoets.Demo.csproj (.../Ringtoets.Demo.csproj) (revision 5c044a6799b45bec77af170dca0a84bc434c5f6f) +++ Ringtoets/Demo/src/Ringtoets.Demo/Ringtoets.Demo.csproj (.../Ringtoets.Demo.csproj) (revision 80b447a18c4d1abf1b4a7155f863f4faaed45ba6) @@ -51,7 +51,8 @@ Properties\GlobalAssembly.cs - + + Index: Ringtoets/Demo/src/Ringtoets.Demo/RingtoetsDemoProjectRibbon.xaml =================================================================== diff -u -r1e08e4d88dc94cddaf7cbd38bdc2b42f263225bc -r80b447a18c4d1abf1b4a7155f863f4faaed45ba6 --- Ringtoets/Demo/src/Ringtoets.Demo/RingtoetsDemoProjectRibbon.xaml (.../RingtoetsDemoProjectRibbon.xaml) (revision 1e08e4d88dc94cddaf7cbd38bdc2b42f263225bc) +++ Ringtoets/Demo/src/Ringtoets.Demo/RingtoetsDemoProjectRibbon.xaml (.../RingtoetsDemoProjectRibbon.xaml) (revision 80b447a18c4d1abf1b4a7155f863f4faaed45ba6) @@ -13,7 +13,8 @@ - + + Index: Ringtoets/Demo/src/Ringtoets.Demo/RingtoetsDemoProjectRibbon.xaml.cs =================================================================== diff -u -r03cb43bd51e792d784654d90b33b6657ffeb4221 -r80b447a18c4d1abf1b4a7155f863f4faaed45ba6 --- Ringtoets/Demo/src/Ringtoets.Demo/RingtoetsDemoProjectRibbon.xaml.cs (.../RingtoetsDemoProjectRibbon.xaml.cs) (revision 03cb43bd51e792d784654d90b33b6657ffeb4221) +++ Ringtoets/Demo/src/Ringtoets.Demo/RingtoetsDemoProjectRibbon.xaml.cs (.../RingtoetsDemoProjectRibbon.xaml.cs) (revision 80b447a18c4d1abf1b4a7155f863f4faaed45ba6) @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Windows; using Core.Common.Controls; using Core.Common.Gui.Forms; @@ -14,20 +15,22 @@ /// public partial class RingtoetsDemoProjectRibbon : IRibbonCommandHandler { - private readonly ICommand addNewDemoProject; + private readonly ICommand addNewDikeAssessmentSection, addNewDuneAssessmentSection; public RingtoetsDemoProjectRibbon() { InitializeComponent(); - addNewDemoProject = new AddNewDemoAssessmentSectionCommand(); + addNewDikeAssessmentSection = new AddNewDemoDikeAssessmentSectionCommand(); + addNewDuneAssessmentSection = new AddNewDemoDuneAssessmentSectionCommand(); } public IEnumerable Commands { get { - yield return addNewDemoProject; + yield return addNewDikeAssessmentSection; + yield return addNewDuneAssessmentSection; } } @@ -46,9 +49,14 @@ return false; } - private void AddNewRingtoetsDemoProjectButton_Click(object sender, System.Windows.RoutedEventArgs e) + private void AddNewDemoDikeAssessmentSectionButton_Click(object sender, RoutedEventArgs e) { - addNewDemoProject.Execute(); + addNewDikeAssessmentSection.Execute(); } + + private void AddNewDemoDuneAssessmentSectionButton_Click(object sender, RoutedEventArgs e) + { + addNewDuneAssessmentSection.Execute(); + } } } Fisheye: Tag 80b447a18c4d1abf1b4a7155f863f4faaed45ba6 refers to a dead (removed) revision in file `Ringtoets/Demo/test/Ringtoets.Demo.Test/Commands/AddNewDemoAssessmentSectionCommandTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Demo/test/Ringtoets.Demo.Test/Commands/AddNewDemoDikeAssessmentSectionCommandTest.cs =================================================================== diff -u --- Ringtoets/Demo/test/Ringtoets.Demo.Test/Commands/AddNewDemoDikeAssessmentSectionCommandTest.cs (revision 0) +++ Ringtoets/Demo/test/Ringtoets.Demo.Test/Commands/AddNewDemoDikeAssessmentSectionCommandTest.cs (revision 80b447a18c4d1abf1b4a7155f863f4faaed45ba6) @@ -0,0 +1,115 @@ +using System.Linq; + +using Core.Common.Base; +using Core.Common.Controls; +using Core.Common.Gui; + +using NUnit.Framework; + +using Rhino.Mocks; + +using Ringtoets.Demo.Commands; +using Ringtoets.Integration.Data; +using Ringtoets.Piping.Calculation.Piping; +using Ringtoets.Piping.Data; +using Ringtoets.Piping.Service; + +namespace Ringtoets.Demo.Test.Commands +{ + [TestFixture] + public class AddNewDemoDikeAssessmentSectionCommandTest + { + [Test] + public void DefaultConstructor_ExpectedValues() + { + // Call + var command = new AddNewDemoDikeAssessmentSectionCommand(); + + // Assert + Assert.IsInstanceOf(command); + Assert.IsInstanceOf(command); + Assert.IsTrue(command.Enabled); + Assert.IsFalse(command.Checked); + Assert.IsNull(command.Gui); + } + + [Test] + public void Execute_GuiIsProperlyInitialized_AddNewDemoProjectToRootProject() + { + // Setup + var project = new Project(); + + var mocks = new MockRepository(); + var applicationMock = mocks.Stub(); + applicationMock.Stub(a => a.Project).Return(project); + var guiMock = mocks.Stub(); + guiMock.Application = applicationMock; + + var observerMock = mocks.StrictMock(); + observerMock.Expect(o => o.UpdateObserver()); + mocks.ReplayAll(); + + var command = new AddNewDemoDikeAssessmentSectionCommand(); + command.Gui = guiMock; + + project.Attach(observerMock); + + // Call + command.Execute(); + + // Assert + Assert.AreEqual(1, project.Items.Count); + var demoAssessmentSection = (DikeAssessmentSection) project.Items[0]; + Assert.AreEqual("Demo dijktraject", demoAssessmentSection.Name); + + var profiles = demoAssessmentSection.PipingFailureMechanism.SoilProfiles.ToArray(); + Assert.AreEqual(26, profiles.Length); + var surfaceLines = demoAssessmentSection.PipingFailureMechanism.SurfaceLines.ToArray(); + Assert.AreEqual(4, surfaceLines.Length); + + Assert.AreEqual(1, demoAssessmentSection.PipingFailureMechanism.Calculations.Count); + var calculation = demoAssessmentSection.PipingFailureMechanism.Calculations.First(); + AssertCalculationAbleToCalculate(calculation); + mocks.VerifyAll(); + } + + private void AssertCalculationAbleToCalculate(PipingData calculation) + { + Assert.AreEqual(1.0, calculation.UpliftModelFactor, 1e-3); + Assert.AreEqual(1.0, calculation.SellmeijerModelFactor, 1e-3); + + Assert.AreEqual(10.0, calculation.WaterVolumetricWeight, 1e-3); + Assert.AreEqual(0.0, calculation.AssessmentLevel, 1e-3); + Assert.AreEqual(0.0, calculation.PiezometricHeadExit, 1e-3); + Assert.AreEqual(0.0, calculation.PiezometricHeadPolder, 1e-3); + Assert.AreEqual(0.3, calculation.SellmeijerReductionFactor, 1e-3); + Assert.AreEqual(16.5, calculation.SandParticlesVolumicWeight, 1e-3); + Assert.AreEqual(0.25, calculation.WhitesDragCoefficient, 1e-3); + Assert.AreEqual(1.33e-6, calculation.WaterKinematicViscosity, 1e-3); + Assert.AreEqual(9.81, calculation.Gravity, 1e-3); + Assert.AreEqual(0.000208, calculation.MeanDiameter70, 1e-3); + Assert.AreEqual(37, calculation.BeddingAngle, 1e-3); + + Assert.AreEqual("PK001_0001", calculation.SurfaceLine.Name); + Assert.AreEqual("AD640M00_Segment_36005_1D2", calculation.SoilProfile.Name); + + Assert.AreEqual(3.666, PipingSemiProbabilisticDesignValueFactory.GetDampingFactorExit(calculation).GetDesignValue(), 1e-3); + Assert.AreEqual(-1.645, PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(calculation).GetDesignValue(), 1e-3); + Assert.AreEqual(0.011, PipingSemiProbabilisticDesignValueFactory.GetThicknessCoverageLayer(calculation).GetDesignValue(), 1e-3); + Assert.AreEqual(0.011, PipingSemiProbabilisticDesignValueFactory.GetSeepageLength(calculation).GetDesignValue(), 1e-3); + Assert.AreEqual(0.011, PipingSemiProbabilisticDesignValueFactory.GetDiameter70(calculation).GetDesignValue(), 1e-3); + Assert.AreEqual(2.345, PipingSemiProbabilisticDesignValueFactory.GetDarcyPermeability(calculation).GetDesignValue(), 1e-3); + Assert.AreEqual(2.345, PipingSemiProbabilisticDesignValueFactory.GetThicknessAquiferLayer(calculation).GetDesignValue(), 1e-3); + + Assert.IsTrue(PipingCalculationService.Validate(calculation)); + PipingCalculationService.Calculate(calculation); + Assert.IsTrue(calculation.HasOutput); + Assert.AreEqual(0.0021, calculation.Output.HeaveFactorOfSafety, 1e-3); + Assert.AreEqual(-143.3235, calculation.Output.HeaveZValue, 1e-3); + Assert.AreEqual(4.4072, calculation.Output.UpliftFactorOfSafety, 1e-3); + Assert.AreEqual(5.6044, calculation.Output.UpliftZValue, 1e-3); + Assert.AreEqual(0.0016, calculation.Output.SellmeijerFactorOfSafety, 1e-3); + Assert.AreEqual(-1.6387, calculation.Output.SellmeijerZValue, 1e-3); + } + } +} \ No newline at end of file Index: Ringtoets/Demo/test/Ringtoets.Demo.Test/Commands/AddNewDemoDuneAssessmentSectionCommandTest.cs =================================================================== diff -u --- Ringtoets/Demo/test/Ringtoets.Demo.Test/Commands/AddNewDemoDuneAssessmentSectionCommandTest.cs (revision 0) +++ Ringtoets/Demo/test/Ringtoets.Demo.Test/Commands/AddNewDemoDuneAssessmentSectionCommandTest.cs (revision 80b447a18c4d1abf1b4a7155f863f4faaed45ba6) @@ -0,0 +1,64 @@ +using System.Linq; + +using Core.Common.Base; +using Core.Common.Controls; +using Core.Common.Gui; + +using NUnit.Framework; + +using Rhino.Mocks; + +using Ringtoets.Demo.Commands; +using Ringtoets.Integration.Data; + +namespace Ringtoets.Demo.Test.Commands +{ + [TestFixture] + public class AddNewDemoDuneAssessmentSectionCommandTest + { + [Test] + public void DefaultConstructor_ExpectedValues() + { + // Call + var command = new AddNewDemoDuneAssessmentSectionCommand(); + + // Assert + Assert.IsInstanceOf(command); + Assert.IsInstanceOf(command); + Assert.IsTrue(command.Enabled); + Assert.IsFalse(command.Checked); + Assert.IsNull(command.Gui); + } + + [Test] + public void Execute_GuiIsProperlyInitialized_AddNewDemoProjectToRootProject() + { + // Setup + var project = new Project(); + + var mocks = new MockRepository(); + var applicationMock = mocks.Stub(); + applicationMock.Stub(a => a.Project).Return(project); + var guiMock = mocks.Stub(); + guiMock.Application = applicationMock; + + var observerMock = mocks.StrictMock(); + observerMock.Expect(o => o.UpdateObserver()); + mocks.ReplayAll(); + + var command = new AddNewDemoDuneAssessmentSectionCommand(); + command.Gui = guiMock; + + project.Attach(observerMock); + + // Call + command.Execute(); + + // Assert + Assert.AreEqual(1, project.Items.Count); + var demoAssessmentSection = (DuneAssessmentSection)project.Items[0]; + Assert.AreEqual("Demo duintraject", demoAssessmentSection.Name); + mocks.VerifyAll(); + } + } +} \ No newline at end of file Index: Ringtoets/Demo/test/Ringtoets.Demo.Test/Ringtoets.Demo.Test.csproj =================================================================== diff -u -r5c044a6799b45bec77af170dca0a84bc434c5f6f -r80b447a18c4d1abf1b4a7155f863f4faaed45ba6 --- Ringtoets/Demo/test/Ringtoets.Demo.Test/Ringtoets.Demo.Test.csproj (.../Ringtoets.Demo.Test.csproj) (revision 5c044a6799b45bec77af170dca0a84bc434c5f6f) +++ Ringtoets/Demo/test/Ringtoets.Demo.Test/Ringtoets.Demo.Test.csproj (.../Ringtoets.Demo.Test.csproj) (revision 80b447a18c4d1abf1b4a7155f863f4faaed45ba6) @@ -44,7 +44,8 @@ - + +