//----------------------------------------------------------------------- // // Copyright (c) 2009 Deltares. All rights reserved. // // B.S.T. The // tom.the@deltares.nl // 04-09-2009 // Class which calculates the predicted and monitored piping length //----------------------------------------------------------------------- using Deltares.Geometry; namespace Deltares.Dam.Tests { using System; using Deltares.Dam.Data; using NUnit.Framework; [TestFixture] public class GageDikeCalculatorTest { [Test] public void CanCalculatePredictedPipingLengthForExperiment1() { const double cTolerance = 0.0001; var gageDikeCalculator = new GageDikeCalculator(); gageDikeCalculator.ijkdijkPipingLengthPredictionParameter = 0.66; Assert.AreEqual(0.0000, gageDikeCalculator.CalculatePredictedPipingLength(0.2).Value, cTolerance); Assert.AreEqual(0.0015, gageDikeCalculator.CalculatePredictedPipingLength(0.4).Value, cTolerance); Assert.AreEqual(0.0121, gageDikeCalculator.CalculatePredictedPipingLength(0.6).Value, cTolerance); Assert.AreEqual(0.0542, gageDikeCalculator.CalculatePredictedPipingLength(0.8).Value, cTolerance); Assert.AreEqual(0.1729, gageDikeCalculator.CalculatePredictedPipingLength(1.0).Value, cTolerance); Assert.AreEqual(0.4461, gageDikeCalculator.CalculatePredictedPipingLength(1.2).Value, cTolerance); Assert.AreEqual(0.9945, gageDikeCalculator.CalculatePredictedPipingLength(1.4).Value, cTolerance); Assert.AreEqual(1.9913, gageDikeCalculator.CalculatePredictedPipingLength(1.6).Value, cTolerance); Assert.AreEqual(3.6740, gageDikeCalculator.CalculatePredictedPipingLength(1.8).Value, cTolerance); Assert.AreEqual(6.3544, gageDikeCalculator.CalculatePredictedPipingLength(2.0).Value, cTolerance); Assert.AreEqual(10.4308, gageDikeCalculator.CalculatePredictedPipingLength(2.2).Value, cTolerance); Assert.AreEqual(16.3990, gageDikeCalculator.CalculatePredictedPipingLength(2.4).Value, cTolerance); Assert.AreEqual(24.8646, gageDikeCalculator.CalculatePredictedPipingLength(2.6).Value, cTolerance); Assert.AreEqual(36.5546, gageDikeCalculator.CalculatePredictedPipingLength(2.8).Value, cTolerance); Assert.AreEqual(52.3299, gageDikeCalculator.CalculatePredictedPipingLength(3.0).Value, cTolerance); } public void CanCalculatePredictedPipingLengthForExperiment2() { const double cTolerance = 0.0001; var gageDikeCalculator = new GageDikeCalculator(); gageDikeCalculator.ijkdijkPipingLengthPredictionParameter = 0.42; Assert.AreEqual(0.0000, gageDikeCalculator.CalculatePredictedPipingLength(0.2).Value, cTolerance); Assert.AreEqual(0.0001, gageDikeCalculator.CalculatePredictedPipingLength(0.4).Value, cTolerance); Assert.AreEqual(0.0012, gageDikeCalculator.CalculatePredictedPipingLength(0.6).Value, cTolerance); Assert.AreEqual(0.0052, gageDikeCalculator.CalculatePredictedPipingLength(0.8).Value, cTolerance); Assert.AreEqual(0.0165, gageDikeCalculator.CalculatePredictedPipingLength(1.0).Value, cTolerance); Assert.AreEqual(0.0425, gageDikeCalculator.CalculatePredictedPipingLength(1.2).Value, cTolerance); Assert.AreEqual(0.0948, gageDikeCalculator.CalculatePredictedPipingLength(1.4).Value, cTolerance); Assert.AreEqual(0.1899, gageDikeCalculator.CalculatePredictedPipingLength(1.6).Value, cTolerance); Assert.AreEqual(0.3503, gageDikeCalculator.CalculatePredictedPipingLength(1.8).Value, cTolerance); Assert.AreEqual(0.6058, gageDikeCalculator.CalculatePredictedPipingLength(2.0).Value, cTolerance); Assert.AreEqual(0.9945, gageDikeCalculator.CalculatePredictedPipingLength(2.2).Value, cTolerance); Assert.AreEqual(1.5635, gageDikeCalculator.CalculatePredictedPipingLength(2.4).Value, cTolerance); Assert.AreEqual(2.3705, gageDikeCalculator.CalculatePredictedPipingLength(2.6).Value, cTolerance); Assert.AreEqual(3.4851, gageDikeCalculator.CalculatePredictedPipingLength(2.8).Value, cTolerance); Assert.AreEqual(4.9891, gageDikeCalculator.CalculatePredictedPipingLength(3.0).Value, cTolerance); } [Test] public void CanCalculateMonitoredPipingLength() { const double cToleranceLength = 0.6; var headLine = new PolyLine(); headLine.Points.Add(new GeometryPoint(0.0000,0,0.0000)); headLine.Points.Add(new GeometryPoint(4.9000,0,0.8000)); headLine.Points.Add(new GeometryPoint(5.1000,0,0.7500)); headLine.Points.Add(new GeometryPoint(9.9000,0,1.3500)); headLine.Points.Add(new GeometryPoint(10.1000,0,1.4500)); headLine.Points.Add(new GeometryPoint(20.0000,0,3.7000)); headLine.Points.Add(new GeometryPoint(30.0000,0,5.9000)); headLine.Points.Add(new GeometryPoint(40.0000,0,8.0000)); var gageDikeCalculator = new GageDikeCalculator(); double? pipingLength = gageDikeCalculator.CalculateMonitoredPipingLength(headLine); Assert.AreEqual(19.2472, pipingLength.Value, cToleranceLength); } } }