public void Parse_WorkingDirectoryNull_ThrowsArgumentNullException() { // Setup var parser = new IllustrationPointsParser(); // Call TestDelegate test = () => parser.Parse(null, 0); // Assert Assert.Throws <ArgumentNullException>(test); }
public void Parse_NoGoverningWindDirection_ThrowsHydraRingFileParserException() { // Setup string path = Path.Combine(testDirectory, "NoGoverningWindDirection"); var parser = new IllustrationPointsParser(); // Call TestDelegate test = () => parser.Parse(path, 1); // Assert var exception = Assert.Throws <HydraRingFileParserException>(test); Assert.AreEqual("Er is geen maatgevende windrichting gevonden in de uitvoer database.", exception.Message); }
public void Parse_ValidDataForOtherSection_SectionIdIgnoredOutputRead() { // Setup string path = Path.Combine(testDirectory, "ValidStructuresStabilityOutputSection1"); var parser = new IllustrationPointsParser(); // Call parser.Parse(path, 2); // Assert GeneralResult generalResult = parser.Output; Assert.NotNull(generalResult); }
public void Parse_NoGeneralResultBetaValue_ThrowsHydraRingFileParserException() { // Setup string path = Path.Combine(testDirectory, "NoBetaGeneralResult"); var parser = new IllustrationPointsParser(); // Call TestDelegate test = () => parser.Parse(path, 1); // Assert var exception = Assert.Throws <HydraRingFileParserException>(test); Assert.AreEqual("Geen waarde voor de betrouwbaarheidsindex voor het algemene resultaat gevonden in de uitvoer database.", exception.Message); }
public void Parse_MultipleBetaValues_ThrowsHydraRingFileParserException(string workingDirectory) { // Setup string path = Path.Combine(testDirectory, workingDirectory); var parser = new IllustrationPointsParser(); // Call TestDelegate test = () => parser.Parse(path, 1); // Assert var exception = Assert.Throws <HydraRingFileParserException>(test); Assert.AreEqual("Meerdere waarden voor de betrouwbaarheidsindex voor 1 illustratiepunt gevonden in de uitvoer database.", exception.Message); }
public void Parse_ValidDesignWaterLevelData_SetsGeneralResultAndSubMechanismOutputForAWindDirectionAsExpected() { // Setup string path = Path.Combine(testDirectory, "ValidDesignWaterLevelOutputSection1"); var parser = new IllustrationPointsParser(); // Call parser.Parse(path, 1); // Assert GeneralResult generalResult = parser.Output; Assert.NotNull(generalResult); Assert.NotNull(generalResult.GoverningWindDirection); Assert.AreEqual(112.5, generalResult.GoverningWindDirection.Angle); Assert.AreEqual("OZO", generalResult.GoverningWindDirection.Name); Assert.AreEqual(3.4037, generalResult.Beta); Assert.AreEqual(6, generalResult.Stochasts.Count()); Dictionary <WindDirectionClosingSituation, IllustrationPointTreeNode> illustrationPointNodes = generalResult.IllustrationPoints; Assert.AreEqual(16, illustrationPointNodes.Count); CollectionAssert.AllItemsAreInstancesOfType(illustrationPointNodes.Values.Select(ip => ip.Data), typeof(SubMechanismIllustrationPoint)); ICollection <FaultTreeIllustrationPoint> faultTrees = new List <FaultTreeIllustrationPoint>(); ICollection <SubMechanismIllustrationPoint> subMechanisms = new List <SubMechanismIllustrationPoint>(); GetAllNodes(illustrationPointNodes.Values.ElementAt(4), faultTrees, subMechanisms); CollectionAssert.IsEmpty(faultTrees); SubMechanismIllustrationPoint subMechanismIllustrationPoint = subMechanisms.Single(); Assert.AreEqual(5.30273, subMechanismIllustrationPoint.Beta); Assert.AreEqual("Reference water level", subMechanismIllustrationPoint.Name); Assert.AreEqual(new[] { Tuple.Create("Windrichting", 0.0, 12.0, 0.0), Tuple.Create("Waterstand IJsselmeer", -0.575813, 96.0, 0.464036), Tuple.Create("Windsnelheid Schiphol 16 richtingen", -0.749296, 12.0, 19.289), Tuple.Create("Onzekerheid waterstand IJsselmeer", -0.0695709, 96.0, 0.0146771), Tuple.Create("Onzekerheid windsnelheid Schiphol 16 richtingen", -0.121567, 12.0, 1.0303), Tuple.Create("Modelonzekerheid lokale waterstand", -0.295595, 4383.0, 0.235119) }, subMechanismIllustrationPoint.Stochasts.Select(s => Tuple.Create(s.Name, s.Alpha, s.Duration, s.Realization))); Assert.AreEqual(new[] { Tuple.Create("Z", -0.00136652, "-"), Tuple.Create("Considered water level", 1.24846, "m+NAP"), Tuple.Create("Computed local water level", 1.24983, "m+NAP") }, subMechanismIllustrationPoint.Results.Select(s => Tuple.Create(s.Description, s.Value, s.Unit))); }
public void Parse_WithWorkingDirectoryWithEmptyFile_ThrowsHydraRingFileParserException() { // Setup string path = Path.Combine(testDirectory, "EmptyDatabase"); var parser = new IllustrationPointsParser(); // Call TestDelegate test = () => parser.Parse(path, 1); // Assert var exception = Assert.Throws <HydraRingFileParserException>(test); Assert.AreEqual("Er konden geen illustratiepunten worden uitgelezen.", exception.Message); Assert.IsInstanceOf <SQLiteException>(exception.InnerException); }
public void Parse_ValueNullInDatabase_ThrowsHydraRingFileParserException(string directoryIdentifier, string identifier) { // Setup string path = Path.Combine(testDirectory, $"Null{directoryIdentifier}"); var parser = new IllustrationPointsParser(); // Call TestDelegate test = () => parser.Parse(path, 1); // Assert var exception = Assert.Throws <HydraRingFileParserException>(test); Assert.AreEqual($"Er is geen waarde gevonden voor kolom '{identifier}' tijdens het " + "uitlezen van de illustratiepunten in de uitvoer database.", exception.Message); }
/// <summary> /// Executes the generic parsers of the calculation. /// </summary> /// <param name="hydraRingInitializationService">The <see cref="HydraRingInitializationService"/> to get the directory from.</param> /// <param name="sectionId">The id of the section of the calculation.</param> /// <exception cref="HydraRingFileParserException">Thrown when the HydraRing file parser /// encounters an error while parsing HydraRing output.</exception> /// <remarks>The <see cref="IllustrationPointsResult"/> is set to <c>null</c> when the <see cref="illustrationPointsParser"/> /// encounters an error.</remarks> private void ExecuteGenericParsers(HydraRingInitializationService hydraRingInitializationService, int sectionId) { lastErrorFileParser.Parse(hydraRingInitializationService.TemporaryWorkingDirectory, sectionId); LastErrorFileContent = lastErrorFileParser.ErrorFileContent; try { illustrationPointsParser.Parse(hydraRingInitializationService.TemporaryWorkingDirectory, sectionId); IllustrationPointsResult = illustrationPointsParser.Output; } catch (HydraRingFileParserException e) { IllustrationPointsParserErrorMessage = e.Message; IllustrationPointsResult = null; } }
public void Parse_ValidSubMechanismsMissingWindDirectionClosingSituationCombinations_SubMechanismsNotPartOfResult() { // Setup string path = Path.Combine(testDirectory, "MissingWindDirectionClosingSituationSubMechanism"); var parser = new IllustrationPointsParser(); // Call parser.Parse(path, 1); // Assert GeneralResult generalResult = parser.Output; Assert.NotNull(generalResult); Assert.NotNull(generalResult.GoverningWindDirection); Assert.AreEqual(315.0, generalResult.GoverningWindDirection.Angle); Assert.AreEqual("NW", generalResult.GoverningWindDirection.Name); Assert.AreEqual(4.26568, generalResult.Beta); Assert.AreEqual(9, generalResult.Stochasts.Count()); Dictionary <WindDirectionClosingSituation, IllustrationPointTreeNode> illustrationPointNodes = generalResult.IllustrationPoints; AssertWindDirectionClosingSituationKeysForAssessmentSection14Dash2(illustrationPointNodes); }
public void Parse_ValidStructuresStabilityData_SetsOutputAsExpected() { // Setup string path = Path.Combine(testDirectory, "ValidStructuresStabilityOutputSection1"); var parser = new IllustrationPointsParser(); // Call parser.Parse(path, 1); // Assert GeneralResult generalResult = parser.Output; Assert.NotNull(generalResult); Assert.NotNull(generalResult.GoverningWindDirection); Assert.AreEqual(30, generalResult.GoverningWindDirection.Angle); Assert.AreEqual(" 30", generalResult.GoverningWindDirection.Name); Assert.AreEqual(-3.74187, generalResult.Beta); Assert.AreEqual(44, generalResult.Stochasts.Count()); Dictionary <WindDirectionClosingSituation, IllustrationPointTreeNode> illustrationPointNodes = generalResult.IllustrationPoints; Assert.AreEqual(12, illustrationPointNodes.Count); CollectionAssert.AllItemsAreInstancesOfType(illustrationPointNodes.Values.Select(ip => ip.Data), typeof(FaultTreeIllustrationPoint)); ICollection <FaultTreeIllustrationPoint> faultTrees = new List <FaultTreeIllustrationPoint>(); ICollection <SubMechanismIllustrationPoint> subMechanisms = new List <SubMechanismIllustrationPoint>(); GetAllNodes(illustrationPointNodes.Values.First(), faultTrees, subMechanisms); Assert.AreEqual(11, faultTrees.Count); Assert.AreEqual(new[] { CombinationType.Or, CombinationType.Or, CombinationType.And, CombinationType.And, CombinationType.Or, CombinationType.And, CombinationType.And, CombinationType.And, CombinationType.Or, CombinationType.And, CombinationType.And }, faultTrees.Select(f => f.CombinationType)); Assert.AreEqual(12, subMechanisms.Count); SubMechanismIllustrationPoint subMechanismIllustrationPoint = subMechanisms.First(); Assert.AreEqual("Bezwijken kunstwerk als gevolg van erosie bodem", subMechanismIllustrationPoint.Name); Assert.AreEqual(-7.94268, subMechanismIllustrationPoint.Beta); Assert.AreEqual(new[] { Tuple.Create("Faalkans gegeven erosie bodem", -1.0, 4383.0, -7.94268) }, subMechanismIllustrationPoint.Stochasts.Select(s => Tuple.Create(s.Name, s.Alpha, s.Duration, s.Realization))); CollectionAssert.IsEmpty(subMechanismIllustrationPoint.Results); FaultTreeIllustrationPoint faultTreeIllustrationPoint = faultTrees.First(); Assert.AreEqual("Bezwijken kunstwerk als gevolg van erosie bodem", subMechanismIllustrationPoint.Name); Assert.AreEqual(0.508398, faultTreeIllustrationPoint.Beta); Assert.AreEqual(CombinationType.Or, faultTreeIllustrationPoint.CombinationType); Assert.AreEqual(44, faultTreeIllustrationPoint.Stochasts.Count()); Assert.AreEqual(new[] { Tuple.Create("Kerende hoogte", 0.0, 4383.0), Tuple.Create("Modelfactor voor onvolkomen stroming", 0.0, 4383.0), Tuple.Create("Drempelhoogte", 0.0, 4383.0), Tuple.Create("Afvoercoefficient", -3.91812E-07, 4383.0), Tuple.Create("Doorstroomoppervlak", 3.93695E-08, 4383.0), Tuple.Create("Lineaire belastingschematisering constructieve sterkte", 0.214064, 4383.0) }, faultTreeIllustrationPoint.Stochasts.Take(6).Select(s => Tuple.Create(s.Name, s.Alpha, s.Duration))); }