Index: Riskeer/DuneErosion/src/Riskeer.DuneErosion.Forms/Factories/AggregatedDuneLocationFactory.cs
===================================================================
diff -u -rc5b7009dff256698dcfed4c77402287a4acb25b1 -r9da286bdadcc91a4650bb2cbe051e03452967abb
--- Riskeer/DuneErosion/src/Riskeer.DuneErosion.Forms/Factories/AggregatedDuneLocationFactory.cs (.../AggregatedDuneLocationFactory.cs) (revision c5b7009dff256698dcfed4c77402287a4acb25b1)
+++ Riskeer/DuneErosion/src/Riskeer.DuneErosion.Forms/Factories/AggregatedDuneLocationFactory.cs (.../AggregatedDuneLocationFactory.cs) (revision 9da286bdadcc91a4650bb2cbe051e03452967abb)
@@ -22,7 +22,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using Core.Common.Base;
using Core.Common.Base.Data;
using Riskeer.DuneErosion.Data;
using Riskeer.DuneErosion.Forms.Views;
@@ -43,7 +42,7 @@
/// Thrown when any parameter is null.
public static IEnumerable CreateAggregatedDuneLocations(
IEnumerable duneLocations,
- IReadOnlyDictionary, double> calculationsForTargetProbabilities)
+ IEnumerable calculationsForTargetProbabilities)
{
if (duneLocations == null)
{
@@ -59,7 +58,7 @@
{
Tuple[] calculationsForLocation =
calculationsForTargetProbabilities.Select(c => new Tuple(
- c.Value, c.Key.ToDictionary(
+ c.TargetProbability, c.DuneLocationCalculations.ToDictionary(
x => x.DuneLocation,
x => x)[location]))
.ToArray();
Index: Riskeer/DuneErosion/src/Riskeer.DuneErosion.Forms/Views/DuneErosionLocationsMapLayer.cs
===================================================================
diff -u -r10f91cb2c0ea3bddf1aa853417a7ac264d0894be -r9da286bdadcc91a4650bb2cbe051e03452967abb
--- Riskeer/DuneErosion/src/Riskeer.DuneErosion.Forms/Views/DuneErosionLocationsMapLayer.cs (.../DuneErosionLocationsMapLayer.cs) (revision 10f91cb2c0ea3bddf1aa853417a7ac264d0894be)
+++ Riskeer/DuneErosion/src/Riskeer.DuneErosion.Forms/Views/DuneErosionLocationsMapLayer.cs (.../DuneErosionLocationsMapLayer.cs) (revision 9da286bdadcc91a4650bb2cbe051e03452967abb)
@@ -45,7 +45,7 @@
private List, DuneLocationCalculation>> calculationsForTargetProbabilityObservers;
- private IReadOnlyDictionary, MetaDataItemsLookup> currentMetaDataItemsLookups;
+ private IReadOnlyDictionary currentMetaDataItemsLookups;
///
/// Creates a new instance of .
@@ -66,7 +66,7 @@
CreateObservers();
MapData = RiskeerMapDataFactory.CreateHydraulicBoundaryLocationsMapData();
- currentMetaDataItemsLookups = new Dictionary, MetaDataItemsLookup>();
+ currentMetaDataItemsLookups = new Dictionary();
SetFeatures();
}
@@ -155,26 +155,23 @@
private void SetFeatures()
{
- IReadOnlyDictionary, double> calculationsForTargetProbabilities =
- failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities
- .OrderByDescending(tp => tp.TargetProbability)
- .ToDictionary(tp => (IObservableEnumerable) tp.DuneLocationCalculations,
- tp => tp.TargetProbability);
-
+ DuneLocationCalculationsForTargetProbability[] orderedCalculationsForTargetProbabilities = failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities
+ .OrderByDescending(tp => tp.TargetProbability)
+ .ToArray();
IEnumerable locations = AggregatedDuneLocationFactory.CreateAggregatedDuneLocations(
- failureMechanism.DuneLocations, calculationsForTargetProbabilities);
+ failureMechanism.DuneLocations, orderedCalculationsForTargetProbabilities);
MapData.Features = DuneErosionMapDataFeaturesFactory.CreateDuneLocationFeatures(locations);
if (MapData.Features.Any())
{
- UpdateMetaData(calculationsForTargetProbabilities);
+ UpdateMetaData(orderedCalculationsForTargetProbabilities);
}
}
- private void UpdateMetaData(IReadOnlyDictionary, double> calculationsForTargetProbabilities)
+ private void UpdateMetaData(IEnumerable calculationsForTargetProbabilities)
{
- var newMetaDataItemsLookups = new Dictionary, MetaDataItemsLookup>();
+ var newMetaDataItemsLookups = new Dictionary();
var waterLevelMetaDataItemsCounter = 0;
var waveHeightMetaDataItemsCounter = 0;
@@ -183,39 +180,39 @@
{
if (metaData.Contains(string.Format(Resources.MetaData_WaterLevel_TargetProbability_0, string.Empty)))
{
- AddMetaDataItemToLookup(newMetaDataItemsLookups, calculationsForTargetProbabilities.ElementAt(waterLevelMetaDataItemsCounter).Key,
+ AddMetaDataItemToLookup(newMetaDataItemsLookups, calculationsForTargetProbabilities.ElementAt(waterLevelMetaDataItemsCounter),
lookupItem => lookupItem.WaterLevelMetaDataItem = metaData);
waterLevelMetaDataItemsCounter++;
}
else if (metaData.Contains(string.Format(Resources.MetaData_WaveHeight_TargetProbability_0, string.Empty)))
{
- AddMetaDataItemToLookup(newMetaDataItemsLookups, calculationsForTargetProbabilities.ElementAt(waveHeightMetaDataItemsCounter).Key,
+ AddMetaDataItemToLookup(newMetaDataItemsLookups, calculationsForTargetProbabilities.ElementAt(waveHeightMetaDataItemsCounter),
lookupItem => lookupItem.WaveHeightMetaDataItem = metaData);
waveHeightMetaDataItemsCounter++;
}
else if (metaData.Contains(string.Format(Resources.MetaData_WavePeriod_TargetProbability_0, string.Empty)))
{
- AddMetaDataItemToLookup(newMetaDataItemsLookups, calculationsForTargetProbabilities.ElementAt(wavePeriodMetaDataItemsCounter).Key,
+ AddMetaDataItemToLookup(newMetaDataItemsLookups, calculationsForTargetProbabilities.ElementAt(wavePeriodMetaDataItemsCounter),
lookupItem => lookupItem.WavePeriodMetaDataItem = metaData);
wavePeriodMetaDataItemsCounter++;
}
}
- foreach (KeyValuePair, MetaDataItemsLookup> currentMetaDataItemLookup in currentMetaDataItemsLookups)
+ foreach (KeyValuePair currentMetaDataItemLookup in currentMetaDataItemsLookups)
{
MetaDataItemsLookup currentMetaDataItem = currentMetaDataItemLookup.Value;
if (MapData.SelectedMetaDataAttribute == currentMetaDataItem.WaterLevelMetaDataItem
|| MapData.SelectedMetaDataAttribute == currentMetaDataItem.WaveHeightMetaDataItem
|| MapData.SelectedMetaDataAttribute == currentMetaDataItem.WavePeriodMetaDataItem)
{
- IObservableEnumerable calculations = currentMetaDataItemLookup.Key;
- if (!newMetaDataItemsLookups.ContainsKey(calculations))
+ DuneLocationCalculationsForTargetProbability calculationsForTargetProbability = currentMetaDataItemLookup.Key;
+ if (!newMetaDataItemsLookups.ContainsKey(calculationsForTargetProbability))
{
MapData.SelectedMetaDataAttribute = RiskeerCommonUtilResources.MetaData_Name;
}
else
{
- MetaDataItemsLookup newMetaDataItem = newMetaDataItemsLookups[calculations];
+ MetaDataItemsLookup newMetaDataItem = newMetaDataItemsLookups[calculationsForTargetProbability];
SetSelectedMetaDataAttribute(currentMetaDataItem.WaterLevelMetaDataItem, newMetaDataItem.WaterLevelMetaDataItem);
SetSelectedMetaDataAttribute(currentMetaDataItem.WaveHeightMetaDataItem, newMetaDataItem.WaveHeightMetaDataItem);
SetSelectedMetaDataAttribute(currentMetaDataItem.WavePeriodMetaDataItem, newMetaDataItem.WavePeriodMetaDataItem);
@@ -226,16 +223,16 @@
currentMetaDataItemsLookups = newMetaDataItemsLookups;
}
- private static void AddMetaDataItemToLookup(IDictionary, MetaDataItemsLookup> lookup,
- IObservableEnumerable calculations,
+ private static void AddMetaDataItemToLookup(IDictionary lookup,
+ DuneLocationCalculationsForTargetProbability calculationsForTargetProbability,
Action setMetaDataAction)
{
- if (!lookup.ContainsKey(calculations))
+ if (!lookup.ContainsKey(calculationsForTargetProbability))
{
- lookup.Add(calculations, new MetaDataItemsLookup());
+ lookup.Add(calculationsForTargetProbability, new MetaDataItemsLookup());
}
- setMetaDataAction(lookup[calculations]);
+ setMetaDataAction(lookup[calculationsForTargetProbability]);
}
private void SetSelectedMetaDataAttribute(string metaDataItem, string newMetaDataItem)
Index: Riskeer/DuneErosion/test/Riskeer.DuneErosion.Forms.Test/Factories/AggregatedDuneLocationFactoryTest.cs
===================================================================
diff -u -rc5b7009dff256698dcfed4c77402287a4acb25b1 -r9da286bdadcc91a4650bb2cbe051e03452967abb
--- Riskeer/DuneErosion/test/Riskeer.DuneErosion.Forms.Test/Factories/AggregatedDuneLocationFactoryTest.cs (.../AggregatedDuneLocationFactoryTest.cs) (revision c5b7009dff256698dcfed4c77402287a4acb25b1)
+++ Riskeer/DuneErosion/test/Riskeer.DuneErosion.Forms.Test/Factories/AggregatedDuneLocationFactoryTest.cs (.../AggregatedDuneLocationFactoryTest.cs) (revision 9da286bdadcc91a4650bb2cbe051e03452967abb)
@@ -22,7 +22,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using Core.Common.Base;
using Core.Common.Base.Data;
using Core.Common.Base.Geometry;
using NUnit.Framework;
@@ -40,7 +39,7 @@
public void CreateAggregatedDuneLocations_DuneLocationsNull_ThrowsArgumentNullException()
{
// Call
- void Call() => AggregatedDuneLocationFactory.CreateAggregatedDuneLocations(null, new Dictionary, double>());
+ void Call() => AggregatedDuneLocationFactory.CreateAggregatedDuneLocations(null, Enumerable.Empty());
// Assert
var exception = Assert.Throws(Call);
@@ -69,10 +68,11 @@
new DuneLocation(2, "location2", new Point2D(2, 2), new DuneLocation.ConstructionProperties())
};
- var calculations = new Dictionary, double>
+ var targetProbabilities = new[]
{
+ new DuneLocationCalculationsForTargetProbability(0.1)
{
- new ObservableList
+ DuneLocationCalculations =
{
new DuneLocationCalculation(duneLocations[0])
{
@@ -82,24 +82,23 @@
{
Output = new TestDuneLocationCalculationOutput(random.NextDouble(), random.NextDouble(), random.NextDouble())
}
- },
- 0.1
+ }
},
+ new DuneLocationCalculationsForTargetProbability(0.001)
{
- new ObservableList
+ DuneLocationCalculations =
{
new DuneLocationCalculation(duneLocations[0])
{
Output = new TestDuneLocationCalculationOutput(random.NextDouble(), random.NextDouble(), random.NextDouble())
},
new DuneLocationCalculation(duneLocations[1])
- },
- 0.001
+ }
}
};
// Call
- IEnumerable aggregatedLocations = AggregatedDuneLocationFactory.CreateAggregatedDuneLocations(duneLocations, calculations);
+ IEnumerable aggregatedLocations = AggregatedDuneLocationFactory.CreateAggregatedDuneLocations(duneLocations, targetProbabilities);
// Assert
Assert.AreEqual(duneLocations.Length, aggregatedLocations.Count());
@@ -116,13 +115,13 @@
Assert.AreEqual(duneLocation.Offset, aggregatedLocation.Offset);
Assert.AreEqual(duneLocation.D50, aggregatedLocation.D50);
- for (var j = 0; j < calculations.Count; j++)
+ for (var j = 0; j < targetProbabilities.Length; j++)
{
- Assert.AreEqual(calculations.ElementAt(j).Value, aggregatedLocation.WaterLevelCalculationsForTargetProbabilities.ElementAt(j).Item1);
- Assert.AreEqual(calculations.ElementAt(j).Value, aggregatedLocation.WaveHeightCalculationsForTargetProbabilities.ElementAt(j).Item1);
- Assert.AreEqual(calculations.ElementAt(j).Value, aggregatedLocation.WavePeriodCalculationsForTargetProbabilities.ElementAt(j).Item1);
+ Assert.AreEqual(targetProbabilities[j].TargetProbability, aggregatedLocation.WaterLevelCalculationsForTargetProbabilities.ElementAt(j).Item1);
+ Assert.AreEqual(targetProbabilities[j].TargetProbability, aggregatedLocation.WaveHeightCalculationsForTargetProbabilities.ElementAt(j).Item1);
+ Assert.AreEqual(targetProbabilities[j].TargetProbability, aggregatedLocation.WavePeriodCalculationsForTargetProbabilities.ElementAt(j).Item1);
- DuneLocationCalculationOutput output = GetOutput(calculations.ElementAt(j).Key, duneLocations[i]);
+ DuneLocationCalculationOutput output = GetOutput(targetProbabilities[j].DuneLocationCalculations, duneLocations[i]);
Assert.AreEqual(output?.WaterLevel ?? RoundedDouble.NaN, aggregatedLocation.WaterLevelCalculationsForTargetProbabilities.ElementAt(j).Item2);
Assert.AreEqual(output?.WaveHeight ?? RoundedDouble.NaN, aggregatedLocation.WaveHeightCalculationsForTargetProbabilities.ElementAt(j).Item2);
Assert.AreEqual(output?.WavePeriod ?? RoundedDouble.NaN, aggregatedLocation.WavePeriodCalculationsForTargetProbabilities.ElementAt(j).Item2);
Index: Riskeer/DuneErosion/test/Riskeer.DuneErosion.Forms.Test/Factories/DuneErosionMapDataFeaturesFactoryTest.cs
===================================================================
diff -u -raf2fc24af74a6afba450e7fc95b7ec66fd79ff63 -r9da286bdadcc91a4650bb2cbe051e03452967abb
--- Riskeer/DuneErosion/test/Riskeer.DuneErosion.Forms.Test/Factories/DuneErosionMapDataFeaturesFactoryTest.cs (.../DuneErosionMapDataFeaturesFactoryTest.cs) (revision af2fc24af74a6afba450e7fc95b7ec66fd79ff63)
+++ Riskeer/DuneErosion/test/Riskeer.DuneErosion.Forms.Test/Factories/DuneErosionMapDataFeaturesFactoryTest.cs (.../DuneErosionMapDataFeaturesFactoryTest.cs) (revision 9da286bdadcc91a4650bb2cbe051e03452967abb)
@@ -22,7 +22,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using Core.Common.Base;
using Core.Common.Base.Geometry;
using Core.Components.Gis.Features;
using NUnit.Framework;
@@ -85,9 +84,7 @@
IEnumerable aggregatedLocations = AggregatedDuneLocationFactory.CreateAggregatedDuneLocations(
failureMechanism.DuneLocations,
- failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.ToDictionary(
- tp => (IObservableEnumerable) tp.DuneLocationCalculations,
- tp => tp.TargetProbability));
+ failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities);
// Call
IEnumerable features = DuneErosionMapDataFeaturesFactory.CreateDuneLocationFeatures(aggregatedLocations);