Exemple #1
0
        public void Import_ValidConfigurationOnlyCriticalFlowRateMeanSet_DataAddedToModel()
        {
            // Setup
            string filePath = Path.Combine(importerPath, "validConfigurationCriticalFlowRateMeanOnly.xml");

            var          calculationGroup = new CalculationGroup();
            const double norm             = 0.01;

            var importer = new GrassCoverErosionInwardsCalculationConfigurationImporter(
                filePath,
                calculationGroup,
                new FailureMechanismContribution(norm, 0.001),
                Enumerable.Empty <HydraulicBoundaryLocation>(),
                Enumerable.Empty <DikeProfile>());

            // Call
            bool successful = importer.Import();

            // Assert
            Assert.IsTrue(successful);

            var expectedCalculation = new GrassCoverErosionInwardsCalculationScenario
            {
                Name            = "Berekening 1",
                InputParameters =
                {
                    CriticalFlowRate                 =
                    {
                        Mean                         = (RoundedDouble)2.0
                    },
                    DikeHeightTargetProbability      = norm,
                    OvertoppingRateTargetProbability = norm
                }
            };

            Assert.AreEqual(1, calculationGroup.Children.Count);
            AssertCalculationScenario(expectedCalculation, (GrassCoverErosionInwardsCalculationScenario)calculationGroup.Children[0]);
        }
Exemple #2
0
        public void Import_ScenarioWithRelevantSet_DataAddedToModel()
        {
            // Setup
            string filePath = Path.Combine(importerPath, "validConfigurationScenarioRelevantOnly.xml");

            var          calculationGroup = new CalculationGroup();
            const double norm             = 0.01;

            var importer = new GrassCoverErosionInwardsCalculationConfigurationImporter(
                filePath,
                calculationGroup,
                new FailureMechanismContribution(norm, 0.001),
                Enumerable.Empty <HydraulicBoundaryLocation>(),
                Enumerable.Empty <DikeProfile>());

            // Call
            var successful = false;

            void Call() => successful = importer.Import();

            // Assert
            TestHelper.AssertLogMessageIsGenerated(Call, $"Gegevens zijn geïmporteerd vanuit bestand '{filePath}'.", 1);
            Assert.IsTrue(successful);

            var expectedCalculation = new GrassCoverErosionInwardsCalculationScenario
            {
                Name            = "Calculation",
                IsRelevant      = false,
                InputParameters =
                {
                    DikeHeightTargetProbability      = norm,
                    OvertoppingRateTargetProbability = norm
                }
            };

            Assert.AreEqual(1, calculationGroup.Children.Count);
            AssertCalculationScenario(expectedCalculation, (GrassCoverErosionInwardsCalculationScenario)calculationGroup.Children[0]);
        }
Exemple #3
0
        public void Import_ValidConfigurationWithValidData_DataAddedToModel()
        {
            // Setup
            string filePath = Path.Combine(importerPath, "validConfigurationFullCalculation.xml");

            var calculationGroup          = new CalculationGroup();
            var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "Locatie", 10, 20);
            var dikeProfile = new DikeProfile(new Point2D(0, 0), new[]
            {
                new RoughnessPoint(new Point2D(0, 0), 2.1),
                new RoughnessPoint(new Point2D(1, 1), 3.9),
                new RoughnessPoint(new Point2D(2, 2), 5.2)
            }, new[]
            {
                new Point2D(1, 0),
                new Point2D(3, 4),
                new Point2D(6, 5)
            }, new BreakWater(BreakWaterType.Caisson, 0), new DikeProfile.ConstructionProperties
            {
                Id         = "Dijkprofiel ID",
                Name       = "Dijkprofiel",
                DikeHeight = 3.45
            });

            var importer = new GrassCoverErosionInwardsCalculationConfigurationImporter(
                filePath,
                calculationGroup,
                new FailureMechanismContribution(0.01, 0.001),
                new[]
            {
                hydraulicBoundaryLocation
            },
                new[]
            {
                dikeProfile
            });

            // Call
            var successful = false;

            void Call() => successful = importer.Import();

            // Assert
            TestHelper.AssertLogMessageIsGenerated(Call, $"Gegevens zijn geïmporteerd vanuit bestand '{filePath}'.", 1);

            Assert.IsTrue(successful);

            var expectedCalculation = new GrassCoverErosionInwardsCalculationScenario
            {
                Name            = "Berekening 1",
                InputParameters =
                {
                    HydraulicBoundaryLocation                             = hydraulicBoundaryLocation,
                    DikeProfile   = dikeProfile,
                    Orientation   = (RoundedDouble)5.5,
                    UseForeshore  = true,
                    UseBreakWater = true,
                    BreakWater    =
                    {
                        Height = (RoundedDouble)6.6,
                        Type   = BreakWaterType.Caisson
                    },
                    CriticalFlowRate                                      =
                    {
                        Mean                                              = (RoundedDouble)2.0,
                        StandardDeviation                                 = (RoundedDouble)1.1
                    },
                    ShouldOvertoppingOutputIllustrationPointsBeCalculated = true,
                    ShouldDikeHeightBeCalculated = true,
                    DikeHeightTargetProbability  =                      0.05,
                    ShouldDikeHeightIllustrationPointsBeCalculated        = false,
                    ShouldOvertoppingRateBeCalculated = false,
                    OvertoppingRateTargetProbability  =                     0.007,
                    ShouldOvertoppingRateIllustrationPointsBeCalculated   = true
                },
                IsRelevant   = true,
                Contribution = (RoundedDouble)0.5432
            };

            Assert.AreEqual(1, calculationGroup.Children.Count);
            AssertCalculationScenario(expectedCalculation, (GrassCoverErosionInwardsCalculationScenario)calculationGroup.Children[0]);
        }