private static PersistableReferenceLine Create(MacroStabilityInwardsWaternetLine waternetLine, IdFactory idFactory) { string headLineId = createdHeadLines[waternetLine.PhreaticLine].Id; var referenceLine = new PersistableReferenceLine { Id = idFactory.Create(), Label = waternetLine.Name, Points = waternetLine.Geometry.Select(point => new PersistablePoint(point.X, point.Y)).ToArray(), TopHeadLineId = headLineId, BottomHeadLineId = headLineId }; return(referenceLine); }
/// <summary> /// Asserts whether the <see cref="MacroStabilityInwardsWaternet"/> contains the data /// that is representative for the <paramref name="originalWaternets"/>. /// </summary> /// <param name="originalWaternets">The Waternets that contain the original data.</param> /// <param name="actualWaternets">The <see cref="PersistableWaternet"/> /// that needs to be asserted.</param> /// <exception cref="AssertionException">Thrown when the data in <paramref name="actualWaternets"/> /// is not correct.</exception> public static void AssertWaternets(IEnumerable <MacroStabilityInwardsWaternet> originalWaternets, IEnumerable <PersistableWaternet> actualWaternets) { Assert.AreEqual(originalWaternets.Count(), actualWaternets.Count()); for (var i = 0; i < originalWaternets.Count(); i++) { MacroStabilityInwardsWaternet originalWaternet = originalWaternets.ElementAt(i); PersistableWaternet actualWaternet = actualWaternets.ElementAt(i); Assert.IsNotNull(actualWaternet.Id); Assert.AreEqual(9.81, actualWaternet.UnitWeightWater); PersistableHeadLine firstHeadLine = actualWaternet.HeadLines.FirstOrDefault(); Assert.AreEqual(actualWaternet.PhreaticLineId, firstHeadLine?.Id); Assert.AreEqual(originalWaternet.PhreaticLines.Count(), actualWaternet.HeadLines.Count()); for (var j = 0; j < originalWaternet.PhreaticLines.Count(); j++) { MacroStabilityInwardsPhreaticLine phreaticLine = originalWaternet.PhreaticLines.ElementAt(j); PersistableHeadLine headLine = actualWaternet.HeadLines.ElementAt(j); Assert.IsNotNull(headLine.Id); Assert.AreEqual(phreaticLine.Name, headLine.Label); CollectionAssert.AreEqual(phreaticLine.Geometry.Select(p => new PersistablePoint(p.X, p.Y)), headLine.Points); } Assert.AreEqual(originalWaternet.WaternetLines.Count(), actualWaternet.ReferenceLines.Count()); for (var j = 0; j < originalWaternet.WaternetLines.Count(); j++) { MacroStabilityInwardsWaternetLine waternetLine = originalWaternet.WaternetLines.ElementAt(j); PersistableReferenceLine referenceLine = actualWaternet.ReferenceLines.ElementAt(j); Assert.IsNotNull(referenceLine.Id); Assert.AreEqual(waternetLine.Name, referenceLine.Label); CollectionAssert.AreEqual(waternetLine.Geometry.Select(p => new PersistablePoint(p.X, p.Y)), referenceLine.Points); Assert.AreEqual(firstHeadLine.Id, referenceLine.TopHeadLineId); Assert.AreEqual(firstHeadLine.Id, referenceLine.BottomHeadLineId); } } }