Ejemplo n.º 1
0
        public void Constructor_WithParameters_ReturnsNewInstance()
        {
            // Setup
            var configuration = new ClosingStructuresCalculationConfiguration("name");
            var calculation   = new StructuresCalculation <ClosingStructuresInput>();

            // Call
            var assigner = new ClosingStructuresCalculationStochastAssigner(
                configuration,
                calculation);

            // Assert
            Assert.IsInstanceOf <StructuresCalculationStochastAssigner <
                                     ClosingStructuresCalculationConfiguration,
                                     ClosingStructuresInput, ClosingStructure> >(assigner);
        }
Ejemplo n.º 2
0
        private static void AssertConfiguration(ClosingStructuresCalculationConfiguration configuration)
        {
            Assert.AreEqual(67.1, configuration.StructureNormalOrientation);
            Assert.AreEqual("kunstwerk1", configuration.StructureId);
            Assert.AreEqual("Locatie1", configuration.HydraulicBoundaryLocationName);
            Assert.AreEqual("profiel1", configuration.ForeshoreProfileId);
            Assert.AreEqual(0.002, configuration.FactorStormDurationOpenStructure);
            Assert.AreEqual(0.03, configuration.ProbabilityOpenStructureBeforeFlooding);
            Assert.AreEqual(0.22, configuration.FailureProbabilityOpenStructure);
            Assert.AreEqual(0.0006, configuration.FailureProbabilityReparation);
            Assert.AreEqual(0.001, configuration.FailureProbabilityStructureWithErosion);
            Assert.AreEqual(4, configuration.IdenticalApertures);
            Assert.AreEqual(ConfigurationClosingStructureInflowModelType.VerticalWall, configuration.InflowModelType);

            Assert.AreEqual(1.1, configuration.DrainCoefficient.Mean);
            Assert.AreEqual(0.1, configuration.DrainCoefficient.StandardDeviation);
            Assert.AreEqual(0.5, configuration.InsideWaterLevel.Mean);
            Assert.AreEqual(0.1, configuration.InsideWaterLevel.StandardDeviation);
            Assert.AreEqual(80.5, configuration.AreaFlowApertures.Mean);
            Assert.AreEqual(1, configuration.AreaFlowApertures.StandardDeviation);
            Assert.AreEqual(1.2, configuration.ThresholdHeightOpenWeir.Mean);
            Assert.AreEqual(0.1, configuration.ThresholdHeightOpenWeir.StandardDeviation);
            Assert.AreEqual(4.3, configuration.LevelCrestStructureNotClosing.Mean);
            Assert.AreEqual(0.2, configuration.LevelCrestStructureNotClosing.StandardDeviation);

            Assert.AreEqual(0.2, configuration.AllowedLevelIncreaseStorage.Mean);
            Assert.AreEqual(0.01, configuration.AllowedLevelIncreaseStorage.StandardDeviation);
            Assert.AreEqual(2, configuration.CriticalOvertoppingDischarge.Mean);
            Assert.AreEqual(0.1, configuration.CriticalOvertoppingDischarge.VariationCoefficient);
            Assert.AreEqual(15.2, configuration.FlowWidthAtBottomProtection.Mean);
            Assert.AreEqual(0.1, configuration.FlowWidthAtBottomProtection.StandardDeviation);
            Assert.AreEqual(1.10, configuration.ModelFactorSuperCriticalFlow.Mean);
            Assert.AreEqual(0.12, configuration.ModelFactorSuperCriticalFlow.StandardDeviation);
            Assert.AreEqual(15000, configuration.StorageStructureArea.Mean);
            Assert.AreEqual(0.01, configuration.StorageStructureArea.VariationCoefficient);
            Assert.AreEqual(6.0, configuration.StormDuration.Mean);
            Assert.AreEqual(0.12, configuration.StormDuration.VariationCoefficient);
            Assert.AreEqual(15.2, configuration.WidthFlowApertures.Mean);
            Assert.AreEqual(0.1, configuration.WidthFlowApertures.StandardDeviation);

            Assert.AreEqual(ConfigurationBreakWaterType.Dam, configuration.WaveReduction.BreakWaterType);
            Assert.AreEqual(1.234, configuration.WaveReduction.BreakWaterHeight);
            Assert.IsTrue(configuration.WaveReduction.UseBreakWater);
            Assert.IsTrue(configuration.WaveReduction.UseForeshoreProfile);
            Assert.IsTrue(configuration.Scenario.IsRelevant);
            Assert.AreEqual(8.8, configuration.Scenario.Contribution);
        }
Ejemplo n.º 3
0
        public void Assign_WithoutStructureParametersDefinedForStructureDependentStochast_ReturnsFalse(
            Action <ClosingStructuresCalculationConfiguration> modify)
        {
            // Setup
            var configuration = new ClosingStructuresCalculationConfiguration("name");

            modify(configuration);

            var calculation = new StructuresCalculation <ClosingStructuresInput>();

            var assigner = new ClosingStructuresCalculationStochastAssigner(
                configuration,
                calculation);

            // Call
            bool valid = assigner.Assign();

            // Assert
            Assert.IsFalse(valid);
        }
Ejemplo n.º 4
0
        public void Constructor_WithName_ExpectedValues()
        {
            // Call
            var configuration = new ClosingStructuresCalculationConfiguration("some name");

            // Assert
            Assert.IsInstanceOf <StructuresCalculationConfiguration>(configuration);
            Assert.AreEqual("some name", configuration.Name);
            Assert.IsNull(configuration.InflowModelType);
            Assert.IsNull(configuration.InsideWaterLevel);
            Assert.IsNull(configuration.ModelFactorSuperCriticalFlow);
            Assert.IsNull(configuration.DrainCoefficient);
            Assert.IsNull(configuration.ThresholdHeightOpenWeir);
            Assert.IsNull(configuration.AreaFlowApertures);
            Assert.IsNull(configuration.LevelCrestStructureNotClosing);
            Assert.IsNull(configuration.IdenticalApertures);
            Assert.IsNull(configuration.FactorStormDurationOpenStructure);
            Assert.IsNull(configuration.FailureProbabilityOpenStructure);
            Assert.IsNull(configuration.FailureProbabilityReparation);
            Assert.IsNull(configuration.ProbabilityOpenStructureBeforeFlooding);
        }
Ejemplo n.º 5
0
        public void Assign_WithSpreadForModelFactorSuperCriticalFlow_LogsErrorReturnFalse(bool withStandardDeviation)
        {
            // Setup
            var configuration = new ClosingStructuresCalculationConfiguration("name")
            {
                StructureId = "some structure",
                ModelFactorSuperCriticalFlow = new StochastConfiguration
                {
                    Mean = 8.1
                }
            };

            if (withStandardDeviation)
            {
                configuration.ModelFactorSuperCriticalFlow.StandardDeviation = 0.8;
            }
            else
            {
                configuration.ModelFactorSuperCriticalFlow.VariationCoefficient = 0.8;
            }

            var calculation = new StructuresCalculation <ClosingStructuresInput>();

            var assigner = new ClosingStructuresCalculationStochastAssigner(
                configuration,
                calculation);

            var valid = true;

            // Call
            Action test = () => valid = assigner.Assign();

            // Assert
            const string expectedMessage = "Er kan geen spreiding voor stochast 'modelfactoroverloopdebiet' opgegeven worden. Berekening 'name' is overgeslagen.";

            TestHelper.AssertLogMessageWithLevelIsGenerated(test, Tuple.Create(expectedMessage, LogLevelConstant.Error));
            Assert.IsFalse(valid);
        }
Ejemplo n.º 6
0
        public void Assign_WithAllStochastsSet_SetExpectedValuesOnInput()
        {
            // Setup
            var configuration = new ClosingStructuresCalculationConfiguration("name")
            {
                StructureId = "some structure",
                LevelCrestStructureNotClosing = new StochastConfiguration
                {
                    Mean = 1.1,
                    StandardDeviation = 1.5
                },
                AreaFlowApertures = new StochastConfiguration
                {
                    Mean = 2.1,
                    StandardDeviation = 2.5
                },
                InsideWaterLevel = new StochastConfiguration
                {
                    Mean = 3.1,
                    StandardDeviation = 3.5
                },
                ThresholdHeightOpenWeir = new StochastConfiguration
                {
                    Mean = 4.1,
                    StandardDeviation = 4.5
                },
                AllowedLevelIncreaseStorage = new StochastConfiguration
                {
                    Mean = 5.1,
                    StandardDeviation = 5.5
                },
                FlowWidthAtBottomProtection = new StochastConfiguration
                {
                    Mean = 6.1,
                    StandardDeviation = 6.5
                },
                WidthFlowApertures = new StochastConfiguration
                {
                    Mean = 7.1,
                    StandardDeviation = 7.5
                },
                DrainCoefficient = new StochastConfiguration
                {
                    Mean = 8.1,
                    StandardDeviation = 8.5
                },
                ModelFactorSuperCriticalFlow = new StochastConfiguration
                {
                    Mean = 9.1
                },
                CriticalOvertoppingDischarge = new StochastConfiguration
                {
                    Mean = 10.1,
                    VariationCoefficient = 0.1
                },
                StorageStructureArea = new StochastConfiguration
                {
                    Mean = 11.1,
                    VariationCoefficient = 0.11
                },
                StormDuration = new StochastConfiguration
                {
                    Mean = 12.1
                }
            };

            var calculation = new StructuresCalculation <ClosingStructuresInput>();

            var assigner = new ClosingStructuresCalculationStochastAssigner(
                configuration,
                calculation);

            // Call
            bool valid = assigner.Assign();

            // Assert
            Assert.IsTrue(valid);
        }