// Copyright (C) Stichting Deltares 2017. All rights reserved.
//
// This file is part of Ringtoets.
//
// Ringtoets is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
//
// All names, logos, and references to "Deltares" are registered trademarks of
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
using System;
using System.Collections.Generic;
using System.Linq;
using Core.Common.Base.Data;
using Core.Common.Base.Geometry;
using Core.Components.Chart.Data;
using NUnit.Framework;
using Ringtoets.MacroStabilityInwards.Data;
using Ringtoets.MacroStabilityInwards.Primitives;
namespace Ringtoets.MacroStabilityInwards.Forms.TestUtil
{
///
/// Class for asserting chart data in the macro stability
/// inwards output view.
///
public static class MacroStabilityInwardsOutputViewChartDataAssert
{
private const int soilProfileIndex = 0;
private const int surfaceLineIndex = 1;
private const int surfaceLevelInsideIndex = 2;
private const int ditchPolderSideIndex = 3;
private const int bottomDitchPolderSideIndex = 4;
private const int bottomDitchDikeSideIndex = 5;
private const int ditchDikeSideIndex = 6;
private const int dikeToeAtPolderIndex = 7;
private const int shoulderTopInsideIndex = 8;
private const int shoulderBaseInsideIndex = 9;
private const int dikeTopAtPolderIndex = 10;
private const int dikeToeAtRiverIndex = 11;
private const int dikeTopAtRiverIndex = 12;
private const int surfaceLevelOutsideIndex = 13;
private const int waternetZonesExtremeIndex = 14;
private const int waternetZonesDailyIndex = 15;
private const int tangentLinesIndex = 16;
private const int leftGridIndex = 17;
private const int rightGridIndex = 18;
private const int slicesIndex = 19;
private const int slipPlaneIndex = 20;
private const int activeCircleRadiusIndex = 21;
private const int passiveCircleRadiusIndex = 22;
private const int sliceParameterIndex = 23;
private const int nrOfChartData = 24;
private const int sliceParameterLoadStressIndex = 0;
private const int sliceParameterShearStressIndex = 1;
private const int sliceParameterNormalStressIndex = 2;
private const int sliceParameterPopIndex = 3;
private const int sliceParameterOverConsolidationRatioIndex = 4;
private const int sliceParameterHorizontalPorePressureIndex = 5;
private const int sliceParameterVerticalPorePressureIndex = 6;
private const int sliceParameterPorePressureIndex = 7;
private const int sliceParameterPiezometricPorePressureIndex = 8;
private const int sliceParameterWeightIndex = 9;
private const int sliceParameterTotalPorePressureIndex = 10;
private const int sliceParameterEffectiveStressDailyIndex = 11;
private const int sliceParameterEffectiveStressIndex = 12;
private const int sliceParameterCohesionIndex = 13;
private const int sliceParameterNrOfChartData = 14;
///
/// Asserts whether corresponds to the input of .
///
/// The original .
/// The actual .
/// Thrown when
/// does not correspond to .
public static void AssertInputChartData(MacroStabilityInwardsCalculationScenario calculationScenario, ChartDataCollection actual)
{
Assert.AreEqual(nrOfChartData, actual.Collection.Count());
MacroStabilityInwardsViewChartDataAssert.AssertSurfaceLineChartData(calculationScenario.InputParameters.SurfaceLine, actual.Collection.ElementAt(surfaceLineIndex));
MacroStabilityInwardsViewChartDataAssert.AssertSoilProfileChartData(calculationScenario.InputParameters.SoilProfileUnderSurfaceLine,
calculationScenario.InputParameters.StochasticSoilProfile.SoilProfile.Name,
true,
actual.Collection.ElementAt(soilProfileIndex));
AssertWaternetChartData(calculationScenario.InputParameters.WaternetExtreme,
(ChartDataCollection) actual.Collection.ElementAt(waternetZonesExtremeIndex));
AssertWaternetChartData(calculationScenario.InputParameters.WaternetDaily,
(ChartDataCollection) actual.Collection.ElementAt(waternetZonesDailyIndex));
}
///
/// Asserts whether corresponds to the output of .
///
/// The original .
/// The actual .
/// Thrown when
/// does not correspond to .
public static void AssertOutputChartData(MacroStabilityInwardsCalculationScenario calculationScenario, ChartDataCollection actual)
{
Assert.AreEqual(nrOfChartData, actual.Collection.Count());
MacroStabilityInwardsViewChartDataAssert.AssertGridChartData(calculationScenario.Output.SlipPlane.LeftGrid,
(ChartPointData) actual.Collection.ElementAt(leftGridIndex));
MacroStabilityInwardsViewChartDataAssert.AssertGridChartData(calculationScenario.Output.SlipPlane.RightGrid,
(ChartPointData) actual.Collection.ElementAt(rightGridIndex));
AssertTangentLinesChartData(calculationScenario.Output.SlipPlane.TangentLines, calculationScenario.InputParameters.SurfaceLine,
(ChartMultipleLineData) actual.Collection.ElementAt(tangentLinesIndex));
AssertSlicesChartData(calculationScenario.Output.SlidingCurve.Slices,
(ChartMultipleAreaData) actual.Collection.ElementAt(slicesIndex));
AssertSliceParametersChartData(calculationScenario.Output.SlidingCurve.Slices,
(ChartDataCollection) actual.Collection.ElementAt(sliceParameterIndex));
AssertSlipPlaneChartData(calculationScenario.Output.SlidingCurve,
(ChartLineData) actual.Collection.ElementAt(slipPlaneIndex));
AssertCircleRadiusChartData(calculationScenario.Output.SlidingCurve.Slices.First().TopLeftPoint,
calculationScenario.Output.SlidingCurve.LeftCircle,
(ChartLineData) actual.Collection.ElementAt(activeCircleRadiusIndex));
AssertCircleRadiusChartData(calculationScenario.Output.SlidingCurve.Slices.Last().TopRightPoint,
calculationScenario.Output.SlidingCurve.RightCircle,
(ChartLineData) actual.Collection.ElementAt(passiveCircleRadiusIndex));
}
///
/// Asserts whether contains no waternet chart data.
///
/// The original .
/// The actual .
/// Thrown when a waternet layer is present.
public static void AssertWaternetChartData(MacroStabilityInwardsWaternet waternet, ChartDataCollection chartDataCollection)
{
MacroStabilityInwardsViewChartDataAssert.AssertWaternetChartData(waternet,
false,
chartDataCollection);
}
///
/// Asserts whether contains empty output data.
///
/// The actual .
/// Thrown when
/// is not empty.
public static void AssertEmptyOutputChartData(ChartDataCollection chartDataCollection)
{
ChartData[] chartDataArray = chartDataCollection.Collection.ToArray();
Assert.AreEqual(nrOfChartData, chartDataArray.Length);
var tangentLinesData = (ChartMultipleLineData) chartDataArray[tangentLinesIndex];
var leftGridData = (ChartPointData) chartDataArray[leftGridIndex];
var rightGridData = (ChartPointData) chartDataArray[rightGridIndex];
var slicesData = (ChartMultipleAreaData) chartDataArray[slicesIndex];
var slipPlaneData = (ChartLineData) chartDataArray[slipPlaneIndex];
var activeCircleRadiusData = (ChartLineData) chartDataArray[activeCircleRadiusIndex];
var passiveCircleRadiusData = (ChartLineData) chartDataArray[passiveCircleRadiusIndex];
CollectionAssert.IsEmpty(tangentLinesData.Lines);
CollectionAssert.IsEmpty(leftGridData.Points);
CollectionAssert.IsEmpty(rightGridData.Points);
CollectionAssert.IsEmpty(slicesData.Areas);
CollectionAssert.IsEmpty(slipPlaneData.Points);
CollectionAssert.IsEmpty(activeCircleRadiusData.Points);
CollectionAssert.IsEmpty(passiveCircleRadiusData.Points);
Assert.AreEqual("Tangentlijnen", tangentLinesData.Name);
Assert.AreEqual("Linker grid", leftGridData.Name);
Assert.AreEqual("Rechter grid", rightGridData.Name);
Assert.AreEqual("Lamellen", slicesData.Name);
Assert.AreEqual("Glijvlak", slipPlaneData.Name);
Assert.AreEqual("Radius actieve cirkel", activeCircleRadiusData.Name);
Assert.AreEqual("Radius passieve cirkel", passiveCircleRadiusData.Name);
AssertEmptySliceParameterChartData((ChartDataCollection) chartDataArray[sliceParameterIndex]);
}
///
/// Asserts whether contains empty data,
/// empty soil layer chart data and empty waternet chart data.
///
/// The actual .
/// Thrown when:
///
/// - is not empty;
/// - a soil layer chart data contains data;
/// - a waternet layer chart data contains data.
///
///
public static void AssertEmptyChartDataWithEmptySoilLayerAndWithWaternetChartData(ChartDataCollection chartDataCollection)
{
var waternetExtremeData = (ChartDataCollection) chartDataCollection.Collection.ElementAt(waternetZonesExtremeIndex);
var waternetDailyData = (ChartDataCollection) chartDataCollection.Collection.ElementAt(waternetZonesDailyIndex);
CollectionAssert.IsNotEmpty(waternetExtremeData.Collection);
CollectionAssert.IsNotEmpty(waternetDailyData.Collection);
Assert.IsFalse(waternetExtremeData.Collection.Any(c => c.HasData));
Assert.IsFalse(waternetDailyData.Collection.Any(c => c.HasData));
AssertEmptyChartDataWithEmptySoilLayerChartData(chartDataCollection);
}
///
/// Asserts whether contains empty data and
/// empty soil layer chart data and no waternet chart data.
///
/// The actual .
/// Thrown when:
///
/// - is not empty;
/// - a soil layer chart data contains data;
/// - a waternet layer is present.
///
///
public static void AssertEmptyChartDataWithEmptySoilLayerAndEmptyWaternetChartData(ChartDataCollection chartDataCollection)
{
AssertEmptyWaternetChartData(chartDataCollection);
AssertEmptyChartDataWithEmptySoilLayerChartData(chartDataCollection);
}
///
/// Asserts whether contains no waternet chart data.
///
/// The actual .
/// Thrown when a waternet layer is present.
public static void AssertEmptyWaternetChartData(ChartDataCollection chartDataCollection)
{
MacroStabilityInwardsViewChartDataAssert.AssertEmptyWaternetChartData(chartDataCollection,
waternetZonesExtremeIndex,
waternetZonesDailyIndex);
}
///
/// Asserts whether corresponds to .
///
/// The original slices.
/// The actual .
/// Thrown when
/// does not correspond to .
public static void AssertSliceParametersChartData(IEnumerable slices, ChartDataCollection actual)
{
MacroStabilityInwardsSlice[] macroStabilityInwardsSlices = slices.ToArray();
CollectionAssert.IsNotEmpty(macroStabilityInwardsSlices);
CollectionAssert.AreEqual(CreateExpectedSliceParameterAreas(macroStabilityInwardsSlices, nameof(MacroStabilityInwardsSlice.Cohesion), 8),
((ChartMultipleAreaData) actual.Collection.ElementAt(sliceParameterCohesionIndex)).Areas);
CollectionAssert.AreEqual(CreateExpectedSliceParameterAreas(macroStabilityInwardsSlices, nameof(MacroStabilityInwardsSlice.EffectiveStress), 8),
((ChartMultipleAreaData) actual.Collection.ElementAt(sliceParameterEffectiveStressIndex)).Areas);
CollectionAssert.AreEqual(CreateExpectedSliceParameterAreas(macroStabilityInwardsSlices, nameof(MacroStabilityInwardsSlice.EffectiveStressDaily), 8),
((ChartMultipleAreaData) actual.Collection.ElementAt(sliceParameterEffectiveStressDailyIndex)).Areas);
CollectionAssert.AreEqual(CreateExpectedSliceParameterAreas(macroStabilityInwardsSlices, nameof(MacroStabilityInwardsSlice.TotalPorePressure), 8),
((ChartMultipleAreaData) actual.Collection.ElementAt(sliceParameterTotalPorePressureIndex)).Areas);
CollectionAssert.AreEqual(CreateExpectedSliceParameterAreas(macroStabilityInwardsSlices, nameof(MacroStabilityInwardsSlice.Weight), 8),
((ChartMultipleAreaData) actual.Collection.ElementAt(sliceParameterWeightIndex)).Areas);
CollectionAssert.AreEqual(CreateExpectedSliceParameterAreas(macroStabilityInwardsSlices, nameof(MacroStabilityInwardsSlice.PiezometricPorePressure), 8),
((ChartMultipleAreaData) actual.Collection.ElementAt(sliceParameterPiezometricPorePressureIndex)).Areas);
CollectionAssert.AreEqual(CreateExpectedSliceParameterAreas(macroStabilityInwardsSlices, nameof(MacroStabilityInwardsSlice.PorePressure), 8),
((ChartMultipleAreaData) actual.Collection.ElementAt(sliceParameterPorePressureIndex)).Areas);
CollectionAssert.AreEqual(CreateExpectedSliceParameterAreas(macroStabilityInwardsSlices, nameof(MacroStabilityInwardsSlice.VerticalPorePressure), 8),
((ChartMultipleAreaData) actual.Collection.ElementAt(sliceParameterVerticalPorePressureIndex)).Areas);
CollectionAssert.AreEqual(CreateExpectedSliceParameterAreas(macroStabilityInwardsSlices, nameof(MacroStabilityInwardsSlice.HorizontalPorePressure), 8),
((ChartMultipleAreaData) actual.Collection.ElementAt(sliceParameterHorizontalPorePressureIndex)).Areas);
CollectionAssert.AreEqual(CreateExpectedSliceParameterAreas(macroStabilityInwardsSlices, nameof(MacroStabilityInwardsSlice.OverConsolidationRatio), 20),
((ChartMultipleAreaData) actual.Collection.ElementAt(sliceParameterOverConsolidationRatioIndex)).Areas);
CollectionAssert.AreEqual(CreateExpectedSliceParameterAreas(macroStabilityInwardsSlices, nameof(MacroStabilityInwardsSlice.Pop), 8),
((ChartMultipleAreaData) actual.Collection.ElementAt(sliceParameterPopIndex)).Areas);
CollectionAssert.AreEqual(CreateExpectedSliceParameterAreas(macroStabilityInwardsSlices, nameof(MacroStabilityInwardsSlice.NormalStress), 8),
((ChartMultipleAreaData) actual.Collection.ElementAt(sliceParameterNormalStressIndex)).Areas);
CollectionAssert.AreEqual(CreateExpectedSliceParameterAreas(macroStabilityInwardsSlices, nameof(MacroStabilityInwardsSlice.ShearStress), 8),
((ChartMultipleAreaData) actual.Collection.ElementAt(sliceParameterShearStressIndex)).Areas);
CollectionAssert.AreEqual(CreateExpectedSliceParameterAreas(macroStabilityInwardsSlices, nameof(MacroStabilityInwardsSlice.LoadStress), 8),
((ChartMultipleAreaData) actual.Collection.ElementAt(sliceParameterLoadStressIndex)).Areas);
}
///
/// Asserts whether contains no slice values chart data.
///
/// The actual .
/// Thrown when a slice value area is present.
private static void AssertEmptySliceParameterChartData(ChartDataCollection chartDataCollection)
{
Assert.AreEqual("Uitvoer per lamel", chartDataCollection.Name);
ChartData[] chartDataArray = chartDataCollection.Collection.ToArray();
Assert.AreEqual(sliceParameterNrOfChartData, chartDataArray.Length);
var cohesionSliceData = (ChartMultipleAreaData) chartDataArray[sliceParameterCohesionIndex];
var effectiveStressSliceData = (ChartMultipleAreaData) chartDataArray[sliceParameterEffectiveStressIndex];
var effectiveStressDailySliceData = (ChartMultipleAreaData) chartDataArray[sliceParameterEffectiveStressDailyIndex];
var totalPorePressureSliceData = (ChartMultipleAreaData) chartDataArray[sliceParameterTotalPorePressureIndex];
var weightSliceData = (ChartMultipleAreaData) chartDataArray[sliceParameterWeightIndex];
var piezometricPorePressureSliceData = (ChartMultipleAreaData) chartDataArray[sliceParameterPiezometricPorePressureIndex];
var porePressureSliceData = (ChartMultipleAreaData) chartDataArray[sliceParameterPorePressureIndex];
var verticalPorePressureSliceData = (ChartMultipleAreaData) chartDataArray[sliceParameterVerticalPorePressureIndex];
var horizontalPorePressureSliceData = (ChartMultipleAreaData) chartDataArray[sliceParameterHorizontalPorePressureIndex];
var overConsolidationRatioSliceData = (ChartMultipleAreaData) chartDataArray[sliceParameterOverConsolidationRatioIndex];
var popSliceData = (ChartMultipleAreaData) chartDataArray[sliceParameterPopIndex];
var normalStressSliceData = (ChartMultipleAreaData) chartDataArray[sliceParameterNormalStressIndex];
var shearStressSliceData = (ChartMultipleAreaData) chartDataArray[sliceParameterShearStressIndex];
var loadStressSliceData = (ChartMultipleAreaData) chartDataArray[sliceParameterLoadStressIndex];
CollectionAssert.IsEmpty(cohesionSliceData.Areas);
Assert.AreEqual("Cohesie", cohesionSliceData.Name);
Assert.AreEqual("Effectieve spanning", effectiveStressSliceData.Name);
Assert.AreEqual("Effectieve spanning (dagelijks)", effectiveStressDailySliceData.Name);
Assert.AreEqual("Totale waterspanning", totalPorePressureSliceData.Name);
Assert.AreEqual("Gewicht", weightSliceData.Name);
Assert.AreEqual("Piezometrische waterspanning", piezometricPorePressureSliceData.Name);
Assert.AreEqual("Waterspanning op maaiveld", porePressureSliceData.Name);
Assert.AreEqual("Verticale waterspanning op maaiveld", verticalPorePressureSliceData.Name);
Assert.AreEqual("Horizontale waterspanning op maaiveld", horizontalPorePressureSliceData.Name);
Assert.AreEqual("OCR", overConsolidationRatioSliceData.Name);
Assert.AreEqual("POP", popSliceData.Name);
Assert.AreEqual("Normaalspanning", normalStressSliceData.Name);
Assert.AreEqual("Schuifspanning", shearStressSliceData.Name);
Assert.AreEqual("Spanning belasting", loadStressSliceData.Name);
}
///
/// Asserts whether corresponds to
/// and .
///
/// The original tangent line Y-coordinates.
/// The original surface line.
/// The actual .
/// Thrown when
/// does not correspond to and .
///
private static void AssertTangentLinesChartData(IEnumerable tangentLines,
MacroStabilityInwardsSurfaceLine surfaceLine,
ChartMultipleLineData actual)
{
CollectionAssert.IsNotEmpty(actual.Lines);
RoundedDouble[] tangentLinesArray = tangentLines.ToArray();
for (var i = 0; i < tangentLinesArray.Length; i++)
{
var expectedPoints = new[]
{
new Point2D(surfaceLine.LocalGeometry.First().X, tangentLinesArray[i]),
new Point2D(surfaceLine.LocalGeometry.Last().X, tangentLinesArray[i])
};
CollectionAssert.AreEqual(expectedPoints, actual.Lines.ElementAt(i));
}
}
///
/// Asserts whether corresponds to .
///
/// The original slices.
/// The actual .
/// Thrown when
/// does not correspond to .
private static void AssertSlicesChartData(IEnumerable slices, ChartMultipleAreaData actual)
{
MacroStabilityInwardsSlice[] macroStabilityInwardsSlices = slices.ToArray();
CollectionAssert.IsNotEmpty(macroStabilityInwardsSlices);
for (var i = 0; i < macroStabilityInwardsSlices.Length; i++)
{
MacroStabilityInwardsSlice slice = macroStabilityInwardsSlices[i];
var expectedPoints = new[]
{
slice.TopLeftPoint,
slice.TopRightPoint,
slice.BottomRightPoint,
slice.BottomLeftPoint
};
CollectionAssert.AreEqual(expectedPoints, actual.Areas.ElementAt(i));
}
}
private static IEnumerable CreateExpectedSliceParameterAreas(IEnumerable slices,
string propertyName,
int scaleFactor)
{
var areas = new List();
foreach (MacroStabilityInwardsSlice slice in slices)
{
var value = (RoundedDouble?) slice.GetType().GetProperty(propertyName)?.GetValue(slice, null);
double offset = value.Value / scaleFactor;
double length = Math.Sqrt(Math.Pow(slice.BottomLeftPoint.X - slice.BottomRightPoint.X, 2) +
Math.Pow(slice.BottomLeftPoint.Y - slice.BottomRightPoint.Y, 2));
areas.Add(new[]
{
slice.BottomLeftPoint,
slice.BottomRightPoint,
new Point2D(slice.BottomRightPoint.X + offset * (slice.BottomRightPoint.Y - slice.BottomLeftPoint.Y) / length,
slice.BottomRightPoint.Y + offset * (slice.BottomLeftPoint.X - slice.BottomRightPoint.X) / length),
new Point2D(slice.BottomLeftPoint.X + offset * (slice.BottomRightPoint.Y - slice.BottomLeftPoint.Y) / length,
slice.BottomLeftPoint.Y + offset * (slice.BottomLeftPoint.X - slice.BottomRightPoint.X) / length)
});
}
return areas;
}
///
/// Asserts whether corresponds to
/// and .
///
/// The point to use for the start of the line
/// The circle to use for the end of the line.
/// The actual .
/// Thrown when
/// does not correspond to the specified start and end points.
private static void AssertCircleRadiusChartData(Point2D startingPoint,
MacroStabilityInwardsSlidingCircle slidingCircle,
ChartLineData actual)
{
var points = new[]
{
slidingCircle.Center,
startingPoint
};
CollectionAssert.AreEqual(points, actual.Points);
}
///
/// Asserts whether contains empty data and
/// empty soil layer chart data.
///
/// The actual .
/// Thrown when:
///
/// - is not empty;
/// - a soil layer chart data contains data.
///
///
private static void AssertEmptyChartDataWithEmptySoilLayerChartData(ChartDataCollection chartDataCollection)
{
var soilProfileData = (ChartDataCollection) chartDataCollection.Collection.ElementAt(soilProfileIndex);
CollectionAssert.IsNotEmpty(soilProfileData.Collection);
Assert.IsFalse(soilProfileData.Collection.Any(c => c.HasData));
AssertEmptyChartData(chartDataCollection);
}
///
/// Asserts whether corresponds to .
///
/// The original .
/// The actual .
/// Thrown when
/// does not correspond to .
private static void AssertSlipPlaneChartData(MacroStabilityInwardsSlidingCurve original, ChartLineData actual)
{
CollectionAssert.IsNotEmpty(original.Slices);
List expectedPoints = original.Slices.Select(slice => slice.BottomLeftPoint).OrderBy(x => x.X).ToList();
expectedPoints.Add(original.Slices.Last().BottomRightPoint);
CollectionAssert.AreEqual(expectedPoints, actual.Points);
}
///
/// Asserts whether contains empty data.
///
/// The actual .
/// Thrown when
/// is not empty.
private static void AssertEmptyChartData(ChartDataCollection chartDataCollection)
{
Assert.AreEqual("Resultaat", chartDataCollection.Name);
ChartData[] chartDataArray = chartDataCollection.Collection.ToArray();
Assert.AreEqual(nrOfChartData, chartDataArray.Length);
var surfaceLineData = (ChartLineData) chartDataArray[surfaceLineIndex];
var surfaceLevelInsideData = (ChartPointData) chartDataArray[surfaceLevelInsideIndex];
var ditchPolderSideData = (ChartPointData) chartDataArray[ditchPolderSideIndex];
var bottomDitchPolderSideData = (ChartPointData) chartDataArray[bottomDitchPolderSideIndex];
var bottomDitchDikeSideData = (ChartPointData) chartDataArray[bottomDitchDikeSideIndex];
var ditchDikeSideData = (ChartPointData) chartDataArray[ditchDikeSideIndex];
var dikeToeAtPolderData = (ChartPointData) chartDataArray[dikeToeAtPolderIndex];
var shoulderTopInsideData = (ChartPointData) chartDataArray[shoulderTopInsideIndex];
var shoulderBaseInsideData = (ChartPointData) chartDataArray[shoulderBaseInsideIndex];
var dikeTopAtPolderData = (ChartPointData) chartDataArray[dikeTopAtPolderIndex];
var dikeToeAtRiverData = (ChartPointData) chartDataArray[dikeToeAtRiverIndex];
var dikeTopAtRiverData = (ChartPointData) chartDataArray[dikeTopAtRiverIndex];
var surfaceLevelOutsideData = (ChartPointData) chartDataArray[surfaceLevelOutsideIndex];
CollectionAssert.IsEmpty(surfaceLineData.Points);
CollectionAssert.IsEmpty(surfaceLevelInsideData.Points);
CollectionAssert.IsEmpty(ditchPolderSideData.Points);
CollectionAssert.IsEmpty(bottomDitchPolderSideData.Points);
CollectionAssert.IsEmpty(bottomDitchDikeSideData.Points);
CollectionAssert.IsEmpty(ditchDikeSideData.Points);
CollectionAssert.IsEmpty(dikeToeAtPolderData.Points);
CollectionAssert.IsEmpty(shoulderTopInsideData.Points);
CollectionAssert.IsEmpty(shoulderBaseInsideData.Points);
CollectionAssert.IsEmpty(dikeTopAtPolderData.Points);
CollectionAssert.IsEmpty(dikeToeAtRiverData.Points);
CollectionAssert.IsEmpty(dikeTopAtRiverData.Points);
CollectionAssert.IsEmpty(surfaceLevelOutsideData.Points);
Assert.AreEqual("Profielschematisatie", surfaceLineData.Name);
Assert.AreEqual("Maaiveld binnenwaarts", surfaceLevelInsideData.Name);
Assert.AreEqual("Insteek sloot polderzijde", ditchPolderSideData.Name);
Assert.AreEqual("Slootbodem polderzijde", bottomDitchPolderSideData.Name);
Assert.AreEqual("Slootbodem dijkzijde", bottomDitchDikeSideData.Name);
Assert.AreEqual("Insteek sloot dijkzijde", ditchDikeSideData.Name);
Assert.AreEqual("Teen dijk binnenwaarts", dikeToeAtPolderData.Name);
Assert.AreEqual("Kruin binnenberm", shoulderTopInsideData.Name);
Assert.AreEqual("Insteek binnenberm", shoulderBaseInsideData.Name);
Assert.AreEqual("Kruin binnentalud", dikeTopAtPolderData.Name);
Assert.AreEqual("Teen dijk buitenwaarts", dikeToeAtRiverData.Name);
Assert.AreEqual("Kruin buitentalud", dikeTopAtRiverData.Name);
Assert.AreEqual("Maaiveld buitenwaarts", surfaceLevelOutsideData.Name);
AssertEmptyOutputChartData(chartDataCollection);
}
}
}