Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/MacroStabilityInwards/MacroStabilityInwardsStochasticSoilModelCreateExtensions.cs =================================================================== diff -u -r8ff26e0d7885f432a6e470e8d68ce325bdc6a9bc -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/MacroStabilityInwards/MacroStabilityInwardsStochasticSoilModelCreateExtensions.cs (.../MacroStabilityInwardsStochasticSoilModelCreateExtensions.cs) (revision 8ff26e0d7885f432a6e470e8d68ce325bdc6a9bc) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/MacroStabilityInwards/MacroStabilityInwardsStochasticSoilModelCreateExtensions.cs (.../MacroStabilityInwardsStochasticSoilModelCreateExtensions.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -72,10 +72,10 @@ PersistenceRegistry registry, StochasticSoilModelEntity entity) { - for (var i = 0; i < model.StochasticSoilProfiles.Count; i++) + var i = 0; + foreach (MacroStabilityInwardsStochasticSoilProfile stochasticSoilProfile in model.StochasticSoilProfiles) { - MacroStabilityInwardsStochasticSoilProfile stochasticSoilProfile = model.StochasticSoilProfiles[i]; - entity.MacroStabilityInwardsStochasticSoilProfileEntities.Add(stochasticSoilProfile.Create(registry, i)); + entity.MacroStabilityInwardsStochasticSoilProfileEntities.Add(stochasticSoilProfile.Create(registry, i++)); } } } Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/StochasticSoilModelEntityReadExtensions.cs =================================================================== diff -u -r57bc6a475f6cdd57b1a0ebf70cdf533014afd1ff -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/StochasticSoilModelEntityReadExtensions.cs (.../StochasticSoilModelEntityReadExtensions.cs) (revision 57bc6a475f6cdd57b1a0ebf70cdf533014afd1ff) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/StochasticSoilModelEntityReadExtensions.cs (.../StochasticSoilModelEntityReadExtensions.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -102,9 +102,10 @@ } Point2D[] geometry = ReadSegmentPoints(entity.StochasticSoilModelSegmentPointXml).ToArray(); - var model = new MacroStabilityInwardsStochasticSoilModel(entity.Name, geometry); + MacroStabilityInwardsStochasticSoilProfile[] stochasticSoilProfiles = entity.ReadMacroStabilityInwardsStochasticSoilProfiles(collector) + .ToArray(); + var model = new MacroStabilityInwardsStochasticSoilModel(entity.Name, geometry, stochasticSoilProfiles); - entity.ReadStochasticSoilProfiles(model, collector); collector.Read(entity, model); return model; @@ -121,14 +122,13 @@ } } - private static void ReadStochasticSoilProfiles(this StochasticSoilModelEntity entity, - MacroStabilityInwardsStochasticSoilModel model, - ReadConversionCollector collector) + private static IEnumerable ReadMacroStabilityInwardsStochasticSoilProfiles(this StochasticSoilModelEntity entity, + ReadConversionCollector collector) { foreach (MacroStabilityInwardsStochasticSoilProfileEntity stochasticSoilProfileEntity in entity.MacroStabilityInwardsStochasticSoilProfileEntities .OrderBy(ssp => ssp.Order)) { - model.StochasticSoilProfiles.Add(stochasticSoilProfileEntity.Read(collector)); + yield return stochasticSoilProfileEntity.Read(collector); } } Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacroStabilityInwards/MacroStabilityInwardsFailureMechanismCreateExtensionsTest.cs =================================================================== diff -u -ra20f5008f39cfa4fd6f94572fd07a011f76609f4 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacroStabilityInwards/MacroStabilityInwardsFailureMechanismCreateExtensionsTest.cs (.../MacroStabilityInwardsFailureMechanismCreateExtensionsTest.cs) (revision a20f5008f39cfa4fd6f94572fd07a011f76609f4) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacroStabilityInwards/MacroStabilityInwardsFailureMechanismCreateExtensionsTest.cs (.../MacroStabilityInwardsFailureMechanismCreateExtensionsTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -296,7 +296,7 @@ private static void AssertStochasticSoilModel(MacroStabilityInwardsStochasticSoilModel model, StochasticSoilModelEntity entity) { Assert.AreEqual(model.Name, entity.Name); - Assert.AreEqual(model.StochasticSoilProfiles.Count, entity.MacroStabilityInwardsStochasticSoilProfileEntities.Count); + Assert.AreEqual(model.StochasticSoilProfiles.Count(), entity.MacroStabilityInwardsStochasticSoilProfileEntities.Count); } } } \ No newline at end of file Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacroStabilityInwards/MacroStabilityInwardsStochasticSoilModelCreateExtensionsTest.cs =================================================================== diff -u -ra20f5008f39cfa4fd6f94572fd07a011f76609f4 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacroStabilityInwards/MacroStabilityInwardsStochasticSoilModelCreateExtensionsTest.cs (.../MacroStabilityInwardsStochasticSoilModelCreateExtensionsTest.cs) (revision a20f5008f39cfa4fd6f94572fd07a011f76609f4) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacroStabilityInwards/MacroStabilityInwardsStochasticSoilModelCreateExtensionsTest.cs (.../MacroStabilityInwardsStochasticSoilModelCreateExtensionsTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -72,10 +72,8 @@ // Setup var random = new Random(1); int order = random.Next(); - var stochasticSoilModel = new MacroStabilityInwardsStochasticSoilModel(nameof(MacroStabilityInwardsStochasticSoilModel), new[] - { - new Point2D(random.NextDouble(), random.NextDouble()) - }); + MacroStabilityInwardsStochasticSoilModel stochasticSoilModel = + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(nameof(MacroStabilityInwardsStochasticSoilModel)); var registry = new PersistenceRegistry(); // Call @@ -86,10 +84,6 @@ Assert.AreEqual(stochasticSoilModel.Name, entity.Name); Assert.AreEqual(order, entity.Order); CollectionAssert.IsEmpty(entity.PipingStochasticSoilProfileEntities); - CollectionAssert.IsEmpty(entity.MacroStabilityInwardsStochasticSoilProfileEntities); - - string expectedXml = new Point2DXmlSerializer().ToXml(stochasticSoilModel.Geometry); - Assert.AreEqual(expectedXml, entity.StochasticSoilModelSegmentPointXml); } [Test] @@ -112,15 +106,15 @@ // Assert Assert.IsNotNull(entity); CollectionAssert.IsEmpty(entity.PipingStochasticSoilProfileEntities); - Assert.AreEqual(stochasticSoilModel.StochasticSoilProfiles.Count, entity.MacroStabilityInwardsStochasticSoilProfileEntities.Count); + Assert.AreEqual(stochasticSoilProfiles.Length, entity.MacroStabilityInwardsStochasticSoilProfileEntities.Count); - MacroStabilityInwardsStochasticSoilProfile firstStochasticSoilProfile = stochasticSoilModel.StochasticSoilProfiles[0]; + MacroStabilityInwardsStochasticSoilProfile firstStochasticSoilProfile = stochasticSoilProfiles[0]; MacroStabilityInwardsStochasticSoilProfileEntity firstStochasticSoilProfileEntity = entity.MacroStabilityInwardsStochasticSoilProfileEntities.First(); Assert.AreEqual(firstStochasticSoilProfile.Probability, firstStochasticSoilProfileEntity.Probability); Assert.IsNotNull(firstStochasticSoilProfileEntity.MacroStabilityInwardsSoilProfileOneDEntity); Assert.IsNull(firstStochasticSoilProfileEntity.MacroStabilityInwardsSoilProfileTwoDEntity); - MacroStabilityInwardsStochasticSoilProfile secondStochasticSoilProfile = stochasticSoilModel.StochasticSoilProfiles[1]; + MacroStabilityInwardsStochasticSoilProfile secondStochasticSoilProfile = stochasticSoilProfiles[1]; MacroStabilityInwardsStochasticSoilProfileEntity secondStochasticSoilProfileEntity = entity.MacroStabilityInwardsStochasticSoilProfileEntities.ElementAt(1); Assert.AreEqual(secondStochasticSoilProfile.Probability, secondStochasticSoilProfileEntity.Probability); Assert.IsNull(secondStochasticSoilProfileEntity.MacroStabilityInwardsSoilProfileOneDEntity); @@ -132,11 +126,12 @@ { // Setup var random = new Random(31); - var stochasticSoilModel = new MacroStabilityInwardsStochasticSoilModel("testName", new[] - { - new Point2D(random.NextDouble(), random.NextDouble()), - new Point2D(random.NextDouble(), random.NextDouble()) - }); + MacroStabilityInwardsStochasticSoilModel stochasticSoilModel = + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("testName", new[] + { + new Point2D(random.NextDouble(), random.NextDouble()), + new Point2D(random.NextDouble(), random.NextDouble()) + }); var registry = new PersistenceRegistry(); @@ -169,7 +164,7 @@ public void GivenCreatedEntity_WhenCreateCalledOnSameObject_ThenSameEntityInstanceReturned() { // Given - var stochasticSoilModel = MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(); + MacroStabilityInwardsStochasticSoilModel stochasticSoilModel = MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(); var registry = new PersistenceRegistry(); StochasticSoilModelEntity firstEntity = stochasticSoilModel.Create(registry, 0); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/StochasticSoilModelEntityReadExtensionsTest.cs =================================================================== diff -u -r57bc6a475f6cdd57b1a0ebf70cdf533014afd1ff -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/StochasticSoilModelEntityReadExtensionsTest.cs (.../StochasticSoilModelEntityReadExtensionsTest.cs) (revision 57bc6a475f6cdd57b1a0ebf70cdf533014afd1ff) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/StochasticSoilModelEntityReadExtensionsTest.cs (.../StochasticSoilModelEntityReadExtensionsTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -332,7 +332,7 @@ // Assert Assert.AreEqual(entity.MacroStabilityInwardsStochasticSoilProfileEntities.Count, - model.StochasticSoilProfiles.Count); + model.StochasticSoilProfiles.Count()); CollectionAssert.AreEqual(new[] { "B", Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil.Test/RingtoetsProjectTestHelperTest.cs =================================================================== diff -u -r2be62a16f4a6d90a76ebb53967a7b7ea3a445cd1 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil.Test/RingtoetsProjectTestHelperTest.cs (.../RingtoetsProjectTestHelperTest.cs) (revision 2be62a16f4a6d90a76ebb53967a7b7ea3a445cd1) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil.Test/RingtoetsProjectTestHelperTest.cs (.../RingtoetsProjectTestHelperTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -160,11 +160,13 @@ Assert.AreEqual(1, failureMechanism.StochasticSoilModels.Count); MacroStabilityInwardsStochasticSoilModel soilModel = failureMechanism.StochasticSoilModels[0]; Assert.AreEqual("MacroStabilityInwards model name", soilModel.Name); - Assert.AreEqual(2, soilModel.StochasticSoilProfiles.Count); - MacroStabilityInwardsStochasticSoilProfile stochasticSoilProfile1 = soilModel.StochasticSoilProfiles[0]; + + MacroStabilityInwardsStochasticSoilProfile[] stochasticSoilProfiles = soilModel.StochasticSoilProfiles.ToArray(); + Assert.AreEqual(2, stochasticSoilProfiles.Length); + MacroStabilityInwardsStochasticSoilProfile stochasticSoilProfile1 = stochasticSoilProfiles[0]; Assert.AreEqual(0.3, stochasticSoilProfile1.Probability); Assert.IsInstanceOf(stochasticSoilProfile1.SoilProfile); - MacroStabilityInwardsStochasticSoilProfile stochasticSoilProfile2 = soilModel.StochasticSoilProfiles[1]; + MacroStabilityInwardsStochasticSoilProfile stochasticSoilProfile2 = stochasticSoilProfiles[1]; Assert.AreEqual(0.7, stochasticSoilProfile2.Probability); Assert.IsInstanceOf(stochasticSoilProfile2.SoilProfile); CollectionAssert.IsNotEmpty(((MacroStabilityInwardsSoilProfile2D) stochasticSoilProfile2.SoilProfile).PreconsolidationStresses); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectTestHelper.cs =================================================================== diff -u -r57bc6a475f6cdd57b1a0ebf70cdf533014afd1ff -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectTestHelper.cs (.../RingtoetsProjectTestHelper.cs) (revision 57bc6a475f6cdd57b1a0ebf70cdf533014afd1ff) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectTestHelper.cs (.../RingtoetsProjectTestHelper.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -1198,14 +1198,11 @@ referenceLineGeometryPoints[1], referenceLineGeometryPoints[2], referenceLineGeometryPoints[3] - }) + }, new[] { - StochasticSoilProfiles = - { - new MacroStabilityInwardsStochasticSoilProfile(0.3, soilProfile1D), - new MacroStabilityInwardsStochasticSoilProfile(0.7, soilProfile2D) - } - } + new MacroStabilityInwardsStochasticSoilProfile(0.3, soilProfile1D), + new MacroStabilityInwardsStochasticSoilProfile(0.7, soilProfile2D) + }) }, "some/path/to/stochasticSoilModelFile"); macroStabilityInwardsFailureMechanism.SurfaceLines.AddRange(new[] { Index: Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoAssessmentSectionCommand.cs =================================================================== diff -u -ra20f5008f39cfa4fd6f94572fd07a011f76609f4 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoAssessmentSectionCommand.cs (.../AddNewDemoAssessmentSectionCommand.cs) (revision a20f5008f39cfa4fd6f94572fd07a011f76609f4) +++ Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoAssessmentSectionCommand.cs (.../AddNewDemoAssessmentSectionCommand.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -433,13 +433,20 @@ { MacroStabilityInwardsFailureMechanism failuremechanism = demoAssessmentSection.MacroStabilityInwards; - var soilModel = new MacroStabilityInwardsStochasticSoilModel("Test model", new[] - { - new Point2D(20.210230, 26.00001), - new Point2D(3.830, 1.040506), - new Point2D(6.9300, 3.032406), - new Point2D(14.8312, 12.673506) - }); + var soilProfile1D = new MacroStabilityInwardsStochasticSoilProfile( + 0.2, + new MacroStabilityInwardsSoilProfile1D( + "test 1D", 22.567, new[] + { + new MacroStabilityInwardsSoilLayer1D(30.1267) + { + Data = + { + MaterialName = "1D Layer", + IsAquifer = true + } + } + })); var soilProfile2D = new MacroStabilityInwardsStochasticSoilProfile( 0.2, new MacroStabilityInwardsSoilProfile2D( @@ -475,23 +482,19 @@ } } }, Enumerable.Empty())); - soilModel.StochasticSoilProfiles.Add(soilProfile2D); - var soilProfile1D = new MacroStabilityInwardsStochasticSoilProfile( - 0.2, - new MacroStabilityInwardsSoilProfile1D( - "test 1D", 22.567, new[] - { - new MacroStabilityInwardsSoilLayer1D(30.1267) - { - Data = - { - MaterialName = "1D Layer", - IsAquifer = true - } - } - })); - soilModel.StochasticSoilProfiles.Add(soilProfile1D); + var soilModel = new MacroStabilityInwardsStochasticSoilModel("Test model", new[] + { + new Point2D(20.210230, 26.00001), + new Point2D(3.830, 1.040506), + new Point2D(6.9300, 3.032406), + new Point2D(14.8312, 12.673506) + }, new[] + { + soilProfile2D, + soilProfile1D + }); + failuremechanism.StochasticSoilModels.AddRange(new[] { soilModel Index: Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/AddNewDemoAssessmentSectionCommandTest.cs =================================================================== diff -u -r69d647795daacbf48e17d0cf3a02a21865ab4ae6 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/AddNewDemoAssessmentSectionCommandTest.cs (.../AddNewDemoAssessmentSectionCommandTest.cs) (revision 69d647795daacbf48e17d0cf3a02a21865ab4ae6) +++ Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/AddNewDemoAssessmentSectionCommandTest.cs (.../AddNewDemoAssessmentSectionCommandTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -599,16 +599,17 @@ MacroStabilityInwardsStochasticSoilModel soilModel = failureMechanism.StochasticSoilModels[0]; Assert.AreEqual("Test model", soilModel.Name); - Assert.AreEqual(2, soilModel.StochasticSoilProfiles.Count); - MacroStabilityInwardsStochasticSoilProfile stochasticSoilProfile2D = soilModel.StochasticSoilProfiles[0]; + MacroStabilityInwardsStochasticSoilProfile[] stochasticSoilProfiles = soilModel.StochasticSoilProfiles.ToArray(); + Assert.AreEqual(2, stochasticSoilProfiles.Length); + MacroStabilityInwardsStochasticSoilProfile stochasticSoilProfile2D = stochasticSoilProfiles[0]; Assert.AreEqual(0.2, stochasticSoilProfile2D.Probability); var soilProfile2D = stochasticSoilProfile2D.SoilProfile as MacroStabilityInwardsSoilProfile2D; Assert.IsNotNull(soilProfile2D); CollectionAssert.IsEmpty(soilProfile2D.PreconsolidationStresses); AssertMacroStabilityInwardsSoilProfile2D(soilProfile2D); - MacroStabilityInwardsStochasticSoilProfile stochasticSoilProfile1D = soilModel.StochasticSoilProfiles[1]; + MacroStabilityInwardsStochasticSoilProfile stochasticSoilProfile1D = stochasticSoilProfiles[1]; Assert.AreEqual(0.2, stochasticSoilProfile1D.Probability); var soilProfile1D = stochasticSoilProfile1D.SoilProfile as MacroStabilityInwardsSoilProfile1D; Assert.IsNotNull(soilProfile1D); Index: Ringtoets/Integration/test/Ringtoets.Integration.TestUtils.Test/DataUpdateHelperTest.cs =================================================================== diff -u -r1f0cd3fafaa7340a446612870810629587474302 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/Integration/test/Ringtoets.Integration.TestUtils.Test/DataUpdateHelperTest.cs (.../DataUpdateHelperTest.cs) (revision 1f0cd3fafaa7340a446612870810629587474302) +++ Ringtoets/Integration/test/Ringtoets.Integration.TestUtils.Test/DataUpdateHelperTest.cs (.../DataUpdateHelperTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -92,7 +92,7 @@ 1, 1, 1 - }, dikeSection.MacroStabilityInwards.StochasticSoilModels.Select(sm => sm.StochasticSoilProfiles.Count)); + }, dikeSection.MacroStabilityInwards.StochasticSoilModels.Select(sm => sm.StochasticSoilProfiles.Count())); CollectionAssert.AreEqual(new[] { 1.0, Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/SoilProfile/MacroStabilityInwardsStochasticSoilModel.cs =================================================================== diff -u -rb1cb91cbc7d2332a1a82c5d1361c25cd5a4a6ddc -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/SoilProfile/MacroStabilityInwardsStochasticSoilModel.cs (.../MacroStabilityInwardsStochasticSoilModel.cs) (revision b1cb91cbc7d2332a1a82c5d1361c25cd5a4a6ddc) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/SoilProfile/MacroStabilityInwardsStochasticSoilModel.cs (.../MacroStabilityInwardsStochasticSoilModel.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -35,14 +35,19 @@ /// public class MacroStabilityInwardsStochasticSoilModel : Observable, IMechanismStochasticSoilModel { + private readonly List stochasticSoilProfiles = new List(); + /// /// Creates a new instance of . /// /// Name of the segment soil model. /// The geometry of the segment soil model. + /// The stochastic soil profiles of the segment soil model. /// Thrown when any parameter is null. /// Thrown when is empty. - public MacroStabilityInwardsStochasticSoilModel(string name, IEnumerable geometry) + public MacroStabilityInwardsStochasticSoilModel(string name, + IEnumerable geometry, + IEnumerable stochasticSoilProfiles) { if (name == null) { @@ -52,6 +57,10 @@ { throw new ArgumentNullException(nameof(geometry)); } + if (stochasticSoilProfiles == null) + { + throw new ArgumentNullException(nameof(stochasticSoilProfiles)); + } if (!geometry.Any()) { string message = string.Format(RingtoetsCommonDataResources.StochasticSoilModel_Geometry_of_StochasticSoilModelName_0_must_contain_a_geometry, name); @@ -60,7 +69,7 @@ Name = name; Geometry = geometry; - StochasticSoilProfiles = new List(); + this.stochasticSoilProfiles.AddRange(stochasticSoilProfiles); } /// @@ -69,14 +78,20 @@ public string Name { get; private set; } /// - /// Gets the list of geometry points. + /// Gets the geometry points. /// public IEnumerable Geometry { get; private set; } /// - /// Gets the list of . + /// Gets the the collection of . /// - public List StochasticSoilProfiles { get; } + public IEnumerable StochasticSoilProfiles + { + get + { + return stochasticSoilProfiles; + } + } /// /// Updates the with the properties @@ -99,7 +114,7 @@ Name = fromModel.Name; Geometry = fromModel.Geometry; - + var newSoilProfiles = new List(); var updatedProfiles = new List(); var addedProfiles = new List(); @@ -120,7 +135,7 @@ } else { - StochasticSoilProfiles.Add(fromProfile); + stochasticSoilProfiles.Add(fromProfile); addedProfiles.Add(fromProfile); } newSoilProfiles.Add(fromProfile.SoilProfile); @@ -129,7 +144,7 @@ foreach (MacroStabilityInwardsStochasticSoilProfile profileToRemove in StochasticSoilProfiles.Where( sp => !newSoilProfiles.Any(newSp => IsSame(newSp, sp.SoilProfile))).ToArray()) { - StochasticSoilProfiles.Remove(profileToRemove); + stochasticSoilProfiles.Remove(profileToRemove); removedProfiles.Add(profileToRemove); } Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/PropertyClasses/MacroStabilityInwardsStochasticSoilModelProperties.cs =================================================================== diff -u -r7b513e5e4b0d15ba13e161b4c5a2e1097f58b8fd -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/PropertyClasses/MacroStabilityInwardsStochasticSoilModelProperties.cs (.../MacroStabilityInwardsStochasticSoilModelProperties.cs) (revision 7b513e5e4b0d15ba13e161b4c5a2e1097f58b8fd) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/PropertyClasses/MacroStabilityInwardsStochasticSoilModelProperties.cs (.../MacroStabilityInwardsStochasticSoilModelProperties.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -87,7 +87,7 @@ { get { - return data.StochasticSoilProfiles.Count > 0 + return data.StochasticSoilProfiles.Any() ? data.StochasticSoilProfiles.Select(ssp => new MacroStabilityInwardsStochasticSoilProfileProperties(ssp)).ToArray() : new MacroStabilityInwardsStochasticSoilProfileProperties[0]; } Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/SoilProfiles/MacroStabilityInwardsStochasticSoilModelTransformer.cs =================================================================== diff -u -rc5c91f8ca724aef52a6cd9055a2a32bcd6bc0c03 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/SoilProfiles/MacroStabilityInwardsStochasticSoilModelTransformer.cs (.../MacroStabilityInwardsStochasticSoilModelTransformer.cs) (revision c5c91f8ca724aef52a6cd9055a2a32bcd6bc0c03) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/SoilProfiles/MacroStabilityInwardsStochasticSoilModelTransformer.cs (.../MacroStabilityInwardsStochasticSoilModelTransformer.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -36,8 +36,8 @@ /// public class MacroStabilityInwardsStochasticSoilModelTransformer : IStochasticSoilModelTransformer { - private readonly Dictionary soilProfiles = new Dictionary(); private static readonly ILog log = LogManager.GetLogger(typeof(MacroStabilityInwardsStochasticSoilModelTransformer)); + private readonly Dictionary soilProfiles = new Dictionary(); public MacroStabilityInwardsStochasticSoilModel Transform(StochasticSoilModel stochasticSoilModel) { @@ -56,10 +56,11 @@ try { + MacroStabilityInwardsStochasticSoilProfile[] stochasticSoilProfiles = + TransformStochasticSoilProfiles(stochasticSoilModel.StochasticSoilProfiles, stochasticSoilModel.Name).ToArray(); var macroStabilityInwardsModel = new MacroStabilityInwardsStochasticSoilModel(stochasticSoilModel.Name, - stochasticSoilModel.Geometry); - macroStabilityInwardsModel.StochasticSoilProfiles.AddRange( - TransformStochasticSoilProfiles(stochasticSoilModel.StochasticSoilProfiles, stochasticSoilModel.Name).ToArray()); + stochasticSoilModel.Geometry, + stochasticSoilProfiles); return macroStabilityInwardsModel; } Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Service/MacroStabilityInwardsInputService.cs =================================================================== diff -u -r78382ec129ddc7537096860680cef36f3796700d -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Service/MacroStabilityInwardsInputService.cs (.../MacroStabilityInwardsInputService.cs) (revision 78382ec129ddc7537096860680cef36f3796700d) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Service/MacroStabilityInwardsInputService.cs (.../MacroStabilityInwardsInputService.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -63,7 +63,7 @@ { if (macroStabilityInwardsInput.StochasticSoilModel != null) { - if (macroStabilityInwardsInput.StochasticSoilModel.StochasticSoilProfiles.Count == 1) + if (macroStabilityInwardsInput.StochasticSoilModel.StochasticSoilProfiles.Count() == 1) { macroStabilityInwardsInput.StochasticSoilProfile = macroStabilityInwardsInput.StochasticSoilModel.StochasticSoilProfiles.First(); return; Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/SoilProfile/MacroStabilityInwardsStochasticSoilModelExtensionsTest.cs =================================================================== diff -u -rda4a311b2ac60defe1a27a61c8d151f47268a941 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/SoilProfile/MacroStabilityInwardsStochasticSoilModelExtensionsTest.cs (.../MacroStabilityInwardsStochasticSoilModelExtensionsTest.cs) (revision da4a311b2ac60defe1a27a61c8d151f47268a941) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/SoilProfile/MacroStabilityInwardsStochasticSoilModelExtensionsTest.cs (.../MacroStabilityInwardsStochasticSoilModelExtensionsTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -23,6 +23,7 @@ using Core.Common.Base.Geometry; using NUnit.Framework; using Ringtoets.MacroStabilityInwards.Data.SoilProfile; +using Ringtoets.MacroStabilityInwards.Data.TestUtil; using Ringtoets.MacroStabilityInwards.Primitives; namespace Ringtoets.MacroStabilityInwards.Data.Test.SoilProfile @@ -56,11 +57,12 @@ public void IntersectsWithSurfaceLineGeometry_SurfaceLineNull_ThrowArgumentNullException() { // Setup - var soilModel = new MacroStabilityInwardsStochasticSoilModel("A", new[] - { - new Point2D(1.0, 0.0), - new Point2D(5.0, 0.0) - }); + MacroStabilityInwardsStochasticSoilModel soilModel = + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("A", new[] + { + new Point2D(1.0, 0.0), + new Point2D(5.0, 0.0) + }); // Call TestDelegate test = () => soilModel.IntersectsWithSurfaceLineGeometry(null); @@ -74,11 +76,12 @@ public void IntersectsWithSurfaceLineGeometry_SurfaceLineIntersectingSoilModel_ReturnTrue() { // Setup - var soilModel = new MacroStabilityInwardsStochasticSoilModel("A", new[] - { - new Point2D(1.0, 0.0), - new Point2D(5.0, 0.0) - }); + MacroStabilityInwardsStochasticSoilModel soilModel = + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("A", new[] + { + new Point2D(1.0, 0.0), + new Point2D(5.0, 0.0) + }); var surfaceLine = new MacroStabilityInwardsSurfaceLine(string.Empty); surfaceLine.SetGeometry(new[] @@ -99,11 +102,12 @@ public void IntersectsWithSurfaceLineGeometry_SurfaceLineNotIntersectingSoilModel_ReturnFalse() { // Setup - var soilModel = new MacroStabilityInwardsStochasticSoilModel("A", new[] - { - new Point2D(1.0, 0.0), - new Point2D(5.0, 0.0) - }); + MacroStabilityInwardsStochasticSoilModel soilModel = + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("A", new[] + { + new Point2D(1.0, 0.0), + new Point2D(5.0, 0.0) + }); var surfaceLine = new MacroStabilityInwardsSurfaceLine(string.Empty); surfaceLine.SetGeometry(new[] Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/SoilProfile/MacroStabilityInwardsStochasticSoilModelTest.cs =================================================================== diff -u -r57bc6a475f6cdd57b1a0ebf70cdf533014afd1ff -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/SoilProfile/MacroStabilityInwardsStochasticSoilModelTest.cs (.../MacroStabilityInwardsStochasticSoilModelTest.cs) (revision 57bc6a475f6cdd57b1a0ebf70cdf533014afd1ff) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/SoilProfile/MacroStabilityInwardsStochasticSoilModelTest.cs (.../MacroStabilityInwardsStochasticSoilModelTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -43,20 +43,27 @@ // Call TestDelegate test = () => new MacroStabilityInwardsStochasticSoilModel(null, new[] - { - new Point2D(random.NextDouble(), random.NextDouble()) - }); + { + new Point2D(random.NextDouble(), random.NextDouble()) + }, + new[] + { + CreateStochasticSoilProfile() + }); // Assert var exception = Assert.Throws(test); Assert.AreEqual("name", exception.ParamName); } - [Test] + [Test] public void Constructor_GeometryNull_ThrowsArgumentNullException() { // Call - TestDelegate call = () => new MacroStabilityInwardsStochasticSoilModel(string.Empty, null); + TestDelegate call = () => new MacroStabilityInwardsStochasticSoilModel(string.Empty, null, new[] + { + CreateStochasticSoilProfile() + }); // Assert var exception = Assert.Throws(call); @@ -70,14 +77,36 @@ const string name = "modelName"; // Call - TestDelegate call = () => new MacroStabilityInwardsStochasticSoilModel(name, Enumerable.Empty()); + TestDelegate call = () => new MacroStabilityInwardsStochasticSoilModel(name, Enumerable.Empty(), new[] + { + CreateStochasticSoilProfile() + }); // Assert string expectedMessage = $"Het stochastische ondergrondmodel '{name}' moet een geometrie bevatten."; TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage); } [Test] + public void Constructor_StochasticSoilProfilesNull_ThrowsArgumentNullException() + { + // Setup + var random = new Random(21); + const string name = "name"; + var geometry = new[] + { + new Point2D(random.NextDouble(), random.NextDouble()) + }; + + // Call + TestDelegate call = () => new MacroStabilityInwardsStochasticSoilModel(name, geometry, null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("stochasticSoilProfiles", exception.ParamName); + } + + [Test] [TestCase("")] [TestCase("segmentSoilModelName")] public void Constructor_WithValidParameters_ExpectedValues(string segmentSoilModelName) @@ -88,22 +117,30 @@ { new Point2D(random.NextDouble(), random.NextDouble()) }; + IEnumerable stochasticSoilProfiles = new[] + { + CreateStochasticSoilProfile() + }; // Call - var stochasticSoilModel = new MacroStabilityInwardsStochasticSoilModel(segmentSoilModelName, geometry); + var stochasticSoilModel = new MacroStabilityInwardsStochasticSoilModel(segmentSoilModelName, geometry, stochasticSoilProfiles); + // Assert Assert.IsInstanceOf(stochasticSoilModel); Assert.AreEqual(segmentSoilModelName, stochasticSoilModel.Name); Assert.AreSame(geometry, stochasticSoilModel.Geometry); - CollectionAssert.IsEmpty(stochasticSoilModel.StochasticSoilProfiles); + CollectionAssert.AreEqual(stochasticSoilProfiles, stochasticSoilModel.StochasticSoilProfiles); } [Test] public void Update_WithNullModel_ThrowsArgumentNullException() { // Setup - MacroStabilityInwardsStochasticSoilModel model = CreateValidModel(); + MacroStabilityInwardsStochasticSoilModel model = CreateValidModel(new[] + { + CreateStochasticSoilProfile() + }); // Call TestDelegate test = () => model.Update(null); @@ -121,12 +158,18 @@ { new Point2D(1, 2), new Point2D(4, 5) + }, new[] + { + CreateStochasticSoilProfile() }); const string expectedName = "otherName"; var otherModel = new MacroStabilityInwardsStochasticSoilModel(expectedName, new[] { new Point2D(4, 2) + }, new[] + { + CreateStochasticSoilProfile() }); // Call @@ -144,17 +187,23 @@ public void Update_ModelWithAddedProfile_ProfileAdded() { // Setup - MacroStabilityInwardsStochasticSoilModel model = CreateValidModel(); - MacroStabilityInwardsStochasticSoilModel otherModel = CreateValidModel(); - var expectedAddedProfile = new MacroStabilityInwardsStochasticSoilProfile(0.2, new TestSoilProfile()); - otherModel.StochasticSoilProfiles.Add(expectedAddedProfile); + MacroStabilityInwardsStochasticSoilModel model = CreateValidModel(new[] + { + CreateStochasticSoilProfile() + }); + var expectedAddedProfile = new MacroStabilityInwardsStochasticSoilProfile(0.2, new TestSoilProfile("Added Profile")); + MacroStabilityInwardsStochasticSoilModel otherModel = CreateValidModel(new[] + { + CreateStochasticSoilProfile(), + expectedAddedProfile + }); + // Call MacroStabilityInwardsStochasticSoilModelProfileDifference difference = model.Update(otherModel); // Assert AssertStochasticSoilModelAreEqual(otherModel, model); - Assert.AreEqual(expectedAddedProfile, otherModel.StochasticSoilProfiles[0]); CollectionAssert.AreEqual(new[] { @@ -171,18 +220,22 @@ const string profileName = "A"; var expectedUpdatedProfile = new MacroStabilityInwardsStochasticSoilProfile( 0.2, new MacroStabilityInwardsSoilProfile1D(profileName, -2, CreateLayers1D())); - MacroStabilityInwardsStochasticSoilModel model = CreateValidModel(); - model.StochasticSoilProfiles.Add(expectedUpdatedProfile); - MacroStabilityInwardsStochasticSoilModel otherModel = CreateValidModel(); - otherModel.StochasticSoilProfiles.Add(new MacroStabilityInwardsStochasticSoilProfile( - 0.2, new MacroStabilityInwardsSoilProfile1D(profileName, -1, CreateLayers1D()))); + MacroStabilityInwardsStochasticSoilModel model = CreateValidModel(new[] + { + expectedUpdatedProfile + }); + MacroStabilityInwardsStochasticSoilModel otherModel = CreateValidModel(new[] + { + new MacroStabilityInwardsStochasticSoilProfile( + 0.2, new MacroStabilityInwardsSoilProfile1D(profileName, -1, CreateLayers1D())) + }); // Call MacroStabilityInwardsStochasticSoilModelProfileDifference difference = model.Update(otherModel); // Assert AssertStochasticSoilModelAreEqual(otherModel, model); - Assert.AreEqual(expectedUpdatedProfile, otherModel.StochasticSoilProfiles[0]); + Assert.AreEqual(expectedUpdatedProfile, otherModel.StochasticSoilProfiles.ElementAt(0)); CollectionAssert.IsEmpty(difference.AddedProfiles); CollectionAssert.AreEqual(new[] @@ -199,11 +252,15 @@ const string profileName = "A"; var soilProfile = new MacroStabilityInwardsSoilProfile1D(profileName, -2, CreateLayers1D()); var expectedUpdatedProfile = new MacroStabilityInwardsStochasticSoilProfile(0.2, soilProfile); - MacroStabilityInwardsStochasticSoilModel model = CreateValidModel(); - model.StochasticSoilProfiles.Add(expectedUpdatedProfile); + MacroStabilityInwardsStochasticSoilModel model = CreateValidModel(new[] + { + expectedUpdatedProfile + }); - MacroStabilityInwardsStochasticSoilModel otherModel = CreateValidModel(); - otherModel.StochasticSoilProfiles.Add(new MacroStabilityInwardsStochasticSoilProfile(0.5, soilProfile)); + MacroStabilityInwardsStochasticSoilModel otherModel = CreateValidModel(new[] + { + new MacroStabilityInwardsStochasticSoilProfile(0.5, soilProfile) + }); // Call MacroStabilityInwardsStochasticSoilModelProfileDifference difference = model.Update(otherModel); @@ -224,10 +281,12 @@ const string profileName = "A"; var soilProfile = new MacroStabilityInwardsSoilProfile1D(profileName, -2, CreateLayers1D()); var expectedRemovedProfile = new MacroStabilityInwardsStochasticSoilProfile(0.2, soilProfile); - MacroStabilityInwardsStochasticSoilModel model = CreateValidModel(); - model.StochasticSoilProfiles.Add(expectedRemovedProfile); + MacroStabilityInwardsStochasticSoilModel model = CreateValidModel(new[] + { + expectedRemovedProfile + }); - MacroStabilityInwardsStochasticSoilModel otherModel = CreateValidModel(); + MacroStabilityInwardsStochasticSoilModel otherModel = CreateValidModel(Enumerable.Empty()); // Call MacroStabilityInwardsStochasticSoilModelProfileDifference difference = model.Update(otherModel); @@ -251,11 +310,15 @@ var newProfile = new MacroStabilityInwardsStochasticSoilProfile( 0.2, new MacroStabilityInwardsSoilProfile2D(profileName, CreateLayers2D(), Enumerable.Empty())); - MacroStabilityInwardsStochasticSoilModel model = CreateValidModel(); - model.StochasticSoilProfiles.Add(expectedRemovedProfile); + MacroStabilityInwardsStochasticSoilModel model = CreateValidModel(new[] + { + expectedRemovedProfile + }); - MacroStabilityInwardsStochasticSoilModel otherModel = CreateValidModel(); - otherModel.StochasticSoilProfiles.Add(newProfile); + MacroStabilityInwardsStochasticSoilModel otherModel = CreateValidModel(new[] + { + newProfile + }); // Call MacroStabilityInwardsStochasticSoilModelProfileDifference difference = model.Update(otherModel); @@ -277,43 +340,47 @@ { // Setup const string equalProfileName = "nameA"; - MacroStabilityInwardsStochasticSoilModel model = CreateValidModel(); - var stochasticProfileA = new MacroStabilityInwardsStochasticSoilProfile(0.5, CreateMacroStabilityInwardsSoilProfile1D(equalProfileName)); var stochasticProfileB = new MacroStabilityInwardsStochasticSoilProfile(0.5, CreateMacroStabilityInwardsSoilProfile1D("nameB")); - model.StochasticSoilProfiles.Add(stochasticProfileA); - model.StochasticSoilProfiles.Add(stochasticProfileB); + MacroStabilityInwardsStochasticSoilModel model = CreateValidModel(new[] + { + stochasticProfileA, + stochasticProfileB + }); const string otherName = "other name"; var otherGeometry = new[] { new Point2D(2, 0), new Point2D(3, 0) }; - var otherModel = new MacroStabilityInwardsStochasticSoilModel(otherName, otherGeometry); - var otherStochasticProfileA = new MacroStabilityInwardsStochasticSoilProfile( 0.7, new MacroStabilityInwardsSoilProfile1D(equalProfileName, -1, new[] { new MacroStabilityInwardsSoilLayer1D(0) })); var otherStochasticProfileB = new MacroStabilityInwardsStochasticSoilProfile(0.3, CreateMacroStabilityInwardsSoilProfile1D("other profile name")); - otherModel.StochasticSoilProfiles.Add(otherStochasticProfileA); - otherModel.StochasticSoilProfiles.Add(otherStochasticProfileB); + var otherModel = new MacroStabilityInwardsStochasticSoilModel(otherName, otherGeometry, new[] + { + otherStochasticProfileA, + otherStochasticProfileB + }); // Call MacroStabilityInwardsStochasticSoilModelProfileDifference difference = model.Update(otherModel); // Assert AssertStochasticSoilModelAreEqual(otherModel, model); Assert.AreSame(otherGeometry, model.Geometry); - Assert.AreEqual(2, model.StochasticSoilProfiles.Count); - Assert.AreSame(stochasticProfileA, model.StochasticSoilProfiles[0]); - Assert.AreSame(otherStochasticProfileA.SoilProfile, model.StochasticSoilProfiles[0].SoilProfile); - Assert.AreNotSame(stochasticProfileB, model.StochasticSoilProfiles[1]); - Assert.AreSame(otherStochasticProfileB.SoilProfile, model.StochasticSoilProfiles[1].SoilProfile); + MacroStabilityInwardsStochasticSoilProfile[] stochasticSoilProfiles = model.StochasticSoilProfiles.ToArray(); + Assert.AreEqual(2, stochasticSoilProfiles.Length); + Assert.AreSame(stochasticProfileA, stochasticSoilProfiles[0]); + Assert.AreSame(otherStochasticProfileA.SoilProfile, stochasticSoilProfiles[0].SoilProfile); + Assert.AreNotSame(stochasticProfileB, stochasticSoilProfiles[1]); + Assert.AreSame(otherStochasticProfileB.SoilProfile, stochasticSoilProfiles[1].SoilProfile); + CollectionAssert.AreEqual(new[] { stochasticProfileA @@ -337,27 +404,31 @@ MacroStabilityInwardsSoilProfile1D soilProfileOne = MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D(profileName); var addedStochasticSoilProfile = new MacroStabilityInwardsStochasticSoilProfile(0.2, soilProfileOne); - MacroStabilityInwardsStochasticSoilModel otherModel = CreateValidModel(); - otherModel.StochasticSoilProfiles.Add(addedStochasticSoilProfile); + MacroStabilityInwardsStochasticSoilModel otherModel = CreateValidModel(new[] + { + addedStochasticSoilProfile + }); MacroStabilityInwardsSoilProfile1D soilProfile = MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D(profileName); var existingStochasticSoilProfileOne = new MacroStabilityInwardsStochasticSoilProfile(0.2, soilProfile); var existingStochasticSoilProfileTwo = new MacroStabilityInwardsStochasticSoilProfile(0.3, soilProfile); - MacroStabilityInwardsStochasticSoilModel model = CreateValidModel(); - model.StochasticSoilProfiles.Add(existingStochasticSoilProfileOne); - model.StochasticSoilProfiles.Add(existingStochasticSoilProfileTwo); + MacroStabilityInwardsStochasticSoilModel model = CreateValidModel(new[] + { + existingStochasticSoilProfileOne, + existingStochasticSoilProfileTwo + }); // Call TestDelegate call = () => model.Update(otherModel); // Assert Assert.Throws(call); - Assert.AreEqual(1, otherModel.StochasticSoilProfiles.Count); - Assert.AreEqual(addedStochasticSoilProfile, otherModel.StochasticSoilProfiles[0]); + Assert.AreEqual(1, otherModel.StochasticSoilProfiles.Count()); + Assert.AreEqual(addedStochasticSoilProfile, otherModel.StochasticSoilProfiles.First()); - Assert.AreEqual(2, model.StochasticSoilProfiles.Count); + Assert.AreEqual(2, model.StochasticSoilProfiles.Count()); CollectionAssert.AreEqual(new[] { existingStochasticSoilProfileOne, @@ -376,6 +447,10 @@ new[] { new Point2D(random.NextDouble(), random.NextDouble()) + }, + new[] + { + new MacroStabilityInwardsStochasticSoilProfile(random.NextDouble(), new TestSoilProfile()) }); // Call & Assert @@ -398,7 +473,41 @@ private class TestSoilProfile : IMacroStabilityInwardsSoilProfile { + public TestSoilProfile() {} + + public TestSoilProfile(string name) + { + Name = name; + } + public string Name { get; } = ""; + + public override bool Equals(object obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + if (ReferenceEquals(this, obj)) + { + return true; + } + if (obj.GetType() != GetType()) + { + return false; + } + return Equals((TestSoilProfile) obj); + } + + public override int GetHashCode() + { + return Name.GetHashCode(); + } + + private bool Equals(TestSoilProfile other) + { + return string.Equals(Name, other.Name); + } } private static IEnumerable CreateLayers1D() @@ -422,16 +531,22 @@ }; } - private static MacroStabilityInwardsStochasticSoilModel CreateValidModel() + private static MacroStabilityInwardsStochasticSoilModel CreateValidModel(IEnumerable stochasticSoilProfiles) { var random = new Random(21); return new MacroStabilityInwardsStochasticSoilModel("name", new[] { new Point2D(random.NextDouble(), random.NextDouble()) - }); + }, stochasticSoilProfiles); } + private static MacroStabilityInwardsStochasticSoilProfile CreateStochasticSoilProfile() + { + var random = new Random(21); + return new MacroStabilityInwardsStochasticSoilProfile(0.5, new TestSoilProfile()); + } + private static void AssertStochasticSoilModelAreEqual(MacroStabilityInwardsStochasticSoilModel expected, MacroStabilityInwardsStochasticSoilModel actual) { Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil.Test/MacroStabilityInwardsStochasticSoilModelTestFactoryTest.cs =================================================================== diff -u -rbdd9821cff5b4f895ff9607d7137c4dbe2712191 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil.Test/MacroStabilityInwardsStochasticSoilModelTestFactoryTest.cs (.../MacroStabilityInwardsStochasticSoilModelTestFactoryTest.cs) (revision bdd9821cff5b4f895ff9607d7137c4dbe2712191) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil.Test/MacroStabilityInwardsStochasticSoilModelTestFactoryTest.cs (.../MacroStabilityInwardsStochasticSoilModelTestFactoryTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -31,7 +31,7 @@ public class MacroStabilityInwardsStochasticSoilModelTestFactoryTest { [Test] - public void CreateValidStochasticSoilModel_ParameterLessConstructor_ReturnsValidStochasticSoilModel() + public void CreateValidStochasticSoilModel_ParameterLessConstructor_ExpectedPropertiesSet() { // Call MacroStabilityInwardsStochasticSoilModel model = MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(); @@ -41,7 +41,7 @@ Assert.AreEqual(typeof(MacroStabilityInwardsStochasticSoilModel), model.GetType()); Assert.IsEmpty(model.Name); - Assert.AreEqual(2, model.StochasticSoilProfiles.Count); + Assert.AreEqual(2, model.StochasticSoilProfiles.Count()); CollectionAssert.AreEquivalent(new[] { 0.5, @@ -56,7 +56,7 @@ } [Test] - public void CreateValidStochasticSoilModel_WithNameParameter_ReturnsValidStochasticSoilModel() + public void CreateValidStochasticSoilModel_WithNameParameter_ExpectedPropertiesSet() { // Setup const string soilModelName = "soil model name"; @@ -70,7 +70,7 @@ Assert.AreEqual(typeof(MacroStabilityInwardsStochasticSoilModel), model.GetType()); Assert.AreEqual(soilModelName, model.Name); - Assert.AreEqual(2, model.StochasticSoilProfiles.Count); + Assert.AreEqual(2, model.StochasticSoilProfiles.Count()); CollectionAssert.AreEquivalent(new[] { 0.5, @@ -85,7 +85,7 @@ } [Test] - public void CreateValidStochasticSoilModel_WithNameAndGeometryParameters_ReturnsValidStochasticSoilModel() + public void CreateValidStochasticSoilModel_WithNameAndGeometryParameters_ExpectedPropertiesSet() { // Setup const string soilModelName = "soil model name"; @@ -103,7 +103,7 @@ Assert.AreEqual(typeof(MacroStabilityInwardsStochasticSoilModel), model.GetType()); Assert.AreEqual(soilModelName, model.Name); - Assert.AreEqual(2, model.StochasticSoilProfiles.Count); + Assert.AreEqual(2, model.StochasticSoilProfiles.Count()); CollectionAssert.AreEquivalent(new[] { 0.5, @@ -114,13 +114,13 @@ } [Test] - public void CreateValidStochasticSoilModel_WithNameAndSoilProfiles_ReturnValidStochasticSoilModel() + public void CreateValidStochasticSoilModel_WithNameAndSoilProfiles_ExpectedPropertiesSet() { // Setup const string soilModelName = "soil model name"; var stochasticSoilProfiles = new[] { - new MacroStabilityInwardsStochasticSoilProfile(0.5, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) + new MacroStabilityInwardsStochasticSoilProfile(0.5, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) }; // Call @@ -140,5 +140,32 @@ new Point2D(2, 2) }, model.Geometry); } + + [Test] + public void CreateValidStochasticSoilModel_WithSoilProfiles_ExpectedPropertiesSet() + { + // Setup + var stochasticSoilProfiles = new[] + { + new MacroStabilityInwardsStochasticSoilProfile(0.5, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) + }; + + // Call + MacroStabilityInwardsStochasticSoilModel model = + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(stochasticSoilProfiles); + + // Assert + Assert.IsNotNull(model); + + Assert.AreEqual(typeof(MacroStabilityInwardsStochasticSoilModel), model.GetType()); + Assert.IsEmpty(model.Name); + CollectionAssert.AreEqual(stochasticSoilProfiles, model.StochasticSoilProfiles); + CollectionAssert.AllItemsAreNotNull(model.StochasticSoilProfiles.Select(p => p.SoilProfile)); + CollectionAssert.AreEqual(new[] + { + new Point2D(1, 1), + new Point2D(2, 2) + }, model.Geometry); + } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil/MacroStabilityInwardsStochasticSoilModelTestFactory.cs =================================================================== diff -u -ra20f5008f39cfa4fd6f94572fd07a011f76609f4 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil/MacroStabilityInwardsStochasticSoilModelTestFactory.cs (.../MacroStabilityInwardsStochasticSoilModelTestFactory.cs) (revision a20f5008f39cfa4fd6f94572fd07a011f76609f4) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil/MacroStabilityInwardsStochasticSoilModelTestFactory.cs (.../MacroStabilityInwardsStochasticSoilModelTestFactory.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -34,7 +34,7 @@ public static class MacroStabilityInwardsStochasticSoilModelTestFactory { /// - /// Creates an instance of . + /// Creates an instance of with an empty name. /// /// A valid instance of . public static MacroStabilityInwardsStochasticSoilModel CreateValidStochasticSoilModel() @@ -75,14 +75,12 @@ public static MacroStabilityInwardsStochasticSoilModel CreateValidStochasticSoilModel(string soilModelName, IEnumerable geometry) { - var model = new MacroStabilityInwardsStochasticSoilModel(soilModelName, geometry); - MacroStabilityInwardsSoilProfile1D soilProfileA = MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D("A"); MacroStabilityInwardsSoilProfile1D soilProfileB = MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D("B"); - model.StochasticSoilProfiles.AddRange(new[] + var model = new MacroStabilityInwardsStochasticSoilModel(soilModelName, geometry, new[] { new MacroStabilityInwardsStochasticSoilProfile(0.5, soilProfileA), new MacroStabilityInwardsStochasticSoilProfile(0.5, soilProfileB) @@ -98,7 +96,7 @@ /// The name of the soil model. /// The geometry of the soil model. /// A valid configured with the - /// specified . + /// specified and . /// Thrown when or /// is null. /// Thrown when is @@ -111,9 +109,23 @@ { new Point2D(1, 1), new Point2D(2, 2) - }); - model.StochasticSoilProfiles.AddRange(stochasticSoilProfiles); + }, stochasticSoilProfiles); return model; } + + /// + /// Creates an instance of + /// with specified stochastic soil profiles and an empty name. + /// + /// The geometry of the soil model. + /// A valid configured with the + /// specified . + /// Thrown when is null. + /// Thrown when is + /// empty. + public static MacroStabilityInwardsStochasticSoilModel CreateValidStochasticSoilModel(IEnumerable stochasticSoilProfiles) + { + return CreateValidStochasticSoilModel(string.Empty, stochasticSoilProfiles); + } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil/MacroStabilityInwardsTestDataGenerator.cs =================================================================== diff -u -ra20f5008f39cfa4fd6f94572fd07a011f76609f4 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil/MacroStabilityInwardsTestDataGenerator.cs (.../MacroStabilityInwardsTestDataGenerator.cs) (revision a20f5008f39cfa4fd6f94572fd07a011f76609f4) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil/MacroStabilityInwardsTestDataGenerator.cs (.../MacroStabilityInwardsTestDataGenerator.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -231,35 +231,29 @@ { new Point2D(-5, 5), new Point2D(5, 5) - }) + }, new[] { - StochasticSoilProfiles = + new MacroStabilityInwardsStochasticSoilProfile(1.0, new MacroStabilityInwardsSoilProfile1D("test", 3, new[] { - new MacroStabilityInwardsStochasticSoilProfile(1.0, new MacroStabilityInwardsSoilProfile1D("test", 3, new[] - { - new MacroStabilityInwardsSoilLayer1D(4) - })) - } - }; + new MacroStabilityInwardsSoilLayer1D(4) + })) + }); var stochasticSoilModel2 = new MacroStabilityInwardsStochasticSoilModel("C", new[] { new Point2D(5, 5), new Point2D(15, 5) - }) + }, new[] { - StochasticSoilProfiles = + new MacroStabilityInwardsStochasticSoilProfile(1.0, new MacroStabilityInwardsSoilProfile2D("test", new[] { - new MacroStabilityInwardsStochasticSoilProfile(1.0, new MacroStabilityInwardsSoilProfile2D("test", new[] + new MacroStabilityInwardsSoilLayer2D(new Ring(new[] { - new MacroStabilityInwardsSoilLayer2D(new Ring(new[] - { - new Point2D(0, 0), - new Point2D(1, 0), - new Point2D(0, 0) - }), Enumerable.Empty()) - }, Enumerable.Empty())) - } - }; + new Point2D(0, 0), + new Point2D(1, 0), + new Point2D(0, 0) + }), Enumerable.Empty()) + }, Enumerable.Empty())) + }); failureMechanism.StochasticSoilModels.AddRange(new[] { @@ -286,7 +280,7 @@ HydraulicBoundaryLocation = hydraulicBoundaryLocation, SurfaceLine = surfaceLine1, StochasticSoilModel = stochasticSoilModel1, - StochasticSoilProfile = stochasticSoilModel1.StochasticSoilProfiles[0] + StochasticSoilProfile = stochasticSoilModel1.StochasticSoilProfiles.ElementAt(0) } }; var calculationWithOutputAndHydraulicBoundaryLocation = new MacroStabilityInwardsCalculationScenario @@ -313,7 +307,7 @@ { SurfaceLine = surfaceLine1, StochasticSoilModel = stochasticSoilModel2, - StochasticSoilProfile = stochasticSoilModel2.StochasticSoilProfiles[0] + StochasticSoilProfile = stochasticSoilModel2.StochasticSoilProfiles.ElementAt(0) } }; @@ -325,7 +319,7 @@ HydraulicBoundaryLocation = hydraulicBoundaryLocation, SurfaceLine = surfaceLine2, StochasticSoilModel = stochasticSoilModel2, - StochasticSoilProfile = stochasticSoilModel2.StochasticSoilProfiles[0] + StochasticSoilProfile = stochasticSoilModel2.StochasticSoilProfiles.ElementAt(0) }, Output = new TestMacroStabilityInwardsOutput(), SemiProbabilisticOutput = new TestMacroStabilityInwardsSemiProbabilisticOutput() @@ -337,7 +331,7 @@ HydraulicBoundaryLocation = hydraulicBoundaryLocation, SurfaceLine = surfaceLine1, StochasticSoilModel = stochasticSoilModel1, - StochasticSoilProfile = stochasticSoilModel1.StochasticSoilProfiles[0] + StochasticSoilProfile = stochasticSoilModel1.StochasticSoilProfiles.ElementAt(0) }, Output = new TestMacroStabilityInwardsOutput(), SemiProbabilisticOutput = new TestMacroStabilityInwardsSemiProbabilisticOutput() @@ -355,7 +349,7 @@ { SurfaceLine = surfaceLine1, StochasticSoilModel = stochasticSoilModel2, - StochasticSoilProfile = stochasticSoilModel2.StochasticSoilProfiles[0] + StochasticSoilProfile = stochasticSoilModel2.StochasticSoilProfiles.ElementAt(0) } }; Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Factories/MacroStabilityInwardsMapDataFeaturesFactoryTest.cs =================================================================== diff -u -rda4a311b2ac60defe1a27a61c8d151f47268a941 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Factories/MacroStabilityInwardsMapDataFeaturesFactoryTest.cs (.../MacroStabilityInwardsMapDataFeaturesFactoryTest.cs) (revision da4a311b2ac60defe1a27a61c8d151f47268a941) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Factories/MacroStabilityInwardsMapDataFeaturesFactoryTest.cs (.../MacroStabilityInwardsMapDataFeaturesFactoryTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -130,8 +130,8 @@ }; var stochasticSoilModels = new[] { - new MacroStabilityInwardsStochasticSoilModel("StochasticSoilModelName1", pointsOne), - new MacroStabilityInwardsStochasticSoilModel("StochasticSoilModelName2", pointsTwo) + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("StochasticSoilModelName1", pointsOne), + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("StochasticSoilModelName2", pointsTwo) }; // Call Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/MacroStabilityInwardsCalculationConfigurationHelperTest.cs =================================================================== diff -u -rda4a311b2ac60defe1a27a61c8d151f47268a941 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/MacroStabilityInwardsCalculationConfigurationHelperTest.cs (.../MacroStabilityInwardsCalculationConfigurationHelperTest.cs) (revision da4a311b2ac60defe1a27a61c8d151f47268a941) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/MacroStabilityInwardsCalculationConfigurationHelperTest.cs (.../MacroStabilityInwardsCalculationConfigurationHelperTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -59,13 +59,12 @@ { new Point2D(1.0, 0.0), new Point2D(5.0, 0.0) - }); - - soilModel.StochasticSoilProfiles.AddRange(new[] + }, new[] { soilProfile1, soilProfile2 }); + MacroStabilityInwardsStochasticSoilModel[] availableSoilModels = { soilModel @@ -113,12 +112,12 @@ { new Point2D(1.0, 0.0), new Point2D(5.0, 0.0) - }); - soilModel.StochasticSoilProfiles.AddRange(new[] + }, new[] { new MacroStabilityInwardsStochasticSoilProfile(0.3, soilProfile1), new MacroStabilityInwardsStochasticSoilProfile(0.7, soilProfile2) }); + MacroStabilityInwardsStochasticSoilModel[] availableSoilModels = { soilModel @@ -162,7 +161,7 @@ { new Point2D(1.0, 0.0), new Point2D(5.0, 0.0) - }); + }, Enumerable.Empty()); var availableSoilModels = new[] { @@ -207,12 +206,12 @@ { new Point2D(1.0, 0.0), new Point2D(5.0, 0.0) - }); - soilModel.StochasticSoilProfiles.AddRange(new[] + }, new[] { new MacroStabilityInwardsStochasticSoilProfile(0.3, soilProfile1), new MacroStabilityInwardsStochasticSoilProfile(0.7, soilProfile2) }); + MacroStabilityInwardsStochasticSoilModel[] availableSoilModels = { soilModel @@ -237,41 +236,38 @@ public void GetStochasticSoilModelsForSurfaceLine_SurfaceLineOverlappingSoilModels_ReturnSoilModels() { // Setup + const double y = 1.1; + var soilProfile1 = new MacroStabilityInwardsStochasticSoilProfile(1.0, new MacroStabilityInwardsSoilProfile1D("Profile 1", -10.0, new[] { new MacroStabilityInwardsSoilLayer1D(-5.0), new MacroStabilityInwardsSoilLayer1D(-2.0), new MacroStabilityInwardsSoilLayer1D(1.0) })); - var soilProfile2 = new MacroStabilityInwardsStochasticSoilProfile(1.0, new MacroStabilityInwardsSoilProfile1D("Profile 2", -8.0, new[] - { - new MacroStabilityInwardsSoilLayer1D(-4.0), - new MacroStabilityInwardsSoilLayer1D(0.0), - new MacroStabilityInwardsSoilLayer1D(4.0) - })); - - const double y = 1.1; var soilModel1 = new MacroStabilityInwardsStochasticSoilModel("A", new[] { new Point2D(1.0, y), new Point2D(2.0, y) - }); - - soilModel1.StochasticSoilProfiles.AddRange(new[] + }, new[] { soilProfile1 }); + var soilProfile2 = new MacroStabilityInwardsStochasticSoilProfile(1.0, new MacroStabilityInwardsSoilProfile1D("Profile 2", -8.0, new[] + { + new MacroStabilityInwardsSoilLayer1D(-4.0), + new MacroStabilityInwardsSoilLayer1D(0.0), + new MacroStabilityInwardsSoilLayer1D(4.0) + })); var soilModel2 = new MacroStabilityInwardsStochasticSoilModel("A", new[] { new Point2D(3.0, y), new Point2D(4.0, y) - }); - - soilModel2.StochasticSoilProfiles.AddRange(new[] + }, new[] { soilProfile2 }); + var availableSoilModels = new[] { soilModel1, @@ -390,13 +386,12 @@ { new Point2D(1.0, 0.0), new Point2D(5.0, 0.0) - }); - - soilModel.StochasticSoilProfiles.AddRange(new[] + }, new[] { soilProfile1, soilProfile2 }); + var availableSoilModels = new[] { soilModel @@ -451,7 +446,7 @@ { new Point2D(1.0, 0.0), new Point2D(5.0, 0.0) - }); + }, Enumerable.Empty()); var availableSoilModels = new[] { @@ -510,13 +505,12 @@ { new Point2D(1.0, 0.0), new Point2D(5.0, 0.0) - }); - - soilModel.StochasticSoilProfiles.AddRange(new[] + }, new[] { new MacroStabilityInwardsStochasticSoilProfile(0.3, soilProfile1), new MacroStabilityInwardsStochasticSoilProfile(0.7, soilProfile2) }); + MacroStabilityInwardsStochasticSoilModel[] availableSoilModels = { soilModel @@ -558,41 +552,38 @@ public void GenerateCalculationItemsStructure_SurfaceLineOverlappingSoilModel_ReturnOneGroupWithProfilesFromBothSoilModels() { // Setup + const double y = 1.1; + var soilProfile1 = new MacroStabilityInwardsStochasticSoilProfile(1.0, new MacroStabilityInwardsSoilProfile1D("Profile 1", -10.0, new[] { new MacroStabilityInwardsSoilLayer1D(-5.0), new MacroStabilityInwardsSoilLayer1D(-2.0), new MacroStabilityInwardsSoilLayer1D(1.0) })); - var soilProfile2 = new MacroStabilityInwardsStochasticSoilProfile(1.0, new MacroStabilityInwardsSoilProfile1D("Profile 2", -8.0, new[] - { - new MacroStabilityInwardsSoilLayer1D(-4.0), - new MacroStabilityInwardsSoilLayer1D(0.0), - new MacroStabilityInwardsSoilLayer1D(4.0) - })); - - const double y = 1.1; var soilModel1 = new MacroStabilityInwardsStochasticSoilModel("A", new[] { new Point2D(1.0, y), new Point2D(2.0, y) - }); - - soilModel1.StochasticSoilProfiles.AddRange(new[] + }, new[] { soilProfile1 }); + var soilProfile2 = new MacroStabilityInwardsStochasticSoilProfile(1.0, new MacroStabilityInwardsSoilProfile1D("Profile 2", -8.0, new[] + { + new MacroStabilityInwardsSoilLayer1D(-4.0), + new MacroStabilityInwardsSoilLayer1D(0.0), + new MacroStabilityInwardsSoilLayer1D(4.0) + })); var soilModel2 = new MacroStabilityInwardsStochasticSoilModel("A", new[] { new Point2D(3.0, y), new Point2D(4.0, y) - }); - - soilModel2.StochasticSoilProfiles.AddRange(new[] + }, new[] { soilProfile2 }); + var availableSoilModels = new[] { soilModel1, @@ -662,9 +653,7 @@ { new Point2D(1.0, y), new Point2D(2.0, y) - }); - - soilModel1.StochasticSoilProfiles.AddRange(new[] + }, new[] { soilProfile1, soilProfile2 @@ -674,12 +663,11 @@ { new Point2D(3.0, y), new Point2D(4.0, y) - }); - - soilModel2.StochasticSoilProfiles.AddRange(new[] + }, new[] { soilProfile2 }); + var availableSoilModels = new[] { soilModel1, @@ -770,9 +758,7 @@ { new Point2D(1.0, y), new Point2D(2.0, y) - }); - - soilModel1.StochasticSoilProfiles.AddRange(new[] + }, new[] { soilProfile1, soilProfile2 @@ -782,12 +768,11 @@ { new Point2D(3.0, y), new Point2D(4.0, y) - }); - - soilModel2.StochasticSoilProfiles.AddRange(new[] + }, new[] { soilProfile2 }); + var availableSoilModels = new[] { soilModel1, @@ -871,13 +856,12 @@ { new Point2D(1.0, 0.0), new Point2D(5.0, 0.0) - }); - - soilModel.StochasticSoilProfiles.AddRange(new[] + }, new[] { new MacroStabilityInwardsStochasticSoilProfile(0.3, soilProfile1), new MacroStabilityInwardsStochasticSoilProfile(0.7, soilProfile2) }); + var availableSoilModels = new[] { soilModel @@ -938,14 +922,13 @@ { new Point2D(1.0, 0.0), new Point2D(5.0, 0.0) - }); - - soilModel.StochasticSoilProfiles.AddRange(new[] + }, new[] { new MacroStabilityInwardsStochasticSoilProfile(0.3, soilProfile1), new MacroStabilityInwardsStochasticSoilProfile(0.2, soilProfile2), new MacroStabilityInwardsStochasticSoilProfile(0.5, soilProfile3) }); + var availableSoilModels = new[] { soilModel Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/PropertyClasses/MacroStabilityInwardsInputContextPropertiesTest.cs =================================================================== diff -u -ra20f5008f39cfa4fd6f94572fd07a011f76609f4 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/PropertyClasses/MacroStabilityInwardsInputContextPropertiesTest.cs (.../MacroStabilityInwardsInputContextPropertiesTest.cs) (revision a20f5008f39cfa4fd6f94572fd07a011f76609f4) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/PropertyClasses/MacroStabilityInwardsInputContextPropertiesTest.cs (.../MacroStabilityInwardsInputContextPropertiesTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -860,8 +860,10 @@ MacroStabilityInwardsSoilProfile1D soilProfile = MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D(); var stochasticSoilProfile = new MacroStabilityInwardsStochasticSoilProfile(0.0, soilProfile); MacroStabilityInwardsStochasticSoilModel stochasticSoilModel = - MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("StochasticSoilModelName"); - stochasticSoilModel.StochasticSoilProfiles.Add(stochasticSoilProfile); + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("StochasticSoilModelName", new[] + { + stochasticSoilProfile + }); var calculationItem = new MacroStabilityInwardsCalculationScenario { @@ -1087,38 +1089,29 @@ { new Point2D(2, -1), new Point2D(2, 1) - }) + }, new[] { - StochasticSoilProfiles = - { - new MacroStabilityInwardsStochasticSoilProfile( - 0.2, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) - } - }, + new MacroStabilityInwardsStochasticSoilProfile( + 0.2, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) + }), new MacroStabilityInwardsStochasticSoilModel("C", new[] { new Point2D(-2, -1), new Point2D(-2, 1) - }) + }, new[] { - StochasticSoilProfiles = - { - new MacroStabilityInwardsStochasticSoilProfile( - 0.3, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) - } - }, + new MacroStabilityInwardsStochasticSoilProfile( + 0.3, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) + }), new MacroStabilityInwardsStochasticSoilModel("E", new[] { new Point2D(6, -1), new Point2D(6, 1) - }) + }, new[] { - StochasticSoilProfiles = - { - new MacroStabilityInwardsStochasticSoilProfile( - 0.3, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) - } - } + new MacroStabilityInwardsStochasticSoilProfile( + 0.3, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) + }) }; failureMechanism.StochasticSoilModels.AddRange(soilModels, "path"); var calculation = new MacroStabilityInwardsCalculationScenario @@ -1186,10 +1179,10 @@ var failureMechanism = new MacroStabilityInwardsFailureMechanism(); MacroStabilityInwardsStochasticSoilModel model = - MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("A"); - model.StochasticSoilProfiles.Add(new MacroStabilityInwardsStochasticSoilProfile( - 1.0, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) - ); + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("A", new[] + { + new MacroStabilityInwardsStochasticSoilProfile(1.0, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) + }); var calculation = new MacroStabilityInwardsCalculationScenario { @@ -1620,13 +1613,15 @@ private static MacroStabilityInwardsStochasticSoilModel ValidStochasticSoilModel(double xMin, double xMax) { + MacroStabilityInwardsSoilProfile1D soilProfile = MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D(); var stochasticSoilModel = new MacroStabilityInwardsStochasticSoilModel("StochasticSoilModelName", new[] { new Point2D(xMin, 1.0), new Point2D(xMax, 0.0) + }, new[] + { + new MacroStabilityInwardsStochasticSoilProfile(0.0, soilProfile) }); - MacroStabilityInwardsSoilProfile1D soilProfile = MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D(); - stochasticSoilModel.StochasticSoilProfiles.Add(new MacroStabilityInwardsStochasticSoilProfile(0.0, soilProfile)); return stochasticSoilModel; } Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/PropertyClasses/MacroStabilityInwardsStochasticSoilModelPropertiesTest.cs =================================================================== diff -u -ra20f5008f39cfa4fd6f94572fd07a011f76609f4 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/PropertyClasses/MacroStabilityInwardsStochasticSoilModelPropertiesTest.cs (.../MacroStabilityInwardsStochasticSoilModelPropertiesTest.cs) (revision a20f5008f39cfa4fd6f94572fd07a011f76609f4) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/PropertyClasses/MacroStabilityInwardsStochasticSoilModelPropertiesTest.cs (.../MacroStabilityInwardsStochasticSoilModelPropertiesTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -74,17 +74,18 @@ public void GetProperties_WithData_ReturnExpectedValues() { // Setup - var stochasticSoilModel = new MacroStabilityInwardsStochasticSoilModel("name", new[] - { - new Point2D(1.0, 2.0) - }); - var soilProfile = new MacroStabilityInwardsSoilProfile1D("MacroStabilityInwardsSoilProfile", 0, new List { new MacroStabilityInwardsSoilLayer1D(10) }); var stochasticSoilProfile = new MacroStabilityInwardsStochasticSoilProfile(1.0, soilProfile); - stochasticSoilModel.StochasticSoilProfiles.Add(stochasticSoilProfile); + var stochasticSoilModel = new MacroStabilityInwardsStochasticSoilModel("name", new[] + { + new Point2D(1.0, 2.0) + }, new[] + { + stochasticSoilProfile + }); // Call var properties = new MacroStabilityInwardsStochasticSoilModelProperties(stochasticSoilModel); Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/UITypeEditors/MacroStabilityInwardsInputContextStochasticSoilModelSelectionEditorTest.cs =================================================================== diff -u -r3c535420f957462c1d525a532dad033434bf2ab7 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/UITypeEditors/MacroStabilityInwardsInputContextStochasticSoilModelSelectionEditorTest.cs (.../MacroStabilityInwardsInputContextStochasticSoilModelSelectionEditorTest.cs) (revision 3c535420f957462c1d525a532dad033434bf2ab7) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/UITypeEditors/MacroStabilityInwardsInputContextStochasticSoilModelSelectionEditorTest.cs (.../MacroStabilityInwardsInputContextStochasticSoilModelSelectionEditorTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -109,13 +109,11 @@ { new Point2D(0, 2), new Point2D(4, 2) - }) + }, new[] { - StochasticSoilProfiles = - { - stochasticSoilProfile - } - }; + stochasticSoilProfile + }); + var surfaceLine = new MacroStabilityInwardsSurfaceLine(string.Empty); surfaceLine.SetGeometry(new[] { Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/UITypeEditors/MacroStabilityInwardsInputContextStochasticSoilProfileSelectionEditorTest.cs =================================================================== diff -u -r3c535420f957462c1d525a532dad033434bf2ab7 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/UITypeEditors/MacroStabilityInwardsInputContextStochasticSoilProfileSelectionEditorTest.cs (.../MacroStabilityInwardsInputContextStochasticSoilProfileSelectionEditorTest.cs) (revision 3c535420f957462c1d525a532dad033434bf2ab7) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/UITypeEditors/MacroStabilityInwardsInputContextStochasticSoilProfileSelectionEditorTest.cs (.../MacroStabilityInwardsInputContextStochasticSoilProfileSelectionEditorTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -110,13 +110,11 @@ { new Point2D(0, 2), new Point2D(4, 2) - }) + }, new[] { - StochasticSoilProfiles = - { - stochasticSoilProfile - } - }; + stochasticSoilProfile + }); + var surfaceLine = new MacroStabilityInwardsSurfaceLine(string.Empty); surfaceLine.SetGeometry(new[] { Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsCalculationsViewTest.cs =================================================================== diff -u -r3c535420f957462c1d525a532dad033434bf2ab7 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsCalculationsViewTest.cs (.../MacroStabilityInwardsCalculationsViewTest.cs) (revision 3c535420f957462c1d525a532dad033434bf2ab7) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsCalculationsViewTest.cs (.../MacroStabilityInwardsCalculationsViewTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -1410,19 +1410,16 @@ { new Point2D(0.0, 0.0), new Point2D(5.0, 0.0) - }) + }, new[] { - StochasticSoilProfiles = + stochasticSoilProfile1, + new MacroStabilityInwardsStochasticSoilProfile(0.7, new MacroStabilityInwardsSoilProfile1D("Profile 2", -8.0, new[] { - stochasticSoilProfile1, - new MacroStabilityInwardsStochasticSoilProfile(0.7, new MacroStabilityInwardsSoilProfile1D("Profile 2", -8.0, new[] - { - new MacroStabilityInwardsSoilLayer1D(-4.0), - new MacroStabilityInwardsSoilLayer1D(0.0), - new MacroStabilityInwardsSoilLayer1D(4.0) - })) - } - }; + new MacroStabilityInwardsSoilLayer1D(-4.0), + new MacroStabilityInwardsSoilLayer1D(0.0), + new MacroStabilityInwardsSoilLayer1D(4.0) + })) + }); var stochasticSoilProfile5 = new MacroStabilityInwardsStochasticSoilProfile(0.3, new MacroStabilityInwardsSoilProfile1D("Profile 5", -10.0, new[] { @@ -1435,13 +1432,10 @@ { new Point2D(1.0, 0.0), new Point2D(6.0, 0.0) - }) + }, new[] { - StochasticSoilProfiles = - { - stochasticSoilProfile5 - } - }; + stochasticSoilProfile5 + }); failureMechanism.StochasticSoilModels.AddRange(new[] { @@ -1450,24 +1444,21 @@ { new Point2D(1.0, 0.0), new Point2D(4.0, 0.0) - }) + }, new[] { - StochasticSoilProfiles = + new MacroStabilityInwardsStochasticSoilProfile(0.3, new MacroStabilityInwardsSoilProfile1D("Profile 3", -10.0, new[] { - new MacroStabilityInwardsStochasticSoilProfile(0.3, new MacroStabilityInwardsSoilProfile1D("Profile 3", -10.0, new[] - { - new MacroStabilityInwardsSoilLayer1D(-5.0), - new MacroStabilityInwardsSoilLayer1D(-2.0), - new MacroStabilityInwardsSoilLayer1D(1.0) - })), - new MacroStabilityInwardsStochasticSoilProfile(0.7, new MacroStabilityInwardsSoilProfile1D("Profile 4", -8.0, new[] - { - new MacroStabilityInwardsSoilLayer1D(-4.0), - new MacroStabilityInwardsSoilLayer1D(0.0), - new MacroStabilityInwardsSoilLayer1D(4.0) - })) - } - }, + new MacroStabilityInwardsSoilLayer1D(-5.0), + new MacroStabilityInwardsSoilLayer1D(-2.0), + new MacroStabilityInwardsSoilLayer1D(1.0) + })), + new MacroStabilityInwardsStochasticSoilProfile(0.7, new MacroStabilityInwardsSoilProfile1D("Profile 4", -8.0, new[] + { + new MacroStabilityInwardsSoilLayer1D(-4.0), + new MacroStabilityInwardsSoilLayer1D(0.0), + new MacroStabilityInwardsSoilLayer1D(4.0) + })) + }), stochasticSoilModelE }, arbitraryFilePath); return failureMechanism; Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsFailureMechanismViewTest.cs =================================================================== diff -u -rda4a311b2ac60defe1a27a61c8d151f47268a941 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsFailureMechanismViewTest.cs (.../MacroStabilityInwardsFailureMechanismViewTest.cs) (revision da4a311b2ac60defe1a27a61c8d151f47268a941) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsFailureMechanismViewTest.cs (.../MacroStabilityInwardsFailureMechanismViewTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -255,17 +255,19 @@ ReferenceLine = referenceLine }; - var stochasticSoilModel1 = new MacroStabilityInwardsStochasticSoilModel("name1", new[] - { - new Point2D(1.0, 2.0), - new Point2D(1.1, 2.2) - }); + MacroStabilityInwardsStochasticSoilModel stochasticSoilModel1 = + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("name1", new[] + { + new Point2D(1.0, 2.0), + new Point2D(1.1, 2.2) + }); - var stochasticSoilModel2 = new MacroStabilityInwardsStochasticSoilModel("name2", new[] - { - new Point2D(3.0, 4.0), - new Point2D(3.3, 4.4) - }); + MacroStabilityInwardsStochasticSoilModel stochasticSoilModel2 = + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("name2", new[] + { + new Point2D(3.0, 4.0), + new Point2D(3.3, 4.4) + }); var surfaceLineA = new MacroStabilityInwardsSurfaceLine("Line A"); surfaceLineA.SetGeometry(new[] @@ -678,11 +680,12 @@ var failureMechanism = new MacroStabilityInwardsFailureMechanism(); var failureMechanismContext = new MacroStabilityInwardsFailureMechanismContext(failureMechanism, new ObservableTestAssessmentSectionStub()); - var stochasticSoilModel = new MacroStabilityInwardsStochasticSoilModel("", new[] - { - new Point2D(1, 2), - new Point2D(1, 2) - }); + MacroStabilityInwardsStochasticSoilModel stochasticSoilModel = + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("", new[] + { + new Point2D(1, 2), + new Point2D(1, 2) + }); view.Data = failureMechanismContext; Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/Configurations/MacroStabilityInwardsCalculationConfigurationImporterTest.cs =================================================================== diff -u -rda4a311b2ac60defe1a27a61c8d151f47268a941 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/Configurations/MacroStabilityInwardsCalculationConfigurationImporterTest.cs (.../MacroStabilityInwardsCalculationConfigurationImporterTest.cs) (revision da4a311b2ac60defe1a27a61c8d151f47268a941) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/Configurations/MacroStabilityInwardsCalculationConfigurationImporterTest.cs (.../MacroStabilityInwardsCalculationConfigurationImporterTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -32,6 +32,7 @@ using Ringtoets.Common.IO.Configurations.Import; using Ringtoets.MacroStabilityInwards.Data; using Ringtoets.MacroStabilityInwards.Data.SoilProfile; +using Ringtoets.MacroStabilityInwards.Data.TestUtil; using Ringtoets.MacroStabilityInwards.IO.Configurations; using Ringtoets.MacroStabilityInwards.Primitives; @@ -171,11 +172,12 @@ new Point3D(2.5, 1.0, 1.0), new Point3D(5.0, 1.0, 0.0) }); - var stochasticSoilModel = new MacroStabilityInwardsStochasticSoilModel("Ondergrondmodel", new[] - { - new Point2D(1.0, 0.0), - new Point2D(5.0, 0.0) - }); + MacroStabilityInwardsStochasticSoilModel stochasticSoilModel = + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("Ondergrondmodel", new[] + { + new Point2D(1.0, 0.0), + new Point2D(5.0, 0.0) + }); var failureMechanism = new MacroStabilityInwardsFailureMechanism(); failureMechanism.SurfaceLines.AddRange(new[] @@ -217,11 +219,12 @@ new Point3D(3.0, 0.0, 1.0), new Point3D(3.0, -5.0, 0.0) }); - var stochasticSoilModel = new MacroStabilityInwardsStochasticSoilModel("Ondergrondmodel", new[] - { - new Point2D(1.0, 0.0), - new Point2D(5.0, 0.0) - }); + MacroStabilityInwardsStochasticSoilModel stochasticSoilModel = + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("Ondergrondmodel", new[] + { + new Point2D(1.0, 0.0), + new Point2D(5.0, 0.0) + }); var failureMechanism = new MacroStabilityInwardsFailureMechanism(); failureMechanism.SurfaceLines.AddRange(new[] @@ -387,8 +390,10 @@ { new Point2D(1.0, 0.0), new Point2D(5.0, 0.0) + }, new[] + { + stochasticSoilProfile }); - stochasticSoilModel.StochasticSoilProfiles.Add(stochasticSoilProfile); var failureMechanism = new MacroStabilityInwardsFailureMechanism(); failureMechanism.SurfaceLines.AddRange(new[] Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/SoilProfiles/MacroStabilityInwardsStochasticSoilModelTransformerTest.cs =================================================================== diff -u -r30baf70ea42def18e66d1ec3c71aa0e54a89229a -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/SoilProfiles/MacroStabilityInwardsStochasticSoilModelTransformerTest.cs (.../MacroStabilityInwardsStochasticSoilModelTransformerTest.cs) (revision 30baf70ea42def18e66d1ec3c71aa0e54a89229a) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/SoilProfiles/MacroStabilityInwardsStochasticSoilModelTransformerTest.cs (.../MacroStabilityInwardsStochasticSoilModelTransformerTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -124,7 +124,7 @@ // Assert Assert.AreEqual(soilModel.Name, transformedModel.Name); CollectionAssert.AreEqual(soilModel.Geometry, transformedModel.Geometry); - Assert.AreEqual(1, transformedModel.StochasticSoilProfiles.Count); + Assert.AreEqual(1, transformedModel.StochasticSoilProfiles.Count()); var expectedStochasticSoilProfile = new MacroStabilityInwardsStochasticSoilProfile(probability, new MacroStabilityInwardsSoilProfile1D("test", 3, new[] { @@ -164,7 +164,7 @@ // Assert Assert.AreEqual(soilModel.Name, transformedModel.Name); CollectionAssert.AreEqual(soilModel.Geometry, transformedModel.Geometry); - Assert.AreEqual(1, transformedModel.StochasticSoilProfiles.Count); + Assert.AreEqual(1, transformedModel.StochasticSoilProfiles.Count()); var expectedStochasticSoilProfile = new MacroStabilityInwardsStochasticSoilProfile(probability, new MacroStabilityInwardsSoilProfile2D("test", new[] { @@ -220,10 +220,10 @@ MacroStabilityInwardsStochasticSoilModel transformedModel2 = transformer.Transform(soilModel2); // Assert - List transformedStochasticSoilProfiles1 = transformedModel1.StochasticSoilProfiles; - List transformedStochasticSoilProfiles2 = transformedModel2.StochasticSoilProfiles; - Assert.AreEqual(1, transformedStochasticSoilProfiles1.Count); - Assert.AreEqual(1, transformedStochasticSoilProfiles2.Count); + MacroStabilityInwardsStochasticSoilProfile[] transformedStochasticSoilProfiles1 = transformedModel1.StochasticSoilProfiles.ToArray(); + MacroStabilityInwardsStochasticSoilProfile[] transformedStochasticSoilProfiles2 = transformedModel2.StochasticSoilProfiles.ToArray(); + Assert.AreEqual(1, transformedStochasticSoilProfiles1.Length); + Assert.AreEqual(1, transformedStochasticSoilProfiles2.Length); MacroStabilityInwardsStochasticSoilProfile stochasticSoilProfile1 = transformedStochasticSoilProfiles1[0]; MacroStabilityInwardsStochasticSoilProfile stochasticSoilProfile2 = transformedStochasticSoilProfiles2[0]; @@ -257,8 +257,8 @@ "Kansen van voorkomen worden opgeteld."; TestHelper.AssertLogMessageWithLevelIsGenerated(call, Tuple.Create(expectedMessage, LogLevelConstant.Warn)); - List transformedStochasticSoilProfiles = transformed.StochasticSoilProfiles; - Assert.AreEqual(1, transformedStochasticSoilProfiles.Count); + MacroStabilityInwardsStochasticSoilProfile[] transformedStochasticSoilProfiles = transformed.StochasticSoilProfiles.ToArray(); + Assert.AreEqual(1, transformedStochasticSoilProfiles.Length); const double expectedProbability = originalProfileOneProbability + originalProfileTwoProbability; Assert.AreEqual(expectedProbability, transformedStochasticSoilProfiles[0].Probability, 1e-6); } @@ -354,8 +354,8 @@ MacroStabilityInwardsStochasticSoilModel transformed = transformer.Transform(soilModel); // Assert - List transformedStochasticSoilProfiles = transformed.StochasticSoilProfiles; - Assert.AreEqual(2, transformedStochasticSoilProfiles.Count); + MacroStabilityInwardsStochasticSoilProfile[] transformedStochasticSoilProfiles = transformed.StochasticSoilProfiles.ToArray(); + Assert.AreEqual(2, transformedStochasticSoilProfiles.Length); Assert.AreEqual(stochasticSoilProfile2D.Probability, transformedStochasticSoilProfiles[0].Probability, 1e-6); Assert.AreEqual(stochasticSoilProfile1D.Probability, transformedStochasticSoilProfiles[1].Probability, 1e-6); } Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Integration.Test/MacroStabilityInwardsCalculationsViewIntegrationTest.cs =================================================================== diff -u -rd619624819b7200ac55b357b0a0c54d198fc20e4 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Integration.Test/MacroStabilityInwardsCalculationsViewIntegrationTest.cs (.../MacroStabilityInwardsCalculationsViewIntegrationTest.cs) (revision d619624819b7200ac55b357b0a0c54d198fc20e4) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Integration.Test/MacroStabilityInwardsCalculationsViewIntegrationTest.cs (.../MacroStabilityInwardsCalculationsViewIntegrationTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -143,7 +143,7 @@ listBox.SelectedItem = assessmentSection.MacroStabilityInwards.Sections.First(s => s.Name == "6-3_22"); calculation1.InputParameters.StochasticSoilModel = stochasticSoilModelCollection[0]; - calculation1.InputParameters.StochasticSoilProfile = stochasticSoilModelCollection[0].StochasticSoilProfiles[0]; + calculation1.InputParameters.StochasticSoilProfile = stochasticSoilModelCollection[0].StochasticSoilProfiles.First(); calculation1.InputParameters.NotifyObservers(); Assert.AreEqual("PK001_0001_Stability", dataGridView.Rows[0].Cells[stochasticSoilModelsColumnIndex].FormattedValue); Assert.AreEqual("W1-6_0_1D1", dataGridView.Rows[0].Cells[stochasticSoilProfilesColumnIndex].FormattedValue); @@ -152,7 +152,7 @@ listBox.SelectedItem = assessmentSection.MacroStabilityInwards.Sections.First(s => s.Name == "6-3_19"); calculation2.InputParameters.SurfaceLine = assessmentSection.MacroStabilityInwards.SurfaceLines.First(sl => sl.Name == "PK001_0002"); calculation2.InputParameters.StochasticSoilModel = stochasticSoilModelCollection[1]; - calculation2.InputParameters.StochasticSoilProfile = stochasticSoilModelCollection[1].StochasticSoilProfiles[0]; + calculation2.InputParameters.StochasticSoilProfile = stochasticSoilModelCollection[1].StochasticSoilProfiles.First(); calculation2.InputParameters.NotifyObservers(); Assert.AreEqual("PK001_0002_Stability", dataGridView.Rows[0].Cells[stochasticSoilModelsColumnIndex].FormattedValue); Assert.AreEqual("W1-6_4_1D1", dataGridView.Rows[0].Cells[stochasticSoilProfilesColumnIndex].FormattedValue); @@ -161,7 +161,7 @@ listBox.SelectedItem = assessmentSection.MacroStabilityInwards.Sections.First(s => s.Name == "6-3_16"); calculation3.InputParameters.SurfaceLine = assessmentSection.MacroStabilityInwards.SurfaceLines.First(sl => sl.Name == "PK001_0003"); calculation3.InputParameters.StochasticSoilModel = stochasticSoilModelCollection[2]; - calculation3.InputParameters.StochasticSoilProfile = stochasticSoilModelCollection[2].StochasticSoilProfiles[0]; + calculation3.InputParameters.StochasticSoilProfile = stochasticSoilModelCollection[2].StochasticSoilProfiles.First(); calculation3.InputParameters.NotifyObservers(); Assert.AreEqual("PK001_0003_Stability", dataGridView.Rows[0].Cells[stochasticSoilModelsColumnIndex].FormattedValue); Assert.AreEqual("W1-7_0_1D1", dataGridView.Rows[0].Cells[stochasticSoilProfilesColumnIndex].FormattedValue); @@ -170,7 +170,7 @@ listBox.SelectedItem = assessmentSection.MacroStabilityInwards.Sections.First(s => s.Name == "6-3_8"); calculation4.InputParameters.SurfaceLine = assessmentSection.MacroStabilityInwards.SurfaceLines.First(sl => sl.Name == "PK001_0004"); calculation4.InputParameters.StochasticSoilModel = stochasticSoilModelCollection[3]; - calculation4.InputParameters.StochasticSoilProfile = stochasticSoilModelCollection[3].StochasticSoilProfiles[0]; + calculation4.InputParameters.StochasticSoilProfile = stochasticSoilModelCollection[3].StochasticSoilProfiles.First(); calculation4.InputParameters.NotifyObservers(); Assert.AreEqual("PK001_0004_Stability", dataGridView.Rows[0].Cells[stochasticSoilModelsColumnIndex].FormattedValue); Assert.AreEqual("W1-8_6_1D1", dataGridView.Rows[0].Cells[stochasticSoilProfilesColumnIndex].FormattedValue); Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Plugin.Test/FileImporter/MacroStabilityInwardsStochasticSoilModelReplaceDataStrategyTest.cs =================================================================== diff -u -r3c535420f957462c1d525a532dad033434bf2ab7 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Plugin.Test/FileImporter/MacroStabilityInwardsStochasticSoilModelReplaceDataStrategyTest.cs (.../MacroStabilityInwardsStochasticSoilModelReplaceDataStrategyTest.cs) (revision 3c535420f957462c1d525a532dad033434bf2ab7) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Plugin.Test/FileImporter/MacroStabilityInwardsStochasticSoilModelReplaceDataStrategyTest.cs (.../MacroStabilityInwardsStochasticSoilModelReplaceDataStrategyTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -173,7 +173,7 @@ MacroStabilityInwardsStochasticSoilModel existingModel = MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(); var calculation = new MacroStabilityInwardsCalculationScenario(); calculation.InputParameters.StochasticSoilModel = existingModel; - calculation.InputParameters.StochasticSoilProfile = existingModel.StochasticSoilProfiles[0]; + calculation.InputParameters.StochasticSoilProfile = existingModel.StochasticSoilProfiles.ElementAt(0); calculation.Output = new TestMacroStabilityInwardsOutput(); var failureMechanism = new MacroStabilityInwardsFailureMechanism(); Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Plugin.Test/FileImporter/MacroStabilityInwardsStochasticSoilModelUpdateDataStrategyTest.cs =================================================================== diff -u -r3c535420f957462c1d525a532dad033434bf2ab7 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Plugin.Test/FileImporter/MacroStabilityInwardsStochasticSoilModelUpdateDataStrategyTest.cs (.../MacroStabilityInwardsStochasticSoilModelUpdateDataStrategyTest.cs) (revision 3c535420f957462c1d525a532dad033434bf2ab7) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Plugin.Test/FileImporter/MacroStabilityInwardsStochasticSoilModelUpdateDataStrategyTest.cs (.../MacroStabilityInwardsStochasticSoilModelUpdateDataStrategyTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -248,7 +248,7 @@ // Assert Assert.AreEqual(1, targetCollection.Count); Assert.AreSame(existingModel, targetCollection[0]); - Assert.AreEqual(2, targetCollection[0].StochasticSoilProfiles.Count); + Assert.AreEqual(existingModel.StochasticSoilProfiles.Count(), targetCollection[0].StochasticSoilProfiles.Count()); CollectionAssert.AreEquivalent(new IObservable[] { targetCollection, @@ -261,7 +261,9 @@ { // Setup const string modelsName = "same model"; - MacroStabilityInwardsStochasticSoilModel existingModel = MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(modelsName); + MacroStabilityInwardsStochasticSoilModel existingModel = + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(modelsName, + CreateStochasticSoilProfiles()); var failureMechanism = new MacroStabilityInwardsFailureMechanism(); MacroStabilityInwardsStochasticSoilModelCollection targetCollection = failureMechanism.StochasticSoilModels; @@ -270,17 +272,17 @@ existingModel }, sourceFilePath); - MacroStabilityInwardsStochasticSoilProfile firstExistingProfile = existingModel.StochasticSoilProfiles[0]; + MacroStabilityInwardsStochasticSoilProfile firstExistingProfile = existingModel.StochasticSoilProfiles.ElementAt(0); MacroStabilityInwardsStochasticSoilModel readModel = CreateSimpleModel(modelsName, firstExistingProfile.SoilProfile.Name); var calculationWithNotUpdatedProfile = new MacroStabilityInwardsCalculationScenario(); calculationWithNotUpdatedProfile.InputParameters.StochasticSoilModel = existingModel; - calculationWithNotUpdatedProfile.InputParameters.StochasticSoilProfile = existingModel.StochasticSoilProfiles[0]; + calculationWithNotUpdatedProfile.InputParameters.StochasticSoilProfile = existingModel.StochasticSoilProfiles.ElementAt(0); calculationWithNotUpdatedProfile.Output = new TestMacroStabilityInwardsOutput(); var calculationWithDeletedProfile = new MacroStabilityInwardsCalculationScenario(); calculationWithDeletedProfile.InputParameters.StochasticSoilModel = existingModel; - calculationWithDeletedProfile.InputParameters.StochasticSoilProfile = existingModel.StochasticSoilProfiles[1]; + calculationWithDeletedProfile.InputParameters.StochasticSoilProfile = existingModel.StochasticSoilProfiles.ElementAt(1); calculationWithDeletedProfile.Output = new TestMacroStabilityInwardsOutput(); failureMechanism.CalculationsGroup.Children.Add(calculationWithDeletedProfile); @@ -297,8 +299,8 @@ // Assert MacroStabilityInwardsStochasticSoilModel firstSoilModel = targetCollection[0]; Assert.AreSame(existingModel, firstSoilModel); - Assert.AreEqual(1, firstSoilModel.StochasticSoilProfiles.Count); - Assert.AreSame(firstExistingProfile, firstSoilModel.StochasticSoilProfiles[0]); + Assert.AreEqual(1, firstSoilModel.StochasticSoilProfiles.Count()); + Assert.AreSame(firstExistingProfile, firstSoilModel.StochasticSoilProfiles.ElementAt(0)); Assert.IsTrue(calculationWithNotUpdatedProfile.HasOutput); CollectionAssert.DoesNotContain(affectedObjects, calculationWithNotUpdatedProfile); @@ -315,7 +317,8 @@ { // Setup const string modelsName = "same model"; - MacroStabilityInwardsStochasticSoilModel existingModel = CreateStochasticSoilModel(modelsName); + MacroStabilityInwardsStochasticSoilModel existingModel = + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(modelsName, CreateStochasticSoilProfiles()); var failureMechanism = new MacroStabilityInwardsFailureMechanism(); MacroStabilityInwardsStochasticSoilModelCollection targetCollection = failureMechanism.StochasticSoilModels; @@ -324,18 +327,20 @@ existingModel }, sourceFilePath); - MacroStabilityInwardsStochasticSoilModel readModel = CreateStochasticSoilModel(modelsName); - MacroStabilityInwardsStochasticSoilProfile changedProfile = CloneAndSlightlyModify1DProfile(readModel.StochasticSoilProfiles.ElementAt(0)); - readModel.StochasticSoilProfiles[0] = changedProfile; + IList readStochasticSoilProfiles = CreateStochasticSoilProfiles(); + MacroStabilityInwardsStochasticSoilProfile changedProfile = CloneAndSlightlyModify1DProfile(readStochasticSoilProfiles[0]); + readStochasticSoilProfiles[0] = changedProfile; + MacroStabilityInwardsStochasticSoilModel readModel = + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(modelsName, readStochasticSoilProfiles); var calculationWithUpdatedProfile = new MacroStabilityInwardsCalculationScenario(); calculationWithUpdatedProfile.InputParameters.StochasticSoilModel = existingModel; - calculationWithUpdatedProfile.InputParameters.StochasticSoilProfile = existingModel.StochasticSoilProfiles[0]; + calculationWithUpdatedProfile.InputParameters.StochasticSoilProfile = existingModel.StochasticSoilProfiles.ElementAt(0); calculationWithUpdatedProfile.Output = new TestMacroStabilityInwardsOutput(); var calculationWithNotUpdatedProfile = new MacroStabilityInwardsCalculationScenario(); calculationWithNotUpdatedProfile.InputParameters.StochasticSoilModel = existingModel; - calculationWithNotUpdatedProfile.InputParameters.StochasticSoilProfile = existingModel.StochasticSoilProfiles[1]; + calculationWithNotUpdatedProfile.InputParameters.StochasticSoilProfile = existingModel.StochasticSoilProfiles.ElementAt(1); calculationWithNotUpdatedProfile.Output = new TestMacroStabilityInwardsOutput(); failureMechanism.CalculationsGroup.Children.Add(calculationWithNotUpdatedProfile); @@ -352,15 +357,17 @@ // Assert MacroStabilityInwardsStochasticSoilModel firstSoilModel = targetCollection[0]; Assert.AreSame(existingModel, firstSoilModel); - Assert.AreEqual(2, firstSoilModel.StochasticSoilProfiles.Count); - Assert.AreSame(existingModel.StochasticSoilProfiles[0], firstSoilModel.StochasticSoilProfiles[0]); - Assert.AreSame(existingModel.StochasticSoilProfiles[1], firstSoilModel.StochasticSoilProfiles[1]); + Assert.AreEqual(2, firstSoilModel.StochasticSoilProfiles.Count()); + MacroStabilityInwardsStochasticSoilProfile updatedStochasticSoilProfile = existingModel.StochasticSoilProfiles.ElementAt(0); + Assert.AreSame(updatedStochasticSoilProfile, firstSoilModel.StochasticSoilProfiles.ElementAt(0)); Assert.IsFalse(calculationWithUpdatedProfile.HasOutput); - Assert.AreSame(existingModel.StochasticSoilProfiles[0], calculationWithUpdatedProfile.InputParameters.StochasticSoilProfile); + Assert.AreSame(updatedStochasticSoilProfile, calculationWithUpdatedProfile.InputParameters.StochasticSoilProfile); + MacroStabilityInwardsStochasticSoilProfile unaffectedStochasticSoilProfile = existingModel.StochasticSoilProfiles.ElementAt(1); + Assert.AreSame(unaffectedStochasticSoilProfile, firstSoilModel.StochasticSoilProfiles.ElementAt(1)); Assert.IsTrue(calculationWithNotUpdatedProfile.HasOutput); - Assert.AreSame(existingModel.StochasticSoilProfiles[1], calculationWithNotUpdatedProfile.InputParameters.StochasticSoilProfile); + Assert.AreSame(unaffectedStochasticSoilProfile, calculationWithNotUpdatedProfile.InputParameters.StochasticSoilProfile); CollectionAssert.AreEquivalent(new IObservable[] { @@ -377,27 +384,32 @@ { // Setup const string modelsName = "same model"; - MacroStabilityInwardsStochasticSoilModel existingModel = CreateStochasticSoilModel(modelsName); + MacroStabilityInwardsStochasticSoilModel model = + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(modelsName, CreateStochasticSoilProfiles()); + MacroStabilityInwardsStochasticSoilModel existingModel = model; + var failureMechanism = new MacroStabilityInwardsFailureMechanism(); MacroStabilityInwardsStochasticSoilModelCollection targetCollection = failureMechanism.StochasticSoilModels; targetCollection.AddRange(new[] { existingModel }, sourceFilePath); - MacroStabilityInwardsStochasticSoilModel readModel = CreateStochasticSoilModel(modelsName); - MacroStabilityInwardsStochasticSoilProfile changedProfile = CloneAndSlightlyModify2DProfile(readModel.StochasticSoilProfiles.ElementAt(1)); - readModel.StochasticSoilProfiles[1] = changedProfile; + IList readStochasticSoilProfiles = CreateStochasticSoilProfiles(); + MacroStabilityInwardsStochasticSoilProfile changedProfile = CloneAndSlightlyModify2DProfile(readStochasticSoilProfiles[1]); + readStochasticSoilProfiles[1] = changedProfile; + MacroStabilityInwardsStochasticSoilModel readModel = + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(modelsName, readStochasticSoilProfiles); var calculationWithNotUpdatedProfile = new MacroStabilityInwardsCalculationScenario(); calculationWithNotUpdatedProfile.InputParameters.StochasticSoilModel = existingModel; - calculationWithNotUpdatedProfile.InputParameters.StochasticSoilProfile = existingModel.StochasticSoilProfiles[0]; + calculationWithNotUpdatedProfile.InputParameters.StochasticSoilProfile = existingModel.StochasticSoilProfiles.ElementAt(0); calculationWithNotUpdatedProfile.Output = new TestMacroStabilityInwardsOutput(); var calculationWithUpdatedProfile = new MacroStabilityInwardsCalculationScenario(); calculationWithUpdatedProfile.InputParameters.StochasticSoilModel = existingModel; - calculationWithUpdatedProfile.InputParameters.StochasticSoilProfile = existingModel.StochasticSoilProfiles[1]; + calculationWithUpdatedProfile.InputParameters.StochasticSoilProfile = existingModel.StochasticSoilProfiles.ElementAt(1); calculationWithUpdatedProfile.Output = new TestMacroStabilityInwardsOutput(); failureMechanism.CalculationsGroup.Children.Add(calculationWithUpdatedProfile); @@ -414,16 +426,18 @@ // Assert MacroStabilityInwardsStochasticSoilModel firstSoilModel = targetCollection[0]; Assert.AreSame(existingModel, firstSoilModel); - Assert.AreEqual(2, firstSoilModel.StochasticSoilProfiles.Count); - Assert.AreSame(existingModel.StochasticSoilProfiles[0], firstSoilModel.StochasticSoilProfiles[0]); - Assert.AreSame(existingModel.StochasticSoilProfiles[1], firstSoilModel.StochasticSoilProfiles[1]); + Assert.AreEqual(2, firstSoilModel.StochasticSoilProfiles.Count()); - Assert.IsFalse(calculationWithUpdatedProfile.HasOutput); - Assert.AreSame(existingModel.StochasticSoilProfiles[1], calculationWithUpdatedProfile.InputParameters.StochasticSoilProfile); - + MacroStabilityInwardsStochasticSoilProfile unaffectedStochasticSoilProfile = existingModel.StochasticSoilProfiles.ElementAt(0); + Assert.AreSame(unaffectedStochasticSoilProfile, firstSoilModel.StochasticSoilProfiles.ElementAt(0)); Assert.IsTrue(calculationWithNotUpdatedProfile.HasOutput); - Assert.AreSame(existingModel.StochasticSoilProfiles[0], calculationWithNotUpdatedProfile.InputParameters.StochasticSoilProfile); + Assert.AreSame(unaffectedStochasticSoilProfile, calculationWithNotUpdatedProfile.InputParameters.StochasticSoilProfile); + MacroStabilityInwardsStochasticSoilProfile updatedStochasticSoilProfile = existingModel.StochasticSoilProfiles.ElementAt(1); + Assert.AreSame(updatedStochasticSoilProfile, firstSoilModel.StochasticSoilProfiles.ElementAt(1)); + Assert.IsFalse(calculationWithUpdatedProfile.HasOutput); + Assert.AreSame(updatedStochasticSoilProfile, calculationWithUpdatedProfile.InputParameters.StochasticSoilProfile); + CollectionAssert.AreEquivalent(new IObservable[] { targetCollection, @@ -441,7 +455,7 @@ MacroStabilityInwardsStochasticSoilModel existingModel = MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(); var calculation = new MacroStabilityInwardsCalculationScenario(); calculation.InputParameters.StochasticSoilModel = existingModel; - calculation.InputParameters.StochasticSoilProfile = existingModel.StochasticSoilProfiles[0]; + calculation.InputParameters.StochasticSoilProfile = existingModel.StochasticSoilProfiles.ElementAt(0); calculation.Output = new TestMacroStabilityInwardsOutput(); var failureMechanism = new MacroStabilityInwardsFailureMechanism(); @@ -474,19 +488,21 @@ { // Setup const string modelsName = "same model"; - MacroStabilityInwardsStochasticSoilModel existingModel = MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(modelsName); + MacroStabilityInwardsStochasticSoilModel existingModel = + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(modelsName, CreateStochasticSoilProfiles()); var failureMechanism = new MacroStabilityInwardsFailureMechanism(); MacroStabilityInwardsStochasticSoilModelCollection targetCollection = failureMechanism.StochasticSoilModels; targetCollection.AddRange(new[] { existingModel }, sourceFilePath); - MacroStabilityInwardsStochasticSoilProfile removedProfile = existingModel.StochasticSoilProfiles[0]; - MacroStabilityInwardsStochasticSoilProfile unaffectedProfile = existingModel.StochasticSoilProfiles[1]; + MacroStabilityInwardsStochasticSoilProfile removedProfile = existingModel.StochasticSoilProfiles.ElementAt(0); + MacroStabilityInwardsStochasticSoilProfile unaffectedProfile = existingModel.StochasticSoilProfiles.ElementAt(1); - MacroStabilityInwardsStochasticSoilModel readModel = MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(modelsName); - readModel.StochasticSoilProfiles.RemoveAt(0); + IList readStochasticSoilProfiles = CreateStochasticSoilProfiles(); + readStochasticSoilProfiles.RemoveAt(0); + MacroStabilityInwardsStochasticSoilModel readModel = MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(modelsName, readStochasticSoilProfiles); var calculationWithRemovedProfile = new MacroStabilityInwardsCalculationScenario(); calculationWithRemovedProfile.InputParameters.StochasticSoilModel = existingModel; @@ -512,8 +528,8 @@ // Assert MacroStabilityInwardsStochasticSoilModel firstSoilModel = targetCollection[0]; Assert.AreSame(existingModel, firstSoilModel); - Assert.AreEqual(1, firstSoilModel.StochasticSoilProfiles.Count); - Assert.AreSame(unaffectedProfile, firstSoilModel.StochasticSoilProfiles[0]); + Assert.AreEqual(1, firstSoilModel.StochasticSoilProfiles.Count()); + Assert.AreSame(unaffectedProfile, firstSoilModel.StochasticSoilProfiles.ElementAt(0)); Assert.IsFalse(calculationWithRemovedProfile.HasOutput); Assert.IsNull(calculationWithRemovedProfile.InputParameters.StochasticSoilProfile); @@ -530,9 +546,14 @@ }, affectedObjects); } - private static MacroStabilityInwardsStochasticSoilModel CreateStochasticSoilModel(string modelsName) + /// + /// Creates a collection of + /// with all the supported . + /// + /// A collection of . + private static IList CreateStochasticSoilProfiles() { - var stochasticSoilProfiles = new[] + return new List { new MacroStabilityInwardsStochasticSoilProfile(0.5, new MacroStabilityInwardsSoilProfile1D( "A", @@ -552,11 +573,6 @@ }), Enumerable.Empty()) }, Enumerable.Empty())) }; - - MacroStabilityInwardsStochasticSoilModel model = - MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(modelsName, stochasticSoilProfiles); - - return model; } /// Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Plugin.Test/FileImporter/MacroStabilityInwardsSurfaceLineUpdateDataStrategyTest.cs =================================================================== diff -u -ra20f5008f39cfa4fd6f94572fd07a011f76609f4 -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Plugin.Test/FileImporter/MacroStabilityInwardsSurfaceLineUpdateDataStrategyTest.cs (.../MacroStabilityInwardsSurfaceLineUpdateDataStrategyTest.cs) (revision a20f5008f39cfa4fd6f94572fd07a011f76609f4) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Plugin.Test/FileImporter/MacroStabilityInwardsSurfaceLineUpdateDataStrategyTest.cs (.../MacroStabilityInwardsSurfaceLineUpdateDataStrategyTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -563,28 +563,16 @@ var soilModels = new[] { - new MacroStabilityInwardsStochasticSoilModel("A", new[] + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("A", new[] { new Point2D(2, -1), new Point2D(2, 1) - }) + }), + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("C", new[] { - StochasticSoilProfiles = - { - new MacroStabilityInwardsStochasticSoilProfile(0.2, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) - } - }, - new MacroStabilityInwardsStochasticSoilModel("C", new[] - { new Point2D(-2, -1), new Point2D(-2, 1) }) - { - StochasticSoilProfiles = - { - new MacroStabilityInwardsStochasticSoilProfile(0.3, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) - } - } }; var failureMechanism = new MacroStabilityInwardsFailureMechanism(); @@ -629,39 +617,21 @@ // Setup var soilModels = new[] { - new MacroStabilityInwardsStochasticSoilModel("A", new[] + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("A", new[] { new Point2D(2, -1), new Point2D(2, 1) - }) + }), + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("C", new[] { - StochasticSoilProfiles = - { - new MacroStabilityInwardsStochasticSoilProfile(0.2, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) - } - }, - new MacroStabilityInwardsStochasticSoilModel("C", new[] - { new Point2D(-2, -1), new Point2D(-2, 1) - }) + }), + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("E", new[] { - StochasticSoilProfiles = - { - new MacroStabilityInwardsStochasticSoilProfile(0.3, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) - } - }, - new MacroStabilityInwardsStochasticSoilModel("E", new[] - { new Point2D(6, -1), new Point2D(6, 1) }) - { - StochasticSoilProfiles = - { - new MacroStabilityInwardsStochasticSoilProfile(0.3, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) - } - } }; MacroStabilityInwardsSurfaceLine surfaceLine = CreateValidSurfaceLineForCalculations(); @@ -718,13 +688,10 @@ { new Point2D(2, -1), new Point2D(2, 1) - }) + }, new[] { - StochasticSoilProfiles = - { - new MacroStabilityInwardsStochasticSoilProfile(0.2, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) - } - }; + new MacroStabilityInwardsStochasticSoilProfile(0.2, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) + }); MacroStabilityInwardsSurfaceLine surfaceLine = CreateValidSurfaceLineForCalculations(); var calculation = new MacroStabilityInwardsCalculation @@ -733,7 +700,7 @@ { SurfaceLine = surfaceLine, StochasticSoilModel = soilModel, - StochasticSoilProfile = soilModel.StochasticSoilProfiles[0] + StochasticSoilProfile = soilModel.StochasticSoilProfiles.ElementAt(0) } }; @@ -763,18 +730,19 @@ }, affectedObjects); Assert.IsNull(calculationInput.SurfaceLine); Assert.AreSame(soilModel, calculationInput.StochasticSoilModel); - Assert.AreSame(soilModel.StochasticSoilProfiles[0], calculationInput.StochasticSoilProfile); + Assert.AreSame(soilModel.StochasticSoilProfiles.ElementAt(0), calculationInput.StochasticSoilProfile); } [Test] public void UpdateSurfaceLinesWithImportedData_WithCalculationAssignedToRemovedLine_UpdatesCalculationAndDoesNotRemoveStochasticSoilModelInput() { // Setup - var soilModel = new MacroStabilityInwardsStochasticSoilModel("A", new[] - { - new Point2D(2, -1), - new Point2D(2, 1) - }); + MacroStabilityInwardsStochasticSoilModel soilModel = + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("A", new[] + { + new Point2D(2, -1), + new Point2D(2, 1) + }); MacroStabilityInwardsSurfaceLine surfaceLine = CreateValidSurfaceLineForCalculations(); var calculation = new MacroStabilityInwardsCalculation @@ -852,28 +820,16 @@ var soilModels = new[] { - new MacroStabilityInwardsStochasticSoilModel("A", new[] + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("A", new[] { new Point2D(2, -1), new Point2D(2, 1) - }) + }), + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel("C", new[] { - StochasticSoilProfiles = - { - new MacroStabilityInwardsStochasticSoilProfile(0.2, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) - } - }, - new MacroStabilityInwardsStochasticSoilModel("C", new[] - { new Point2D(-2, -1), new Point2D(-2, 1) }) - { - StochasticSoilProfiles = - { - new MacroStabilityInwardsStochasticSoilProfile(0.3, MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D()) - } - } }; var failureMechanism = new MacroStabilityInwardsFailureMechanism(); Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Plugin.Test/TreeNodeInfos/MacroStabilityInwardsStochasticSoilModelCollectionContextTreeNodeInfoTest.cs =================================================================== diff -u -r59adecfc7f82ab8277440ecae147453f5cbddbbf -rb13759ad077f9e2b4104de000b5bdeafa9abe358 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Plugin.Test/TreeNodeInfos/MacroStabilityInwardsStochasticSoilModelCollectionContextTreeNodeInfoTest.cs (.../MacroStabilityInwardsStochasticSoilModelCollectionContextTreeNodeInfoTest.cs) (revision 59adecfc7f82ab8277440ecae147453f5cbddbbf) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Plugin.Test/TreeNodeInfos/MacroStabilityInwardsStochasticSoilModelCollectionContextTreeNodeInfoTest.cs (.../MacroStabilityInwardsStochasticSoilModelCollectionContextTreeNodeInfoTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) @@ -179,9 +179,11 @@ var stochasticSoilProfile2 = new MacroStabilityInwardsStochasticSoilProfile(1.0, soilProfile2); MacroStabilityInwardsStochasticSoilModel stochasticSoilModel = - MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(); - stochasticSoilModel.StochasticSoilProfiles.Add(stochasticSoilProfile1); - stochasticSoilModel.StochasticSoilProfiles.Add(stochasticSoilProfile2); + MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(new[] + { + stochasticSoilProfile1, + stochasticSoilProfile2 + }); var failureMechanism = new MacroStabilityInwardsFailureMechanism(); var stochasticSoilModelCollectionContext = new MacroStabilityInwardsStochasticSoilModelCollectionContext(