Esempio n. 1
0
        public void Read_ValidEntityWithUnreadDikeProfileEntity_ReturnCalculationWithNewDikeProfile()
        {
            // Setup
            var dikeProfileEntity = new DikeProfileEntity
            {
                Id = "a",
                DikeGeometryXml = new RoughnessPointCollectionXmlSerializer().ToXml(new RoughnessPoint[0]),
                ForeshoreXml    = new Point2DCollectionXmlSerializer().ToXml(new Point2D[0])
            };
            var entity = new GrassCoverErosionInwardsCalculationEntity
            {
                DikeProfileEntity                = dikeProfileEntity,
                ScenarioContribution             = 0,
                DikeHeightTargetProbability      = 0.01,
                OvertoppingRateTargetProbability = 0.02
            };

            var collector = new ReadConversionCollector();

            // Call
            GrassCoverErosionInwardsCalculationScenario calculation = entity.Read(collector);

            // Assert
            Assert.IsNotNull(calculation.InputParameters.DikeProfile);
            Assert.IsTrue(collector.Contains(dikeProfileEntity));
        }
Esempio n. 2
0
        public void Read_ReadConversionCollectorNull_ThrowArgumentNullException()
        {
            // Setup
            var entity = new GrassCoverErosionInwardsCalculationEntity();

            // Call
            void Call() => entity.Read(null);

            // Assert
            var exception = Assert.Throws <ArgumentNullException>(Call);

            Assert.AreEqual("collector", exception.ParamName);
        }
Esempio n. 3
0
        public void Read_ValidEntityWithUnreadHydraulicLocationEntity_ReturnCalculationWithNewHydraulicBoundaryLocation()
        {
            // Setup
            HydraulicLocationEntity hydraulicLocationEntity = HydraulicLocationEntityTestFactory.CreateHydraulicLocationEntity();
            var entity = new GrassCoverErosionInwardsCalculationEntity
            {
                HydraulicLocationEntity          = hydraulicLocationEntity,
                ScenarioContribution             = 0,
                DikeHeightTargetProbability      = 0.01,
                OvertoppingRateTargetProbability = 0.02
            };

            var collector = new ReadConversionCollector();

            // Call
            GrassCoverErosionInwardsCalculationScenario calculation = entity.Read(collector);

            // Assert
            Assert.IsNotNull(calculation.InputParameters.HydraulicBoundaryLocation);
            Assert.IsTrue(collector.Contains(hydraulicLocationEntity));
        }
Esempio n. 4
0
        public void Read_ValidEntityWithOutputEntity_ReturnCalculationWithOutput()
        {
            // Setup
            var entity = new GrassCoverErosionInwardsCalculationEntity
            {
                GrassCoverErosionInwardsOutputEntities =
                {
                    new GrassCoverErosionInwardsOutputEntity()
                },
                ScenarioContribution             = 0,
                DikeHeightTargetProbability      = 0.01,
                OvertoppingRateTargetProbability = 0.02
            };

            var collector = new ReadConversionCollector();

            // Call
            GrassCoverErosionInwardsCalculationScenario calculation = entity.Read(collector);

            // Assert
            Assert.IsTrue(calculation.HasOutput);
        }
Esempio n. 5
0
        public void Read_EntityWithNullValues_ReturnCalculationWithNaNOrNull()
        {
            // Setup
            var entity = new GrassCoverErosionInwardsCalculationEntity
            {
                Name = null,
                ScenarioContribution = 0,
                Comments             = null,
                Orientation          = null,
                CriticalFlowRateMean = null,
                CriticalFlowRateStandardDeviation = null,
                DikeHeight                       = null,
                BreakWaterHeight                 = null,
                DikeHeightTargetProbability      = 0.01,
                OvertoppingRateTargetProbability = 0.02
            };

            var collector = new ReadConversionCollector();

            // Call
            GrassCoverErosionInwardsCalculationScenario calculation = entity.Read(collector);

            // Assert
            Assert.IsNull(calculation.Name);
            Assert.IsNull(calculation.Comments.Body);

            GrassCoverErosionInwardsInput input = calculation.InputParameters;

            Assert.IsNaN(input.Orientation);
            Assert.IsNaN(input.CriticalFlowRate.Mean);
            Assert.IsNaN(input.CriticalFlowRate.StandardDeviation);
            Assert.IsNaN(input.DikeHeight);
            Assert.IsNaN(input.BreakWater.Height.Value);

            Assert.IsNull(input.DikeProfile);
            Assert.IsNull(input.HydraulicBoundaryLocation);
            Assert.IsFalse(calculation.HasOutput);
        }
Esempio n. 6
0
        public void Read_ValidEntityWithAlreadyReadHydraulicLocationEntity_ReturnCalculationWithReadHydraulicBoundaryLocation()
        {
            // Setup
            var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "A", 0, 0);
            var hydraulicLocationEntity   = new HydraulicLocationEntity();
            var entity = new GrassCoverErosionInwardsCalculationEntity
            {
                HydraulicLocationEntity          = hydraulicLocationEntity,
                ScenarioContribution             = 0,
                DikeHeightTargetProbability      = 0.01,
                OvertoppingRateTargetProbability = 0.02
            };

            var collector = new ReadConversionCollector();

            collector.Read(hydraulicLocationEntity, hydraulicBoundaryLocation);

            // Call
            GrassCoverErosionInwardsCalculationScenario calculation = entity.Read(collector);

            // Assert
            Assert.AreSame(hydraulicBoundaryLocation, calculation.InputParameters.HydraulicBoundaryLocation);
        }
Esempio n. 7
0
        public void Read_ValidEntityWithAlreadyReadDikeProfileEntity_ReturnCalculationWithReadDikeProfile()
        {
            // Setup
            DikeProfile dikeProfile       = DikeProfileTestFactory.CreateDikeProfile();
            var         dikeProfileEntity = new DikeProfileEntity();
            var         entity            = new GrassCoverErosionInwardsCalculationEntity
            {
                DikeProfileEntity                = dikeProfileEntity,
                ScenarioContribution             = 0,
                DikeHeightTargetProbability      = 0.01,
                OvertoppingRateTargetProbability = 0.02
            };

            var collector = new ReadConversionCollector();

            collector.Read(dikeProfileEntity, dikeProfile);

            // Call
            GrassCoverErosionInwardsCalculationScenario calculation = entity.Read(collector);

            // Assert
            Assert.AreSame(dikeProfile, calculation.InputParameters.DikeProfile);
        }
Esempio n. 8
0
        public void Read_ValidEntity_ReturnCalculation()
        {
            // Setup
            var random         = new Random(14);
            var breakWaterType = random.NextEnumValue <BreakWaterType>();
            var entity         = new GrassCoverErosionInwardsCalculationEntity
            {
                Name     = "sodhfksn",
                Comments = "s;ohfgwjo5p09u",
                HydraulicLocationEntity           = null,
                DikeProfileEntity                 = null,
                Orientation                       = 5.6,
                CriticalFlowRateMean              = 3.4,
                CriticalFlowRateStandardDeviation = 1.2,
                UseForeshore                      = Convert.ToByte(random.NextBoolean()),
                DikeHeight       = 2.3,
                UseBreakWater    = Convert.ToByte(random.NextBoolean()),
                BreakWaterType   = Convert.ToByte(breakWaterType),
                BreakWaterHeight = 5.7,
                ShouldOvertoppingOutputIllustrationPointsBeCalculated = Convert.ToByte(random.NextBoolean()),
                ShouldDikeHeightBeCalculated = Convert.ToByte(random.NextBoolean()),
                DikeHeightTargetProbability  = 0.01,
                ShouldDikeHeightIllustrationPointsBeCalculated = Convert.ToByte(random.NextBoolean()),
                ShouldOvertoppingRateBeCalculated = Convert.ToByte(random.NextBoolean()),
                OvertoppingRateTargetProbability  = 0.02,
                ShouldOvertoppingRateIllustrationPointsBeCalculated = Convert.ToByte(random.NextBoolean()),
                RelevantForScenario  = Convert.ToByte(random.NextBoolean()),
                ScenarioContribution = 0.45
            };

            var collector = new ReadConversionCollector();

            // Call
            GrassCoverErosionInwardsCalculationScenario calculation = entity.Read(collector);

            // Assert
            Assert.AreEqual(entity.Name, calculation.Name);
            Assert.AreEqual(entity.Comments, calculation.Comments.Body);
            AssertBoolean(entity.RelevantForScenario, calculation.IsRelevant);
            RoundedDoubleTestHelper.AssertRoundedDouble(entity.ScenarioContribution, calculation.Contribution);

            GrassCoverErosionInwardsInput input = calculation.InputParameters;

            Assert.AreEqual(entity.Orientation, input.Orientation.Value);
            Assert.AreEqual(entity.CriticalFlowRateMean, input.CriticalFlowRate.Mean.Value);
            Assert.AreEqual(entity.CriticalFlowRateStandardDeviation, input.CriticalFlowRate.StandardDeviation.Value);
            AssertBoolean(entity.UseForeshore, input.UseForeshore);
            Assert.AreEqual(entity.DikeHeight, input.DikeHeight.Value);
            AssertBoolean(entity.UseBreakWater, input.UseBreakWater);
            Assert.AreEqual(breakWaterType, input.BreakWater.Type);
            Assert.AreEqual(entity.BreakWaterHeight, input.BreakWater.Height.Value);
            AssertBoolean(entity.ShouldOvertoppingOutputIllustrationPointsBeCalculated,
                          input.ShouldOvertoppingOutputIllustrationPointsBeCalculated);

            AssertBoolean(entity.ShouldDikeHeightBeCalculated, input.ShouldDikeHeightBeCalculated);
            Assert.AreEqual(entity.DikeHeightTargetProbability, input.DikeHeightTargetProbability);
            AssertBoolean(entity.ShouldDikeHeightIllustrationPointsBeCalculated,
                          input.ShouldDikeHeightIllustrationPointsBeCalculated);
            AssertBoolean(entity.ShouldOvertoppingRateBeCalculated, input.ShouldOvertoppingRateBeCalculated);
            Assert.AreEqual(entity.OvertoppingRateTargetProbability, input.OvertoppingRateTargetProbability);
            AssertBoolean(entity.ShouldOvertoppingRateIllustrationPointsBeCalculated,
                          input.ShouldOvertoppingRateIllustrationPointsBeCalculated);

            Assert.IsNull(input.DikeProfile);
            Assert.IsNull(input.HydraulicBoundaryLocation);
            Assert.IsFalse(calculation.HasOutput);
        }