Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/IO/DesignTableSettingsCsvReader.cs =================================================================== diff -u -r5c026d00112581020f7547e0b956406abc9c56b8 -re43f4bf3f03c8566f64f02cac30dd9444f6dfa34 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/IO/DesignTableSettingsCsvReader.cs (.../DesignTableSettingsCsvReader.cs) (revision 5c026d00112581020f7547e0b956406abc9c56b8) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/IO/DesignTableSettingsCsvReader.cs (.../DesignTableSettingsCsvReader.cs) (revision e43f4bf3f03c8566f64f02cac30dd9444f6dfa34) @@ -21,7 +21,6 @@ using System; using System.Collections.Generic; -using System.Linq; using Ringtoets.HydraRing.Calculation.Data; using Ringtoets.HydraRing.Calculation.Data.Settings; @@ -30,14 +29,8 @@ /// /// The reader for the in csv format. /// - internal class DesignTableSettingsCsvReader + internal class DesignTableSettingsCsvReader : HydraRingSettingsCsvReader>> { - private const char separator = ';'; - - private readonly string fileContents; - - private readonly IDictionary> settings = new Dictionary>(); - private readonly Dictionary columns = new Dictionary { { @@ -81,47 +74,23 @@ /// /// The file to read. /// Thrown when is not set. - public DesignTableSettingsCsvReader(string file) - { - if (file == null) - { - throw new ArgumentNullException("file", @"A file must be set."); - } + public DesignTableSettingsCsvReader(string file) : base(file, new Dictionary>()) {} - fileContents = file; - } - - /// - /// Reads the settings from the file. - /// - /// A with the settings. - public IDictionary> ReadSettings() + protected override void CreateSetting(IList line) { - string[] lines = fileContents.Split('\n'); - - foreach (string line in lines.Skip(1).Where(s => !string.IsNullOrEmpty(s))) - { - CreateSetting(TokenizeString(line)); - } - - return settings; - } - - private void CreateSetting(IList line) - { // Get failure mechanism - HydraRingFailureMechanismType failureMechanismType = GetFailureMechanismType(line); + var failureMechanismType = GetFailureMechanismType(line); - if (!settings.ContainsKey(failureMechanismType)) + if (!Settings.ContainsKey(failureMechanismType)) { - settings.Add(failureMechanismType, new Dictionary()); + Settings.Add(failureMechanismType, new Dictionary()); } // Get TrajectId - string ringId = GetRingId(line); - if (!settings[failureMechanismType].ContainsKey(ringId)) + var ringId = GetRingId(line); + if (!Settings[failureMechanismType].ContainsKey(ringId)) { - settings[failureMechanismType].Add(ringId, GetDesignTableSettings(line)); + Settings[failureMechanismType].Add(ringId, GetDesignTableSettings(line)); } } @@ -141,28 +110,6 @@ GetIntValueFromElement(line[columns[maxKey]])); } - private string GetStringValueFromElement(string element) - { - return element.Trim().Replace("\"", ""); - } - - private int GetIntValueFromElement(string element) - { - return int.Parse(GetStringValueFromElement(element)); - } - - private string[] TokenizeString(string readText) - { - if (!readText.Contains(separator)) - { - return new string[] - {}; - } - return readText.Split(separator) - .TakeWhile(text => !string.IsNullOrEmpty(text)) - .ToArray(); - } - #region Csv column names private const string ringIdKey = "TrajectID"; Fisheye: Tag 67aa825f436900190ff7324c7ad0d30338dda6ff refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/IO/HydraRingSettingsCsvReader.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/IO/NumericsSettingsCsvReader.cs =================================================================== diff -u -r5c026d00112581020f7547e0b956406abc9c56b8 -re43f4bf3f03c8566f64f02cac30dd9444f6dfa34 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/IO/NumericsSettingsCsvReader.cs (.../NumericsSettingsCsvReader.cs) (revision 5c026d00112581020f7547e0b956406abc9c56b8) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/IO/NumericsSettingsCsvReader.cs (.../NumericsSettingsCsvReader.cs) (revision e43f4bf3f03c8566f64f02cac30dd9444f6dfa34) @@ -21,23 +21,15 @@ using System; using System.Collections.Generic; -using System.Globalization; -using System.Linq; using Ringtoets.HydraRing.Calculation.Data.Settings; namespace Ringtoets.HydraRing.Calculation.IO { /// /// The reader for the in csv format. /// - internal class NumericsSettingsCsvReader + internal class NumericsSettingsCsvReader : HydraRingSettingsCsvReader>>> { - private const char separator = ';'; - - private readonly string fileContents; - - private readonly IDictionary>> settings = new Dictionary>>(); - private readonly Dictionary columns = new Dictionary { { @@ -98,56 +90,32 @@ /// /// The file to read. /// Thrown when is not set. - public NumericsSettingsCsvReader(string file) - { - if (string.IsNullOrEmpty(file)) - { - throw new ArgumentNullException("file", @"A file must be set."); - } + public NumericsSettingsCsvReader(string file) : base(file, new Dictionary>>()) {} - fileContents = file; - } - - /// - /// Reads the settings from the file. - /// - /// A with the settings. - public IDictionary>> ReadSettings() + protected override void CreateSetting(IList line) { - string[] lines = fileContents.Split('\n'); - - foreach (string line in lines.Skip(1).Where(s => !string.IsNullOrEmpty(s))) - { - CreateSetting(TokenizeString(line)); - } - - return settings; - } - - private void CreateSetting(IList line) - { // Get failure mechanism - int failureMechanismType = GetFailureMechanismType(line); + var failureMechanismType = GetFailureMechanismType(line); - if (!settings.ContainsKey(failureMechanismType)) + if (!Settings.ContainsKey(failureMechanismType)) { - settings.Add(failureMechanismType, new Dictionary>()); + Settings.Add(failureMechanismType, new Dictionary>()); } // Get sub mechanism - int subMechanism = GetSubMechanismType(line); + var subMechanism = GetSubMechanismType(line); - if (!settings[failureMechanismType].ContainsKey(subMechanism)) + if (!Settings[failureMechanismType].ContainsKey(subMechanism)) { - settings[failureMechanismType].Add(subMechanism, new Dictionary()); + Settings[failureMechanismType].Add(subMechanism, new Dictionary()); } // Get TrajectId - string ringId = GetRingId(line); + var ringId = GetRingId(line); - if (!settings[failureMechanismType][subMechanism].ContainsKey(ringId)) + if (!Settings[failureMechanismType][subMechanism].ContainsKey(ringId)) { - settings[failureMechanismType][subMechanism].Add(ringId, GetNumericSettings(line)); + Settings[failureMechanismType][subMechanism].Add(ringId, GetNumericSettings(line)); } } @@ -163,49 +131,27 @@ private string GetRingId(IList line) { - return line[columns[ringIdKey]].Trim().Replace("\"", ""); + return GetStringValueFromElement(line[columns[ringIdKey]]); } private NumericsSettings GetNumericSettings(IList line) { return new NumericsSettings(GetIntValueFromElement(line[columns[calculationMethodKey]]), - GetIntValueFromElement(line[columns[formStartMethodKey]]), - GetIntValueFromElement(line[columns[formIterationsKey]]), - GetDoubleValueFromElement(line[columns[formRelaxationFactorKey]]), - GetDoubleValueFromElement(line[columns[formEpsBetaKey]]), - GetDoubleValueFromElement(line[columns[formEpsHohKey]]), - GetDoubleValueFromElement(line[columns[formEpsZFuncKey]]), - GetIntValueFromElement(line[columns[dsStartMethodKey]]), - GetIntValueFromElement(line[columns[dsMinNumberOfIterationsKey]]), - GetIntValueFromElement(line[columns[dsMaxNumberOfIterationsKey]]), - GetDoubleValueFromElement(line[columns[dsVarCoefficientKey]]), - GetDoubleValueFromElement(line[columns[niUMinKey]]), - GetDoubleValueFromElement(line[columns[niUMaxKey]]), - GetIntValueFromElement(line[columns[niNumberStepsKey]])); + GetIntValueFromElement(line[columns[formStartMethodKey]]), + GetIntValueFromElement(line[columns[formIterationsKey]]), + GetDoubleValueFromElement(line[columns[formRelaxationFactorKey]]), + GetDoubleValueFromElement(line[columns[formEpsBetaKey]]), + GetDoubleValueFromElement(line[columns[formEpsHohKey]]), + GetDoubleValueFromElement(line[columns[formEpsZFuncKey]]), + GetIntValueFromElement(line[columns[dsStartMethodKey]]), + GetIntValueFromElement(line[columns[dsMinNumberOfIterationsKey]]), + GetIntValueFromElement(line[columns[dsMaxNumberOfIterationsKey]]), + GetDoubleValueFromElement(line[columns[dsVarCoefficientKey]]), + GetDoubleValueFromElement(line[columns[niUMinKey]]), + GetDoubleValueFromElement(line[columns[niUMaxKey]]), + GetIntValueFromElement(line[columns[niNumberStepsKey]])); } - private static int GetIntValueFromElement(string element) - { - return int.Parse(element.Trim()); - } - - private static double GetDoubleValueFromElement(string element) - { - return double.Parse(element.Trim(), CultureInfo.InvariantCulture); - } - - private string[] TokenizeString(string readText) - { - if (!readText.Contains(separator)) - { - return new string[] - {}; - } - return readText.Split(separator) - .TakeWhile(text => !string.IsNullOrEmpty(text)) - .ToArray(); - } - #region Csv column names private const string ringIdKey = "TrajectID"; Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj =================================================================== diff -u -r4b712f1a6620a7df1fb982ca2612a1726a250c03 -re43f4bf3f03c8566f64f02cac30dd9444f6dfa34 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj (.../Ringtoets.HydraRing.Calculation.csproj) (revision 4b712f1a6620a7df1fb982ca2612a1726a250c03) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj (.../Ringtoets.HydraRing.Calculation.csproj) (revision e43f4bf3f03c8566f64f02cac30dd9444f6dfa34) @@ -68,6 +68,7 @@ + Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/IO/DesignTableSettingsCsvReaderTest.cs =================================================================== diff -u -r5c026d00112581020f7547e0b956406abc9c56b8 -re43f4bf3f03c8566f64f02cac30dd9444f6dfa34 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/IO/DesignTableSettingsCsvReaderTest.cs (.../DesignTableSettingsCsvReaderTest.cs) (revision 5c026d00112581020f7547e0b956406abc9c56b8) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/IO/DesignTableSettingsCsvReaderTest.cs (.../DesignTableSettingsCsvReaderTest.cs) (revision e43f4bf3f03c8566f64f02cac30dd9444f6dfa34) @@ -36,13 +36,13 @@ private readonly string testDataPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.HydraRing.Calculation, "Settings"); [Test] - public void Constructor_PathSet_DoesNotThrowArgumentNullException() + public void Constructor_ExpectedSettings() { // Call - TestDelegate call = () => new DesignTableSettingsCsvReader("path.csv"); + DesignTableSettingsCsvReader reader = new DesignTableSettingsCsvReader("path.csv"); // Assert - Assert.DoesNotThrow(call); + Assert.IsInstanceOf>>>(reader); } [Test] Fisheye: Tag 67aa825f436900190ff7324c7ad0d30338dda6ff refers to a dead (removed) revision in file `Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/IO/HydraRingSettingsCsvReaderTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/IO/NumericSettingsCsvReaderTest.cs =================================================================== diff -u -r1a0ff933f6b5e06d3f7376652c88c068f9610a92 -re43f4bf3f03c8566f64f02cac30dd9444f6dfa34 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/IO/NumericSettingsCsvReaderTest.cs (.../NumericSettingsCsvReaderTest.cs) (revision 1a0ff933f6b5e06d3f7376652c88c068f9610a92) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/IO/NumericSettingsCsvReaderTest.cs (.../NumericSettingsCsvReaderTest.cs) (revision e43f4bf3f03c8566f64f02cac30dd9444f6dfa34) @@ -35,13 +35,13 @@ private readonly string testDataPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.HydraRing.Calculation, "Settings"); [Test] - public void Constructor_PathSet_DoesNotThrowArgumentNullException() + public void Constructor_ExpectedValues() { // Call - TestDelegate call = () => new NumericsSettingsCsvReader("path.csv"); + NumericsSettingsCsvReader reader = new NumericsSettingsCsvReader("path.csv"); // Assert - Assert.DoesNotThrow(call); + Assert.IsInstanceOf>>>>(reader); } [Test] Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj =================================================================== diff -u -r4b712f1a6620a7df1fb982ca2612a1726a250c03 -re43f4bf3f03c8566f64f02cac30dd9444f6dfa34 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj (.../Ringtoets.HydraRing.Calculation.Test.csproj) (revision 4b712f1a6620a7df1fb982ca2612a1726a250c03) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj (.../Ringtoets.HydraRing.Calculation.Test.csproj) (revision e43f4bf3f03c8566f64f02cac30dd9444f6dfa34) @@ -75,6 +75,7 @@ +