public HydraulicLoadsCalculationInputImplementation(long hydraulicBoundaryLocationId, double targetProbability,
                                                     double sectionNormal,
                                                     IEnumerable <HydraRingRoughnessProfilePoint> profilePoints,
                                                     IEnumerable <HydraRingForelandPoint> forelandPoints,
                                                     HydraRingBreakWater breakWater,
                                                     double modelFactorCriticalOvertopping,
                                                     double factorFbMean, double factorFbStandardDeviation,
                                                     double factorFbLowerBoundary, double factorFbUpperBoundary,
                                                     double factorFnMean, double factorFnStandardDeviation,
                                                     double factorFnLowerBoundary, double factorFnUpperBoundary,
                                                     double modelFactorOvertopping,
                                                     double modelFactorFrunupMean, double modelFactorFrunupStandardDeviation,
                                                     double modelFactorFrunupLowerBoundary, double modelFactorFrunupUpperBoundary,
                                                     double exponentModelFactorShallowMean, double exponentModelFactorShallowStandardDeviation,
                                                     double exponentModelFactorShallowLowerBoundary, double exponentModelFactorShallowUpperBoundary)
     : base(hydraulicBoundaryLocationId, targetProbability,
            sectionNormal,
            profilePoints,
            forelandPoints,
            breakWater,
            modelFactorCriticalOvertopping,
            factorFbMean, factorFbStandardDeviation,
            factorFbLowerBoundary, factorFbUpperBoundary,
            factorFnMean, factorFnStandardDeviation,
            factorFnLowerBoundary, factorFnUpperBoundary,
            modelFactorOvertopping,
            modelFactorFrunupMean, modelFactorFrunupStandardDeviation,
            modelFactorFrunupLowerBoundary, modelFactorFrunupUpperBoundary,
            exponentModelFactorShallowMean, exponentModelFactorShallowStandardDeviation,
            exponentModelFactorShallowLowerBoundary, exponentModelFactorShallowUpperBoundary)
 {
 }
Exemple #2
0
 /// <summary>
 /// Creates a new instance of <see cref="StructuresClosureVerticalWallCalculationInput"/>.
 /// </summary>
 /// <param name="hydraulicBoundaryLocationId">The id of the hydraulic boundary location.</param>
 /// <param name="sectionNormal">The normal of the section.</param>
 /// <param name="forelandPoints">The foreland points.</param>
 /// <param name="breakWater">The break water.</param>
 /// <param name="gravitationalAcceleration">The gravitational acceleration.</param>
 /// <param name="factorStormDurationOpenStructure">The factor of the storm duration for an open structure.</param>
 /// <param name="failureProbabilityOpenStructure">The failure probability for an open structure.</param>
 /// <param name="failureProbabilityReparation">The reparation failure probability.</param>
 /// <param name="identicalApertures">The number of identical apertures.</param>
 /// <param name="allowedLevelIncreaseStorageMean">The mean of the allowed level of increase for storage.</param>
 /// <param name="allowedLevelIncreaseStorageStandardDeviation">The standard deviation of the allowed level of increase for storage.</param>
 /// <param name="modelFactorStorageVolumeMean">The mean of the model factor storage volume.</param>
 /// <param name="modelFactorStorageVolumeStandardDeviation">The standard deviation of the model factor storage volume.</param>
 /// <param name="storageStructureAreaMean">The mean of the storage structure area.</param>
 /// <param name="storageStructureAreaVariation">The variation of the storage structure area.</param>
 /// <param name="modelFactorInflowVolume">The model factor inflow volume.</param>
 /// <param name="flowWidthAtBottomProtectionMean">The mean of the flow width at bottom protection.</param>
 /// <param name="flowWidthAtBottomProtectionStandardDeviation">The standard deviation of the flow width at bottom protection.</param>
 /// <param name="criticalOvertoppingDischargeMean">The mean of the critical overtopping discharge.</param>
 /// <param name="criticalOvertoppingDischargeVariation">The variation of the critical overtopping discharge.</param>
 /// <param name="failureProbabilityStructureWithErosion">The failure probability structure with erosion.</param>
 /// <param name="stormDurationMean">The mean of the storm duration.</param>
 /// <param name="stormDurationVariation">The variation of the storm duration.</param>
 /// <param name="probabilityOpenStructureBeforeFlooding">The probability of an open structure before flooding.</param>
 /// <param name="modelFactorOvertoppingFlowMean">The mean of the model factor overtopping flow.</param>
 /// <param name="modelFactorOvertoppingFlowStandardDeviation">The standard deviation of the model factor overtopping flow.</param>
 /// <param name="structureNormalOrientation">The orientation of the normal of the structure.</param>
 /// <param name="modelFactorSuperCriticalFlowMean">The mean of the model factor super critical flow.</param>
 /// <param name="modelFactorSuperCriticalFlowStandardDeviation">The standard deviation of the model factor super critical flow.</param>
 /// <param name="levelCrestStructureNotClosingMean">The mean of the crest level of the structure when not closing.</param>
 /// <param name="levelCrestStructureNotClosingStandardDeviation">The standard deviation of the crest level of the structure when not closing.</param>
 /// <param name="widthFlowAperturesMean">The mean of the width flow apertures.</param>
 /// <param name="widthFlowAperturesStandardDeviation">The standard deviation of the width flow apertures.</param>
 /// <param name="deviationWaveDirection">The deviation of the wave direction.</param>
 public StructuresClosureVerticalWallCalculationInput(long hydraulicBoundaryLocationId,
                                                      double sectionNormal,
                                                      IEnumerable <HydraRingForelandPoint> forelandPoints,
                                                      HydraRingBreakWater breakWater,
                                                      double gravitationalAcceleration,
                                                      double factorStormDurationOpenStructure,
                                                      double failureProbabilityOpenStructure,
                                                      double failureProbabilityReparation,
                                                      int identicalApertures,
                                                      double allowedLevelIncreaseStorageMean, double allowedLevelIncreaseStorageStandardDeviation,
                                                      double modelFactorStorageVolumeMean, double modelFactorStorageVolumeStandardDeviation,
                                                      double storageStructureAreaMean, double storageStructureAreaVariation,
                                                      double modelFactorInflowVolume,
                                                      double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation,
                                                      double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeVariation,
                                                      double failureProbabilityStructureWithErosion,
                                                      double stormDurationMean, double stormDurationVariation,
                                                      double probabilityOpenStructureBeforeFlooding,
                                                      double modelFactorOvertoppingFlowMean, double modelFactorOvertoppingFlowStandardDeviation,
                                                      double structureNormalOrientation,
                                                      double modelFactorSuperCriticalFlowMean, double modelFactorSuperCriticalFlowStandardDeviation,
                                                      double levelCrestStructureNotClosingMean, double levelCrestStructureNotClosingStandardDeviation,
                                                      double widthFlowAperturesMean, double widthFlowAperturesStandardDeviation,
                                                      double deviationWaveDirection)
     : base(hydraulicBoundaryLocationId,
            sectionNormal,
            forelandPoints, breakWater,
            gravitationalAcceleration,
            factorStormDurationOpenStructure,
            failureProbabilityOpenStructure,
            failureProbabilityReparation,
            identicalApertures,
            allowedLevelIncreaseStorageMean, allowedLevelIncreaseStorageStandardDeviation,
            modelFactorStorageVolumeMean, modelFactorStorageVolumeStandardDeviation,
            storageStructureAreaMean, storageStructureAreaVariation,
            modelFactorInflowVolume,
            flowWidthAtBottomProtectionMean, flowWidthAtBottomProtectionStandardDeviation,
            criticalOvertoppingDischargeMean, criticalOvertoppingDischargeVariation,
            failureProbabilityStructureWithErosion,
            stormDurationMean, stormDurationVariation,
            probabilityOpenStructureBeforeFlooding)
 {
     this.modelFactorOvertoppingFlowMean = modelFactorOvertoppingFlowMean;
     this.modelFactorOvertoppingFlowStandardDeviation = modelFactorOvertoppingFlowStandardDeviation;
     this.structureNormalOrientation       = structureNormalOrientation;
     this.modelFactorSuperCriticalFlowMean = modelFactorSuperCriticalFlowMean;
     this.modelFactorSuperCriticalFlowStandardDeviation  = modelFactorSuperCriticalFlowStandardDeviation;
     this.levelCrestStructureNotClosingMean              = levelCrestStructureNotClosingMean;
     this.levelCrestStructureNotClosingStandardDeviation = levelCrestStructureNotClosingStandardDeviation;
     this.widthFlowAperturesMean = widthFlowAperturesMean;
     this.widthFlowAperturesStandardDeviation = widthFlowAperturesStandardDeviation;
     this.deviationWaveDirection = deviationWaveDirection;
 }
Exemple #3
0
 private static void AreEqual(HydraRingBreakWater expectedBreakWater, HydraRingBreakWater actualBreakWater)
 {
     if (expectedBreakWater == null)
     {
         Assert.IsNull(actualBreakWater);
     }
     else
     {
         Assert.AreEqual(expectedBreakWater.Height, actualBreakWater.Height, accuracy);
         Assert.AreEqual(expectedBreakWater.Type, actualBreakWater.Type);
     }
 }
Exemple #4
0
        public void Constructor_Always_ExpectedValues()
        {
            // Setup
            const int    type   = 1;
            const double height = 100.1;

            // Call
            var breakWater = new HydraRingBreakWater(type, height);

            // Assert
            Assert.AreEqual(type, breakWater.Type);
            Assert.AreEqual(height, breakWater.Height);
        }
Exemple #5
0
 /// <summary>
 /// Creates a new instance of the <see cref="StructuresOvertoppingCalculationInput"/> class.
 /// </summary>
 /// <param name="hydraulicBoundaryLocationId">The id of the hydraulic boundary location.</param>
 /// <param name="sectionNormal">The normal of the section.</param>
 /// <param name="forelandPoints">The foreland points.</param>
 /// <param name="breakWater">The break water.</param>
 /// <param name="gravitationalAcceleration">The gravitational acceleration.</param>
 /// <param name="modelFactorOvertoppingFlowMean">The mean of the model factor overtopping flow.</param>
 /// <param name="modelFactorOvertoppingFlowStandardDeviation">The standard deviation of the model factor overtopping flow.</param>
 /// <param name="levelCrestStructureMean">The mean of the crest level of the structure.</param>
 /// <param name="levelCrestStructureStandardDeviation">The standard deviation of the crest level of the structure.</param>
 /// <param name="structureNormalOrientation">The orientation of the normal of the structure.</param>
 /// <param name="modelFactorSuperCriticalFlowMean">The mean of the model factor super critical flow.</param>
 /// <param name="modelFactorSuperCriticalFlowStandardDeviation">The standard deviation of the model factor super critical flow.</param>
 /// <param name="allowedLevelIncreaseStorageMean">The mean of the allowed level of increase for storage.</param>
 /// <param name="allowedLevelIncreaseStorageStandardDeviation">The standard deviation of the allowed level of increase for storage.</param>
 /// <param name="modelFactorStorageVolumeMean">The mean of the model factor storage volume.</param>
 /// <param name="modelFactorStorageVolumeStandardDeviation">The standard deviation of the model factor storage volume.</param>
 /// <param name="storageStructureAreaMean">The mean of the storage structure area.</param>
 /// <param name="storageStructureAreaVariation">The variation of the storage structure area.</param>
 /// <param name="modelFactorInflowVolume">The model factor inflow volume.</param>
 /// <param name="flowWidthAtBottomProtectionMean">The mean of the flow width at bottom protection.</param>
 /// <param name="flowWidthAtBottomProtectionStandardDeviation">The standard deviation of the flow width at bottom protection.</param>
 /// <param name="criticalOvertoppingDischargeMean">The mean of the critical overtopping discharge.</param>
 /// <param name="criticalOvertoppingDischargeVariation">The variation of the critical overtopping discharge.</param>
 /// <param name="failureProbabilityStructureWithErosion">The failure probability structure with erosion.</param>
 /// <param name="widthFlowAperturesMean">The mean of the width flow apertures.</param>
 /// <param name="widthFlowAperturesStandardDeviation">The standard deviation of the width flow apertures.</param>
 /// <param name="deviationWaveDirection">The deviation of the wave direction.</param>
 /// <param name="stormDurationMean">The mean of the storm duration.</param>
 /// <param name="stormDurationVariation">The variation of the storm duration.</param>
 public StructuresOvertoppingCalculationInput(long hydraulicBoundaryLocationId,
                                              double sectionNormal,
                                              IEnumerable <HydraRingForelandPoint> forelandPoints,
                                              HydraRingBreakWater breakWater,
                                              double gravitationalAcceleration,
                                              double modelFactorOvertoppingFlowMean, double modelFactorOvertoppingFlowStandardDeviation,
                                              double levelCrestStructureMean, double levelCrestStructureStandardDeviation,
                                              double structureNormalOrientation,
                                              double modelFactorSuperCriticalFlowMean, double modelFactorSuperCriticalFlowStandardDeviation,
                                              double allowedLevelIncreaseStorageMean, double allowedLevelIncreaseStorageStandardDeviation,
                                              double modelFactorStorageVolumeMean, double modelFactorStorageVolumeStandardDeviation,
                                              double storageStructureAreaMean, double storageStructureAreaVariation,
                                              double modelFactorInflowVolume,
                                              double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation,
                                              double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeVariation,
                                              double failureProbabilityStructureWithErosion,
                                              double widthFlowAperturesMean, double widthFlowAperturesStandardDeviation,
                                              double deviationWaveDirection,
                                              double stormDurationMean, double stormDurationVariation)
     : base(hydraulicBoundaryLocationId)
 {
     Section        = new HydraRingSection(1, double.NaN, sectionNormal);
     ForelandPoints = forelandPoints;
     BreakWater     = breakWater;
     this.gravitationalAcceleration      = gravitationalAcceleration;
     this.modelFactorOvertoppingFlowMean = modelFactorOvertoppingFlowMean;
     this.modelFactorOvertoppingFlowStandardDeviation = modelFactorOvertoppingFlowStandardDeviation;
     this.levelCrestStructureMean = levelCrestStructureMean;
     this.levelCrestStructureStandardDeviation          = levelCrestStructureStandardDeviation;
     this.structureNormalOrientation                    = structureNormalOrientation;
     this.modelFactorSuperCriticalFlowMean              = modelFactorSuperCriticalFlowMean;
     this.modelFactorSuperCriticalFlowStandardDeviation = modelFactorSuperCriticalFlowStandardDeviation;
     this.allowedLevelIncreaseStorageMean               = allowedLevelIncreaseStorageMean;
     this.allowedLevelIncreaseStorageStandardDeviation  = allowedLevelIncreaseStorageStandardDeviation;
     this.modelFactorStorageVolumeMean                  = modelFactorStorageVolumeMean;
     this.modelFactorStorageVolumeStandardDeviation     = modelFactorStorageVolumeStandardDeviation;
     this.storageStructureAreaMean        = storageStructureAreaMean;
     this.storageStructureAreaVariation   = storageStructureAreaVariation;
     this.modelFactorInflowVolume         = modelFactorInflowVolume;
     this.flowWidthAtBottomProtectionMean = flowWidthAtBottomProtectionMean;
     this.flowWidthAtBottomProtectionStandardDeviation = flowWidthAtBottomProtectionStandardDeviation;
     this.criticalOvertoppingDischargeMean             = criticalOvertoppingDischargeMean;
     this.criticalOvertoppingDischargeVariation        = criticalOvertoppingDischargeVariation;
     this.failureProbabilityStructureWithErosion       = failureProbabilityStructureWithErosion;
     this.widthFlowAperturesMean = widthFlowAperturesMean;
     this.widthFlowAperturesStandardDeviation = widthFlowAperturesStandardDeviation;
     this.deviationWaveDirection = deviationWaveDirection;
     this.stormDurationMean      = stormDurationMean;
     this.stormDurationVariation = stormDurationVariation;
 }
 /// <summary>
 /// Creates a new instance of <see cref="StructuresClosureLowSillCalculationInput"/>.
 /// </summary>
 /// <param name="hydraulicBoundaryLocationId">The id of the hydraulic boundary location.</param>
 /// <param name="sectionNormal">The normal of the section.</param>
 /// <param name="forelandPoints">The foreland points.</param>
 /// <param name="breakWater">The break water.</param>
 /// <param name="gravitationalAcceleration">The gravitational acceleration.</param>
 /// <param name="factorStormDurationOpenStructure">The factor of the storm duration for an open structure.</param>
 /// <param name="failureProbabilityOpenStructure">The failure probability for an open structure.</param>
 /// <param name="failureProbabilityReparation">The reparation failure probability.</param>
 /// <param name="identicalApertures">The number of identical apertures.</param>
 /// <param name="allowedLevelIncreaseStorageMean">The mean of the allowed level of increase for storage.</param>
 /// <param name="allowedLevelIncreaseStorageStandardDeviation">The standard deviation of the allowed level of increase for storage.</param>
 /// <param name="modelFactorStorageVolumeMean">The mean of the model factor storage volume.</param>
 /// <param name="modelFactorStorageVolumeStandardDeviation">The standard deviation of the model factor storage volume.</param>
 /// <param name="storageStructureAreaMean">The mean of the storage structure area.</param>
 /// <param name="storageStructureAreaVariation">The variation of the storage structure area.</param>
 /// <param name="modelFactorInflowVolume">The model factor inflow volume.</param>
 /// <param name="flowWidthAtBottomProtectionMean">The mean of the flow width at bottom protection.</param>
 /// <param name="flowWidthAtBottomProtectionStandardDeviation">The standard deviation of the flow width at bottom protection.</param>
 /// <param name="criticalOvertoppingDischargeMean">The mean of the critical overtopping discharge.</param>
 /// <param name="criticalOvertoppingDischargeVariation">The variation of the critical overtopping discharge.</param>
 /// <param name="failureProbabilityStructureWithErosion">The failure probability structure with erosion.</param>
 /// <param name="stormDurationMean">The mean of the storm duration.</param>
 /// <param name="stormDurationVariation">The variation of the storm duration.</param>
 /// <param name="probabilityOpenStructureBeforeFlooding">The probability of an open structure before flooding.</param>
 /// <param name="thresholdHeightOpenWeirMean">The mean of the threshold height open weir.</param>
 /// <param name="thresholdHeightOpenWeirStandardDeviation">The standard deviation of the threshold height open weir.</param>
 /// <param name="insideWaterLevelMean">The mean of the inside water level.</param>
 /// <param name="insideWaterLevelStandardDeviation">The standard deviation of the inside water level.</param>
 /// <param name="widthFlowAperturesMean">The mean of the width flow apertures.</param>
 /// <param name="widthFlowAperturesStandardDeviation">The standard deviation of the width flow apertures.</param>
 /// <param name="modelFactorLongThresholdMean">The mean of the model factor long threshold.</param>
 /// <param name="modelFactorLongThresholdStandardDeviation">The standard deviation of the model factor long threshold.</param>
 public StructuresClosureLowSillCalculationInput(long hydraulicBoundaryLocationId,
                                                 double sectionNormal,
                                                 IEnumerable <HydraRingForelandPoint> forelandPoints,
                                                 HydraRingBreakWater breakWater,
                                                 double gravitationalAcceleration,
                                                 double factorStormDurationOpenStructure,
                                                 double failureProbabilityOpenStructure,
                                                 double failureProbabilityReparation,
                                                 int identicalApertures,
                                                 double allowedLevelIncreaseStorageMean, double allowedLevelIncreaseStorageStandardDeviation,
                                                 double modelFactorStorageVolumeMean, double modelFactorStorageVolumeStandardDeviation,
                                                 double storageStructureAreaMean, double storageStructureAreaVariation,
                                                 double modelFactorInflowVolume,
                                                 double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation,
                                                 double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeVariation,
                                                 double failureProbabilityStructureWithErosion,
                                                 double stormDurationMean, double stormDurationVariation,
                                                 double probabilityOpenStructureBeforeFlooding,
                                                 double thresholdHeightOpenWeirMean, double thresholdHeightOpenWeirStandardDeviation,
                                                 double insideWaterLevelMean, double insideWaterLevelStandardDeviation,
                                                 double widthFlowAperturesMean, double widthFlowAperturesStandardDeviation,
                                                 double modelFactorLongThresholdMean, double modelFactorLongThresholdStandardDeviation)
     : base(hydraulicBoundaryLocationId,
            sectionNormal,
            forelandPoints, breakWater,
            gravitationalAcceleration,
            factorStormDurationOpenStructure,
            failureProbabilityOpenStructure,
            failureProbabilityReparation,
            identicalApertures,
            allowedLevelIncreaseStorageMean, allowedLevelIncreaseStorageStandardDeviation,
            modelFactorStorageVolumeMean, modelFactorStorageVolumeStandardDeviation,
            storageStructureAreaMean, storageStructureAreaVariation,
            modelFactorInflowVolume,
            flowWidthAtBottomProtectionMean, flowWidthAtBottomProtectionStandardDeviation,
            criticalOvertoppingDischargeMean, criticalOvertoppingDischargeVariation,
            failureProbabilityStructureWithErosion,
            stormDurationMean, stormDurationVariation,
            probabilityOpenStructureBeforeFlooding)
 {
     this.thresholdHeightOpenWeirMean = thresholdHeightOpenWeirMean;
     this.thresholdHeightOpenWeirStandardDeviation = thresholdHeightOpenWeirStandardDeviation;
     this.insideWaterLevelMean = insideWaterLevelMean;
     this.insideWaterLevelStandardDeviation         = insideWaterLevelStandardDeviation;
     this.widthFlowAperturesMean                    = widthFlowAperturesMean;
     this.widthFlowAperturesStandardDeviation       = widthFlowAperturesStandardDeviation;
     this.modelFactorLongThresholdMean              = modelFactorLongThresholdMean;
     this.modelFactorLongThresholdStandardDeviation = modelFactorLongThresholdStandardDeviation;
 }
Exemple #7
0
        public void ParseBreakWater_DoesNotUse_ReturnNull(BreakWaterType breakWaterType)
        {
            // Setup
            var mockRepository = new MockRepository();
            var breakWater     = mockRepository.Stub <IUseBreakWater>();

            breakWater.UseBreakWater = false;
            mockRepository.ReplayAll();

            // Call
            HydraRingBreakWater parsedBreakWater = HydraRingInputParser.ParseBreakWater(breakWater);

            // Assert
            Assert.IsNull(parsedBreakWater);
            mockRepository.VerifyAll();
        }
 /// <summary>
 /// Creates a new instance of the <see cref="OvertoppingCalculationInput"/> class.
 /// </summary>
 /// <param name="hydraulicBoundaryLocationId">The id of the hydraulic boundary location.</param>
 /// <param name="sectionNormal">The normal of the section.</param>
 /// <param name="profilePoints">The profile points.</param>
 /// <param name="forelandPoints">The foreland points.</param>
 /// <param name="breakWater">The break water.</param>
 /// <param name="dikeHeight">The dike height.</param>
 /// <param name="modelFactorCriticalOvertopping">The model factor critical overtopping.</param>
 /// <param name="factorFbMean">The mean of the factor Fb</param>
 /// <param name="factorFbStandardDeviation">The standard deviation of the factor Fb.</param>
 /// <param name="factorFbLowerBoundary">The lower boundary of the factor Fb.</param>
 /// <param name="factorFbUpperBoundary">The upper boundary of the factor Fb.</param>
 /// <param name="factorFnMean">The mean of the factor Fn.</param>
 /// <param name="factorFnStandardDeviation">The standard deviation of the factor Fn.</param>
 /// <param name="factorFnLowerBoundary">The lower boundary of the factor Fn.</param>
 /// <param name="factorFnUpperBoundary">The upper boundary of the factor Fn.</param>
 /// <param name="modelFactorOvertopping">The factor overtopping.</param>
 /// <param name="criticalOvertoppingMean">The mean of the critical overtopping.</param>
 /// <param name="criticalOvertoppingStandardDeviation">The standard deviation of the critical overtopping.</param>
 /// <param name="modelFactorFrunupMean">The mean of the factor frunup.</param>
 /// <param name="modelFactorFrunupStandardDeviation">The standard deviation of the factor frunup.</param>
 /// <param name="modelFactorFrunupLowerBoundary">The lower boundary of the factor frunup.</param>
 /// <param name="modelFactorFrunupUpperBoundary">The upper boundary of the factor frunup.</param>
 /// <param name="exponentModelFactorShallowMean">The mean of the exponent model factor shallow.</param>
 /// <param name="exponentModelFactorShallowStandardDeviation">The standard deviation of the exponent model factor shallow.</param>
 /// <param name="exponentModelFactorShallowLowerBoundary">The lower boundary of the exponent model factor shallow.</param>
 /// <param name="exponentModelFactorShallowUpperBoundary">The upper boundary of the exponent model factor shallow.</param>
 public OvertoppingCalculationInput(long hydraulicBoundaryLocationId,
                                    double sectionNormal,
                                    IEnumerable <HydraRingRoughnessProfilePoint> profilePoints,
                                    IEnumerable <HydraRingForelandPoint> forelandPoints,
                                    HydraRingBreakWater breakWater,
                                    double dikeHeight,
                                    double modelFactorCriticalOvertopping,
                                    double factorFbMean, double factorFbStandardDeviation,
                                    double factorFbLowerBoundary, double factorFbUpperBoundary,
                                    double factorFnMean, double factorFnStandardDeviation,
                                    double factorFnLowerBoundary, double factorFnUpperBoundary,
                                    double modelFactorOvertopping,
                                    double criticalOvertoppingMean, double criticalOvertoppingStandardDeviation,
                                    double modelFactorFrunupMean, double modelFactorFrunupStandardDeviation,
                                    double modelFactorFrunupLowerBoundary, double modelFactorFrunupUpperBoundary,
                                    double exponentModelFactorShallowMean, double exponentModelFactorShallowStandardDeviation,
                                    double exponentModelFactorShallowLowerBoundary, double exponentModelFactorShallowUpperBoundary)
     : base(hydraulicBoundaryLocationId)
 {
     Section         = new HydraRingSection(1, double.NaN, sectionNormal);
     ProfilePoints   = profilePoints;
     ForelandPoints  = forelandPoints;
     BreakWater      = breakWater;
     this.dikeHeight = dikeHeight;
     this.modelFactorCriticalOvertopping = modelFactorCriticalOvertopping;
     this.factorFbMean = factorFbMean;
     this.factorFbStandardDeviation = factorFbStandardDeviation;
     this.factorFbLowerBoundary     = factorFbLowerBoundary;
     this.factorFbUpperBoundary     = factorFbUpperBoundary;
     this.factorFnMean = factorFnMean;
     this.factorFnStandardDeviation                   = factorFnStandardDeviation;
     this.factorFnLowerBoundary                       = factorFnLowerBoundary;
     this.factorFnUpperBoundary                       = factorFnUpperBoundary;
     this.modelFactorOvertopping                      = modelFactorOvertopping;
     this.criticalOvertoppingMean                     = criticalOvertoppingMean;
     this.criticalOvertoppingStandardDeviation        = criticalOvertoppingStandardDeviation;
     this.modelFactorFrunupMean                       = modelFactorFrunupMean;
     this.modelFactorFrunupStandardDeviation          = modelFactorFrunupStandardDeviation;
     this.modelFactorFrunupLowerBoundary              = modelFactorFrunupLowerBoundary;
     this.modelFactorFrunupUpperBoundary              = modelFactorFrunupUpperBoundary;
     this.exponentModelFactorShallowMean              = exponentModelFactorShallowMean;
     this.exponentModelFactorShallowStandardDeviation = exponentModelFactorShallowStandardDeviation;
     this.exponentModelFactorShallowLowerBoundary     = exponentModelFactorShallowLowerBoundary;
     this.exponentModelFactorShallowUpperBoundary     = exponentModelFactorShallowUpperBoundary;
 }
Exemple #9
0
 /// <summary>
 /// Creates a new instance of <see cref="StructuresClosureCalculationInput"/>.
 /// </summary>
 /// <param name="hydraulicBoundaryLocationId">The id of the hydraulic boundary location.</param>
 /// <param name="sectionNormal">The normal of the section.</param>
 /// <param name="forelandPoints">The foreland points.</param>
 /// <param name="breakWater">The break water.</param>
 /// <param name="gravitationalAcceleration">The gravitational acceleration.</param>
 /// <param name="factorStormDurationOpenStructure">The factor of the storm duration for an open structure.</param>
 /// <param name="failureProbabilityOpenStructure">The failure probability for an open structure.</param>
 /// <param name="failureProbabilityReparation">The reparation failure probability.</param>
 /// <param name="identicalApertures">The number of identical apertures.</param>
 /// <param name="allowedLevelIncreaseStorageMean">The mean of the allowed level of increase for storage.</param>
 /// <param name="allowedLevelIncreaseStorageStandardDeviation">The standard deviation of the allowed level of increase for storage.</param>
 /// <param name="modelFactorStorageVolumeMean">The mean of the model factor storage volume.</param>
 /// <param name="modelFactorStorageVolumeStandardDeviation">The standard deviation of the model factor storage volume.</param>
 /// <param name="storageStructureAreaMean">The mean of the storage structure area.</param>
 /// <param name="storageStructureAreaVariation">The variation of the storage structure area.</param>
 /// <param name="modelFactorInflowVolume">The model factor inflow volume.</param>
 /// <param name="flowWidthAtBottomProtectionMean">The mean of the flow width at bottom protection.</param>
 /// <param name="flowWidthAtBottomProtectionStandardDeviation">The standard deviation of the flow width at bottom protection.</param>
 /// <param name="criticalOvertoppingDischargeMean">The mean of the critical overtopping discharge.</param>
 /// <param name="criticalOvertoppingDischargeVariation">The variation of the critical overtopping discharge.</param>
 /// <param name="failureProbabilityStructureWithErosion">The failure probability structure with erosion.</param>
 /// <param name="stormDurationMean">The mean of the storm duration.</param>
 /// <param name="stormDurationVariation">The variation of the storm duration.</param>
 /// <param name="probabilityOpenStructureBeforeFlooding">The probability of an open structure before flooding.</param>
 protected StructuresClosureCalculationInput(long hydraulicBoundaryLocationId,
                                             double sectionNormal,
                                             IEnumerable <HydraRingForelandPoint> forelandPoints,
                                             HydraRingBreakWater breakWater,
                                             double gravitationalAcceleration,
                                             double factorStormDurationOpenStructure,
                                             double failureProbabilityOpenStructure,
                                             double failureProbabilityReparation,
                                             int identicalApertures,
                                             double allowedLevelIncreaseStorageMean, double allowedLevelIncreaseStorageStandardDeviation,
                                             double modelFactorStorageVolumeMean, double modelFactorStorageVolumeStandardDeviation,
                                             double storageStructureAreaMean, double storageStructureAreaVariation,
                                             double modelFactorInflowVolume,
                                             double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation,
                                             double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeVariation,
                                             double failureProbabilityStructureWithErosion,
                                             double stormDurationMean, double stormDurationVariation,
                                             double probabilityOpenStructureBeforeFlooding)
     : base(hydraulicBoundaryLocationId)
 {
     Section        = new HydraRingSection(1, double.NaN, sectionNormal);
     ForelandPoints = forelandPoints;
     BreakWater     = breakWater;
     this.gravitationalAcceleration        = gravitationalAcceleration;
     this.factorStormDurationOpenStructure = factorStormDurationOpenStructure;
     this.failureProbabilityOpenStructure  = failureProbabilityOpenStructure;
     this.failureProbabilityReparation     = failureProbabilityReparation;
     this.identicalApertures = identicalApertures;
     this.allowedLevelIncreaseStorageMean = allowedLevelIncreaseStorageMean;
     this.allowedLevelIncreaseStorageStandardDeviation = allowedLevelIncreaseStorageStandardDeviation;
     this.modelFactorStorageVolumeMean = modelFactorStorageVolumeMean;
     this.modelFactorStorageVolumeStandardDeviation = modelFactorStorageVolumeStandardDeviation;
     this.storageStructureAreaMean        = storageStructureAreaMean;
     this.storageStructureAreaVariation   = storageStructureAreaVariation;
     this.modelFactorInflowVolume         = modelFactorInflowVolume;
     this.flowWidthAtBottomProtectionMean = flowWidthAtBottomProtectionMean;
     this.flowWidthAtBottomProtectionStandardDeviation = flowWidthAtBottomProtectionStandardDeviation;
     this.criticalOvertoppingDischargeMean             = criticalOvertoppingDischargeMean;
     this.criticalOvertoppingDischargeVariation        = criticalOvertoppingDischargeVariation;
     this.failureProbabilityStructureWithErosion       = failureProbabilityStructureWithErosion;
     this.stormDurationMean      = stormDurationMean;
     this.stormDurationVariation = stormDurationVariation;
     this.probabilityOpenStructureBeforeFlooding = probabilityOpenStructureBeforeFlooding;
 }
Exemple #10
0
        public void Constructor_Always_ExpectedValues()
        {
            // Setup
            const int    sectionId     = 111;
            const double sectionNormal = 90;
            const int    hydraulicBoundaryLocationId            = 222;
            const double targetProbability                      = 1.0 / 333;
            IEnumerable <HydraRingForelandPoint> forelandPoints = Enumerable.Empty <HydraRingForelandPoint>();
            var          breakWater = new HydraRingBreakWater(1, 4.4);
            const double waterLevel = 5.5;
            const double a          = 6.6;
            const double b          = 7.7;
            const double beta1      = 8.8;
            const double beta2      = 9.9;

            // Call
            var waveConditionsTrapezoidCalculationInput = new WaveConditionsTrapezoidCalculationInput(sectionId,
                                                                                                      sectionNormal,
                                                                                                      hydraulicBoundaryLocationId,
                                                                                                      targetProbability,
                                                                                                      forelandPoints,
                                                                                                      breakWater,
                                                                                                      waterLevel,
                                                                                                      a,
                                                                                                      b,
                                                                                                      beta1,
                                                                                                      beta2);

            // Assert
            double expectedBeta = StatisticsConverter.ProbabilityToReliability(targetProbability);

            Assert.IsInstanceOf <WaveConditionsCalculationInput>(waveConditionsTrapezoidCalculationInput);
            Assert.AreEqual(HydraRingFailureMechanismType.QVariant, waveConditionsTrapezoidCalculationInput.FailureMechanismType);
            Assert.AreEqual(8, waveConditionsTrapezoidCalculationInput.CalculationTypeId);
            Assert.AreEqual(114, waveConditionsTrapezoidCalculationInput.VariableId);
            Assert.AreEqual(hydraulicBoundaryLocationId, waveConditionsTrapezoidCalculationInput.HydraulicBoundaryLocationId);
            Assert.IsNotNull(waveConditionsTrapezoidCalculationInput.Section);
            Assert.AreEqual(sectionId, waveConditionsTrapezoidCalculationInput.Section.SectionId);
            Assert.AreEqual(sectionNormal, waveConditionsTrapezoidCalculationInput.Section.CrossSectionNormal);
            HydraRingDataEqualityHelper.AreEqual(GetExpectedVariables(waterLevel, a, b, beta1, beta2).ToArray(), waveConditionsTrapezoidCalculationInput.Variables.ToArray());
            Assert.AreSame(forelandPoints, waveConditionsTrapezoidCalculationInput.ForelandPoints);
            Assert.AreSame(breakWater, waveConditionsTrapezoidCalculationInput.BreakWater);
            Assert.AreEqual(expectedBeta, waveConditionsTrapezoidCalculationInput.Beta);
        }
 public WaveConditionsCalculationInputImplementation(int sectionId,
                                                     double sectionNormal,
                                                     long hydraulicBoundaryLocationId,
                                                     double targetProbability,
                                                     IEnumerable <HydraRingForelandPoint> forelandPoints,
                                                     HydraRingBreakWater breakWater,
                                                     double waterLevel,
                                                     double a,
                                                     double b)
     : base(sectionId,
            sectionNormal,
            hydraulicBoundaryLocationId,
            targetProbability,
            forelandPoints,
            breakWater,
            waterLevel,
            a,
            b)
 {
 }
        /// <summary>
        /// Creates a new instance of the <see cref="WaveConditionsCalculationInput"/> class.
        /// </summary>
        /// <param name="sectionId">The id of the section.</param>
        /// <param name="sectionNormal">The normal of the section.</param>
        /// <param name="hydraulicBoundaryLocationId">The id of the hydraulic boundary location.</param>
        /// <param name="targetProbability">The target probability.</param>
        /// <param name="forelandPoints">The foreland points.</param>
        /// <param name="breakWater">The break water.</param>
        /// <param name="waterLevel">The water level to calculate the wave conditions for.</param>
        /// <param name="a">The a-value.</param>
        /// <param name="b">The b-value.</param>
        /// <remarks>As a part of the constructor, the <paramref name="targetProbability"/> is automatically converted into a reliability index.</remarks>
        protected WaveConditionsCalculationInput(int sectionId,
                                                 double sectionNormal,
                                                 long hydraulicBoundaryLocationId,
                                                 double targetProbability,
                                                 IEnumerable <HydraRingForelandPoint> forelandPoints,
                                                 HydraRingBreakWater breakWater,
                                                 double waterLevel,
                                                 double a,
                                                 double b)
            : base(hydraulicBoundaryLocationId)
        {
            Section        = new HydraRingSection(sectionId, double.NaN, sectionNormal);
            Beta           = StatisticsConverter.ProbabilityToReliability(targetProbability);
            ForelandPoints = forelandPoints;
            BreakWater     = breakWater;

            this.waterLevel = waterLevel;
            this.a          = a;
            this.b          = b;
        }
Exemple #13
0
        public void ParseBreakWater_Use_ReturnHydraRingBreakWater(BreakWaterType breakWaterType)
        {
            // Setup
            var    random           = new Random(22);
            double breakWaterHeight = random.NextDouble();

            var mockRepository = new MockRepository();
            var breakWater     = mockRepository.Stub <IUseBreakWater>();

            breakWater.UseBreakWater = true;
            var expectedBreakWater = new BreakWater(breakWaterType, breakWaterHeight);

            breakWater.Stub(call => call.BreakWater).Return(expectedBreakWater);
            mockRepository.ReplayAll();

            // Call
            HydraRingBreakWater parsedBreakWater = HydraRingInputParser.ParseBreakWater(breakWater);

            // Assert
            Assert.AreEqual(BreakWaterTypeHelper.GetHydraRingBreakWaterType(breakWaterType), parsedBreakWater.Type);
            Assert.AreEqual(expectedBreakWater.Height, parsedBreakWater.Height, expectedBreakWater.Height.GetAccuracy());
            mockRepository.VerifyAll();
        }
Exemple #14
0
 public TestStructuresClosureCalculationInput(long hydraulicBoundaryLocationId,
                                              double sectionNormal,
                                              IEnumerable <HydraRingForelandPoint> forelandPoints,
                                              HydraRingBreakWater breakWater,
                                              double gravitationalAcceleration,
                                              double factorStormDurationOpenStructure,
                                              double failureProbabilityOpenStructure,
                                              double failureProbabilityReparation,
                                              int identicalApertures,
                                              double allowedLevelIncreaseStorageMean, double allowedLevelIncreaseStorageStandardDeviation,
                                              double modelFactorStorageVolumeMean, double modelFactorStorageVolumeStandardDeviation,
                                              double storageStructureAreaMean, double storageStructureAreaVariation,
                                              double modelFactorInflowVolume,
                                              double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation,
                                              double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeVariation,
                                              double failureProbabilityStructureWithErosion,
                                              double stormDurationMean, double stormDurationVariation,
                                              double probabilityOpenStructureBeforeFlooding)
     : base(hydraulicBoundaryLocationId,
            sectionNormal,
            forelandPoints, breakWater,
            gravitationalAcceleration,
            factorStormDurationOpenStructure,
            failureProbabilityOpenStructure,
            failureProbabilityReparation,
            identicalApertures,
            allowedLevelIncreaseStorageMean, allowedLevelIncreaseStorageStandardDeviation,
            modelFactorStorageVolumeMean, modelFactorStorageVolumeStandardDeviation,
            storageStructureAreaMean, storageStructureAreaVariation,
            modelFactorInflowVolume,
            flowWidthAtBottomProtectionMean, flowWidthAtBottomProtectionStandardDeviation,
            criticalOvertoppingDischargeMean, criticalOvertoppingDischargeVariation,
            failureProbabilityStructureWithErosion,
            stormDurationMean, stormDurationVariation,
            probabilityOpenStructureBeforeFlooding)
 {
 }
 /// <summary>
 /// Creates a new instance of the <see cref="WaveConditionsTrapezoidCalculationInput"/> class.
 /// </summary>
 /// <param name="sectionId">The id of the section.</param>
 /// <param name="sectionNormal">The normal of the section.</param>
 /// <param name="hydraulicBoundaryLocationId">The id of the hydraulic boundary location.</param>
 /// <param name="targetProbability">The target probability.</param>
 /// <param name="forelandPoints">The foreland points.</param>
 /// <param name="breakWater">The break water.</param>
 /// <param name="waterLevel">The water level to calculate the wave conditions for.</param>
 /// <param name="a">The a-value.</param>
 /// <param name="b">The b-value.</param>
 /// <param name="beta1">The beta1-value.</param>
 /// <param name="beta2">The beta2-value.</param>
 public WaveConditionsTrapezoidCalculationInput(int sectionId,
                                                double sectionNormal,
                                                long hydraulicBoundaryLocationId,
                                                double targetProbability,
                                                IEnumerable <HydraRingForelandPoint> forelandPoints,
                                                HydraRingBreakWater breakWater,
                                                double waterLevel,
                                                double a,
                                                double b,
                                                double beta1,
                                                double beta2)
     : base(sectionId,
            sectionNormal,
            hydraulicBoundaryLocationId,
            targetProbability,
            forelandPoints,
            breakWater,
            waterLevel,
            a,
            b)
 {
     this.beta1 = beta1;
     this.beta2 = beta2;
 }
Exemple #16
0
        public void Constructor_ExpectedValues()
        {
            // Setup
            const int hydraulicBoundaryLocationId = 1000;
            IEnumerable <HydraRingForelandPoint> forelandPoints = Enumerable.Empty <HydraRingForelandPoint>();
            var breakWater = new HydraRingBreakWater(1, 1.1);

            const double sectionNormal                                = 21.1;
            const double gravitationalAcceleration                    = 1.1;
            const double factorStormDurationOpenStructure             = 2.2;
            const double failureProbabilityOpenStructure              = 3.3;
            const double failureProbabilityReparation                 = 4.4;
            const int    identicalApertures                           = 5;
            const double allowedLevelIncreaseStorageMean              = 6.6;
            const double allowedLevelIncreaseStorageStandardDeviation = 7.7;
            const double modelFactorStorageVolumeMean                 = 8.8;
            const double modelFactorStorageVolumeStandardDeviation    = 9.9;
            const double storageStructureAreaMean                     = 10.0;
            const double storageStructureAreaVariation                = 11.1;
            const double modelFactorInflowVolume                      = 12.2;
            const double flowWidthAtBottomProtectionMean              = 13.3;
            const double flowWidthAtBottomProtectionStandardDeviation = 14.4;
            const double criticalOvertoppingDischargeMean             = 15.5;
            const double criticalOvertoppingDischargeVariation        = 16.6;
            const double failureProbabilityStructureWithErosion       = 17.7;
            const double stormDurationMean                            = 18.8;
            const double stormDurationVariation                       = 19.9;
            const double probabilityOpenStructureBeforeFlooding       = 20.0;

            // Call
            var input = new TestStructuresClosureCalculationInput(hydraulicBoundaryLocationId,
                                                                  sectionNormal,
                                                                  forelandPoints, breakWater,
                                                                  gravitationalAcceleration,
                                                                  factorStormDurationOpenStructure,
                                                                  failureProbabilityOpenStructure,
                                                                  failureProbabilityReparation,
                                                                  identicalApertures,
                                                                  allowedLevelIncreaseStorageMean, allowedLevelIncreaseStorageStandardDeviation,
                                                                  modelFactorStorageVolumeMean, modelFactorStorageVolumeStandardDeviation,
                                                                  storageStructureAreaMean, storageStructureAreaVariation,
                                                                  modelFactorInflowVolume,
                                                                  flowWidthAtBottomProtectionMean, flowWidthAtBottomProtectionStandardDeviation,
                                                                  criticalOvertoppingDischargeMean, criticalOvertoppingDischargeVariation,
                                                                  failureProbabilityStructureWithErosion,
                                                                  stormDurationMean, stormDurationVariation,
                                                                  probabilityOpenStructureBeforeFlooding);

            // Assert
            Assert.IsInstanceOf <ExceedanceProbabilityCalculationInput>(input);
            Assert.AreEqual(1, input.CalculationTypeId);
            Assert.AreEqual(HydraRingFailureMechanismType.StructuresClosure, input.FailureMechanismType);
            Assert.AreEqual(58, input.VariableId);
            Assert.AreEqual(4505, input.FaultTreeModelId);
            Assert.AreEqual(6, input.IterationMethodId);
            Assert.AreEqual(hydraulicBoundaryLocationId, input.HydraulicBoundaryLocationId);

            HydraRingSection section = input.Section;

            Assert.AreEqual(1, section.SectionId);
            Assert.IsNaN(section.SectionLength);
            Assert.AreEqual(sectionNormal, section.CrossSectionNormal);
            Assert.AreSame(forelandPoints, input.ForelandPoints);
            Assert.AreSame(breakWater, input.BreakWater);
            HydraRingDataEqualityHelper.AreEqual(GetDefaultVariables().ToArray(), input.Variables.ToArray());
        }
        public void Constructor_Always_ExpectedValues()
        {
            // Setup
            const int hydraulicBoundaryLocationId = 1000;

            const double sectionNormal = 22.2;
            const double dikeHeight    = 1.1;
            const double modelFactorCriticalOvertopping = 2.2;
            const double factorFbMean = 3.3;
            const double factorFbStandardDeviation = 4.4;
            const double factorFbLowerBoundary     = 14.4;
            const double factorFbUpperBoundary     = 15.5;
            const double factorFnMean = 5.5;
            const double factorFnStandardDeviation                   = 6.6;
            const double factorFnLowerBoundary                       = 16.6;
            const double factorFnUpperBoundary                       = 17.7;
            const double modelFactorOvertopping                      = 7.7;
            const double criticalOvertoppingMean                     = 8.8;
            const double criticalOvertoppingStandardDeviation        = 9.9;
            const double modelFactorFrunupMean                       = 10.0;
            const double modelFactorFrunupStandardDeviation          = 11.1;
            const double modelFactorFrunupLowerBoundary              = 18.8;
            const double modelFactorFrunupUpperBoundary              = 19.9;
            const double exponentModelFactorShallowMean              = 12.2;
            const double exponentModelFactorShallowStandardDeviation = 13.3;
            const double exponentModelFactorShallowLowerBoundary     = 20.0;
            const double exponentModelFactorShallowUpperBoundary     = 21.1;

            var expectedRingProfilePoints = new List <HydraRingRoughnessProfilePoint>
            {
                new HydraRingRoughnessProfilePoint(1.1, 2.2, 3.3)
            };
            var expectedRingForelandPoints = new List <HydraRingForelandPoint>
            {
                new HydraRingForelandPoint(2.2, 3.3)
            };
            var expectedRingBreakWater = new HydraRingBreakWater(2, 3.3);

            // Call
            var overtoppingCalculationInput = new OvertoppingCalculationInput(
                hydraulicBoundaryLocationId, sectionNormal,
                expectedRingProfilePoints, expectedRingForelandPoints, expectedRingBreakWater,
                dikeHeight,
                modelFactorCriticalOvertopping,
                factorFbMean, factorFbStandardDeviation,
                factorFbLowerBoundary, factorFbUpperBoundary,
                factorFnMean, factorFnStandardDeviation,
                factorFnLowerBoundary, factorFnUpperBoundary,
                modelFactorOvertopping,
                criticalOvertoppingMean, criticalOvertoppingStandardDeviation,
                modelFactorFrunupMean, modelFactorFrunupStandardDeviation,
                modelFactorFrunupLowerBoundary, modelFactorFrunupUpperBoundary,
                exponentModelFactorShallowMean, exponentModelFactorShallowStandardDeviation,
                exponentModelFactorShallowLowerBoundary, exponentModelFactorShallowUpperBoundary);

            // Assert
            Assert.IsInstanceOf <ExceedanceProbabilityCalculationInput>(overtoppingCalculationInput);
            Assert.AreEqual(1, overtoppingCalculationInput.CalculationTypeId);
            Assert.AreEqual(HydraRingFailureMechanismType.DikesOvertopping, overtoppingCalculationInput.FailureMechanismType);
            Assert.AreEqual(1, overtoppingCalculationInput.VariableId);
            Assert.AreEqual(1017, overtoppingCalculationInput.FaultTreeModelId);
            Assert.AreEqual(hydraulicBoundaryLocationId, overtoppingCalculationInput.HydraulicBoundaryLocationId);
            HydraRingDataEqualityHelper.AreEqual(GetDefaultOvertoppingVariables().ToArray(), overtoppingCalculationInput.Variables.ToArray());
            CollectionAssert.AreEqual(expectedRingProfilePoints, overtoppingCalculationInput.ProfilePoints);
            CollectionAssert.AreEqual(expectedRingForelandPoints, overtoppingCalculationInput.ForelandPoints);
            Assert.AreEqual(expectedRingBreakWater, overtoppingCalculationInput.BreakWater);
            Assert.IsNaN(overtoppingCalculationInput.Beta);

            HydraRingSection hydraRingSection = overtoppingCalculationInput.Section;

            Assert.AreEqual(1, hydraRingSection.SectionId);
            Assert.IsNaN(hydraRingSection.SectionLength);
            Assert.AreEqual(sectionNormal, hydraRingSection.CrossSectionNormal);
        }
Exemple #18
0
        public void Constructor_ExpectedValues()
        {
            // Setup
            const int hydraulicBoundaryLocationId = 1000;
            IEnumerable <HydraRingForelandPoint> forelandPoints = Enumerable.Empty <HydraRingForelandPoint>();
            var breakWater = new HydraRingBreakWater(1, 1.1);

            const double sectionNormal                                        = 52.2;
            const double volumicWeightWater                                   = 1.1;
            const double gravitationalAcceleration                            = 2.2;
            const double levelCrestStructureMean                              = 3.3;
            const double levelCrestStructureStandardDeviation                 = 4.4;
            const double structureNormalOrientation                           = 5.5;
            const double factorStormDurationOpenStructure                     = 6.6;
            const double thresholdHeightOpenWeirMean                          = 7.7;
            const double thresholdHeightOpenWeirStandardDeviation             = 8.8;
            const double insideWaterLevelFailureConstructionMean              = 9.9;
            const double insideWaterLevelFailureConstructionStandardDeviation = 10.10;
            const double failureProbabilityRepairClosure                      = 11.11;
            const double failureCollisionEnergyMean                           = 12.12;
            const double failureCollisionEnergyVariation                      = 13.13;
            const double modelFactorCollisionLoadMean                         = 14.14;
            const double modelFactorCollisionLoadVariation                    = 15.15;
            const double shipMassMean          = 16.16;
            const double shipMassVariation     = 17.17;
            const double shipVelocityMean      = 18.18;
            const double shipVelocityVariation = 19.19;
            const int    levellingCount        = 20;
            const double probabilityCollisionSecondaryStructure = 21.21;
            const double flowVelocityStructureClosableMean      = 22.22;
            const double flowVelocityStructureClosableVariation = 23.23;
            const double insideWaterLevelMean = 24.24;
            const double insideWaterLevelStandardDeviation            = 25.25;
            const double allowedLevelIncreaseStorageMean              = 26.26;
            const double allowedLevelIncreaseStorageStandardDeviation = 27.27;
            const double modelFactorStorageVolumeMean = 28.28;
            const double modelFactorStorageVolumeStandardDeviation = 29.29;
            const double storageStructureAreaMean        = 30.30;
            const double storageStructureAreaVariation   = 31.31;
            const double modelFactorInflowVolume         = 32.32;
            const double flowWidthAtBottomProtectionMean = 33.33;
            const double flowWidthAtBottomProtectionStandardDeviation = 34.34;
            const double criticalOvertoppingDischargeMean             = 35.35;
            const double criticalOvertoppingDischargeVariation        = 36.36;
            const double failureProbabilityStructureWithErosion       = 37.37;
            const double stormDurationMean            = 38.38;
            const double stormDurationVariation       = 39.39;
            const double modelFactorLongThresholdMean = 40.40;
            const double modelFactorLongThresholdStandardDeviation = 41.41;
            const double bankWidthMean = 42.42;
            const double bankWidthStandardDeviation             = 43.43;
            const double evaluationLevel                        = 44.44;
            const double modelFactorLoadEffectMean              = 45.45;
            const double modelFactorLoadEffectStandardDeviation = 46.46;
            const double waveRatioMaxHN = 47.47;
            const double waveRatioMaxHStandardDeviation = 48.48;
            const double verticalDistance = 49.49;
            const double modificationFactorWavesSlowlyVaryingPressureComponent = 50.50;
            const double modificationFactorDynamicOrImpulsivePressureComponent = 51.51;

            // Call
            var input = new TestStructuresStabilityPointCalculationInput(hydraulicBoundaryLocationId, sectionNormal,
                                                                         forelandPoints, breakWater,
                                                                         volumicWeightWater,
                                                                         gravitationalAcceleration,
                                                                         levelCrestStructureMean, levelCrestStructureStandardDeviation,
                                                                         structureNormalOrientation,
                                                                         factorStormDurationOpenStructure,
                                                                         thresholdHeightOpenWeirMean, thresholdHeightOpenWeirStandardDeviation,
                                                                         insideWaterLevelFailureConstructionMean, insideWaterLevelFailureConstructionStandardDeviation,
                                                                         failureProbabilityRepairClosure,
                                                                         failureCollisionEnergyMean, failureCollisionEnergyVariation,
                                                                         modelFactorCollisionLoadMean, modelFactorCollisionLoadVariation,
                                                                         shipMassMean, shipMassVariation,
                                                                         shipVelocityMean, shipVelocityVariation,
                                                                         levellingCount,
                                                                         probabilityCollisionSecondaryStructure,
                                                                         flowVelocityStructureClosableMean, flowVelocityStructureClosableVariation,
                                                                         insideWaterLevelMean, insideWaterLevelStandardDeviation,
                                                                         allowedLevelIncreaseStorageMean, allowedLevelIncreaseStorageStandardDeviation,
                                                                         modelFactorStorageVolumeMean, modelFactorStorageVolumeStandardDeviation,
                                                                         storageStructureAreaMean, storageStructureAreaVariation,
                                                                         modelFactorInflowVolume,
                                                                         flowWidthAtBottomProtectionMean, flowWidthAtBottomProtectionStandardDeviation,
                                                                         criticalOvertoppingDischargeMean, criticalOvertoppingDischargeVariation,
                                                                         failureProbabilityStructureWithErosion,
                                                                         stormDurationMean, stormDurationVariation,
                                                                         modelFactorLongThresholdMean, modelFactorLongThresholdStandardDeviation,
                                                                         bankWidthMean, bankWidthStandardDeviation,
                                                                         evaluationLevel,
                                                                         modelFactorLoadEffectMean, modelFactorLoadEffectStandardDeviation,
                                                                         waveRatioMaxHN, waveRatioMaxHStandardDeviation,
                                                                         verticalDistance,
                                                                         modificationFactorWavesSlowlyVaryingPressureComponent,
                                                                         modificationFactorDynamicOrImpulsivePressureComponent);

            // Assert
            Assert.IsInstanceOf <ExceedanceProbabilityCalculationInput>(input);
            Assert.AreEqual(1, input.CalculationTypeId);
            Assert.AreEqual(HydraRingFailureMechanismType.StructuresStructuralFailure, input.FailureMechanismType);
            Assert.AreEqual(58, input.VariableId);
            Assert.AreEqual(4607, input.FaultTreeModelId);
            Assert.AreEqual(6, input.IterationMethodId);
            Assert.AreEqual(hydraulicBoundaryLocationId, input.HydraulicBoundaryLocationId);

            HydraRingSection section = input.Section;

            Assert.AreEqual(1, section.SectionId);
            Assert.IsNaN(section.SectionLength);
            Assert.AreEqual(sectionNormal, section.CrossSectionNormal);
            Assert.AreSame(forelandPoints, input.ForelandPoints);
            Assert.AreSame(breakWater, input.BreakWater);
            HydraRingDataEqualityHelper.AreEqual(GetDefaultVariables().ToArray(), input.Variables.ToArray());
        }
Exemple #19
0
 public TestStructuresStabilityPointCalculationInput(long hydraulicBoundaryLocationId, double sectionNormal,
                                                     IEnumerable <HydraRingForelandPoint> forelandPoints,
                                                     HydraRingBreakWater breakWater,
                                                     double volumicWeightWater,
                                                     double gravitationalAcceleration,
                                                     double levelCrestStructureMean, double levelCrestStructureStandardDeviation,
                                                     double structureNormalOrientation,
                                                     double factorStormDurationOpenStructure,
                                                     double thresholdHeightOpenWeirMean, double thresholdHeightOpenWeirStandardDeviation,
                                                     double insideWaterLevelFailureConstructionMean, double insideWaterLevelFailureConstructionStandardDeviation,
                                                     double failureProbabilityRepairClosure,
                                                     double failureCollisionEnergyMean, double failureCollisionEnergyVariation,
                                                     double modelFactorCollisionLoadMean, double modelFactorCollisionLoadVariation,
                                                     double shipMassMean, double shipMassVariation,
                                                     double shipVelocityMean, double shipVelocityVariation,
                                                     int levellingCount,
                                                     double probabilityCollisionSecondaryStructure,
                                                     double flowVelocityStructureClosableMean, double flowVelocityStructureClosableVariation,
                                                     double insideWaterLevelMean, double insideWaterLevelStandardDeviation,
                                                     double allowedLevelIncreaseStorageMean, double allowedLevelIncreaseStorageStandardDeviation,
                                                     double modelFactorStorageVolumeMean, double modelFactorStorageVolumeStandardDeviation,
                                                     double storageStructureAreaMean, double storageStructureAreaVariation,
                                                     double modelFactorInflowVolume,
                                                     double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation,
                                                     double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeVariation,
                                                     double failureProbabilityStructureWithErosion,
                                                     double stormDurationMean, double stormDurationVariation,
                                                     double modelFactorLongThresholdMean, double modelFactorLongThresholdStandardDeviation,
                                                     double bankWidthMean, double bankWidthStandardDeviation,
                                                     double evaluationLevel,
                                                     double modelFactorLoadEffectMean, double modelFactorLoadEffectStandardDeviation,
                                                     double waveRatioMaxHN, double waveRatioMaxHStandardDeviation,
                                                     double verticalDistance,
                                                     double modificationFactorWavesSlowlyVaryingPressureComponent,
                                                     double modificationFactorDynamicOrImpulsivePressureComponent)
     : base(hydraulicBoundaryLocationId,
            sectionNormal,
            forelandPoints, breakWater,
            volumicWeightWater,
            gravitationalAcceleration,
            levelCrestStructureMean, levelCrestStructureStandardDeviation,
            structureNormalOrientation,
            factorStormDurationOpenStructure,
            thresholdHeightOpenWeirMean, thresholdHeightOpenWeirStandardDeviation,
            insideWaterLevelFailureConstructionMean, insideWaterLevelFailureConstructionStandardDeviation,
            failureProbabilityRepairClosure,
            failureCollisionEnergyMean, failureCollisionEnergyVariation,
            modelFactorCollisionLoadMean, modelFactorCollisionLoadVariation,
            shipMassMean, shipMassVariation,
            shipVelocityMean, shipVelocityVariation,
            levellingCount,
            probabilityCollisionSecondaryStructure,
            flowVelocityStructureClosableMean, flowVelocityStructureClosableVariation,
            insideWaterLevelMean, insideWaterLevelStandardDeviation,
            allowedLevelIncreaseStorageMean, allowedLevelIncreaseStorageStandardDeviation,
            modelFactorStorageVolumeMean, modelFactorStorageVolumeStandardDeviation,
            storageStructureAreaMean, storageStructureAreaVariation,
            modelFactorInflowVolume,
            flowWidthAtBottomProtectionMean, flowWidthAtBottomProtectionStandardDeviation,
            criticalOvertoppingDischargeMean, criticalOvertoppingDischargeVariation,
            failureProbabilityStructureWithErosion,
            stormDurationMean, stormDurationVariation,
            modelFactorLongThresholdMean, modelFactorLongThresholdStandardDeviation,
            bankWidthMean, bankWidthStandardDeviation,
            evaluationLevel,
            modelFactorLoadEffectMean, modelFactorLoadEffectStandardDeviation,
            waveRatioMaxHN, waveRatioMaxHStandardDeviation,
            verticalDistance,
            modificationFactorWavesSlowlyVaryingPressureComponent,
            modificationFactorDynamicOrImpulsivePressureComponent)
 {
 }
Exemple #20
0
        public void Constructor_Always_ExpectedValues()
        {
            // Setup
            const int hydraulicBoundaryLocationId = 1000;

            IEnumerable <HydraRingForelandPoint> forelandPoints = Enumerable.Empty <HydraRingForelandPoint>();
            var breakWater = new HydraRingBreakWater(1, 1.1);

            const double sectionNormal                  = 26.6;
            const double gravitationalAcceleration      = 1.1;
            const double modelFactorOvertoppingFlowMean = 2.2;
            const double modelFactorOvertoppingFlowStandardDeviation = 3.3;
            const double levelCrestStructureMean = 4.4;
            const double levelCrestStructureStandardDeviation          = 5.5;
            const double structureNormalOrientation                    = 6.6;
            const double modelFactorSuperCriticalFlowMean              = 7.7;
            const double modelFactorSuperCriticalFlowStandardDeviation = 8.8;
            const double allowedLevelIncreaseStorageMean               = 9.9;
            const double allowedLevelIncreaseStorageStandardDeviation  = 10.0;
            const double modelFactorStorageVolumeMean                  = 11.1;
            const double modelFactorStorageVolumeStandardDeviation     = 12.2;
            const double storageStructureAreaMean        = 13.3;
            const double storageStructureAreaVariation   = 14.4;
            const double modelFactorInflowVolume         = 15.5;
            const double flowWidthAtBottomProtectionMean = 16.6;
            const double flowWidthAtBottomProtectionStandardDeviation = 17.7;
            const double criticalOvertoppingDischargeMean             = 18.8;
            const double criticalOvertoppingDischargeVariation        = 19.9;
            const double failureProbabilityStructureWithErosion       = 20.0;
            const double widthFlowAperturesMean = 21.1;
            const double widthFlowAperturesStandardDeviation = 22.2;
            const double deviationWaveDirection = 23.3;
            const double stormDurationMean      = 24.4;
            const double stormDurationVariation = 25.5;

            // Call
            var input = new StructuresOvertoppingCalculationInput(hydraulicBoundaryLocationId,
                                                                  sectionNormal,
                                                                  forelandPoints, breakWater,
                                                                  gravitationalAcceleration,
                                                                  modelFactorOvertoppingFlowMean, modelFactorOvertoppingFlowStandardDeviation,
                                                                  levelCrestStructureMean, levelCrestStructureStandardDeviation,
                                                                  structureNormalOrientation,
                                                                  modelFactorSuperCriticalFlowMean, modelFactorSuperCriticalFlowStandardDeviation,
                                                                  allowedLevelIncreaseStorageMean, allowedLevelIncreaseStorageStandardDeviation,
                                                                  modelFactorStorageVolumeMean, modelFactorStorageVolumeStandardDeviation,
                                                                  storageStructureAreaMean, storageStructureAreaVariation,
                                                                  modelFactorInflowVolume,
                                                                  flowWidthAtBottomProtectionMean, flowWidthAtBottomProtectionStandardDeviation,
                                                                  criticalOvertoppingDischargeMean, criticalOvertoppingDischargeVariation,
                                                                  failureProbabilityStructureWithErosion,
                                                                  widthFlowAperturesMean, widthFlowAperturesStandardDeviation,
                                                                  deviationWaveDirection,
                                                                  stormDurationMean, stormDurationVariation);

            // Assert
            Assert.IsInstanceOf <ExceedanceProbabilityCalculationInput>(input);
            Assert.AreEqual(1, input.CalculationTypeId);
            Assert.AreEqual(HydraRingFailureMechanismType.StructuresOvertopping, input.FailureMechanismType);
            Assert.AreEqual(60, input.VariableId);
            Assert.AreEqual(4404, input.FaultTreeModelId);
            Assert.AreEqual(6, input.IterationMethodId);
            Assert.AreEqual(hydraulicBoundaryLocationId, input.HydraulicBoundaryLocationId);

            HydraRingSection section = input.Section;

            Assert.AreEqual(1, section.SectionId);
            Assert.IsNaN(section.SectionLength);
            Assert.AreEqual(sectionNormal, section.CrossSectionNormal);
            Assert.AreSame(forelandPoints, input.ForelandPoints);
            Assert.AreSame(breakWater, input.BreakWater);
            HydraRingDataEqualityHelper.AreEqual(GetDefaultOvertoppingVariables().ToArray(), input.Variables.ToArray());
        }
 /// <summary>
 /// Creates a new instance of <see cref="StructuresStabilityPointCalculationInput"/>.
 /// </summary>
 /// <param name="hydraulicBoundaryLocationId">The id of the hydraulic boundary location.</param>
 /// <param name="sectionNormal">The normal of the section.</param>
 /// <param name="forelandPoints">The foreland points.</param>
 /// <param name="breakWater">The break water.</param>
 /// <param name="volumicWeightWater">The volumic weight of water.</param>
 /// <param name="gravitationalAcceleration">The gravitational acceleration.</param>
 /// <param name="levelCrestStructureMean">The mean of the crest level of the structure.</param>
 /// <param name="levelCrestStructureStandardDeviation">The standard deviation of the crest level of the structure.</param>
 /// <param name="structureNormalOrientation">The orientation of the normal of the structure.</param>
 /// <param name="factorStormDurationOpenStructure">The factor of the storm duration for an open structure.</param>
 /// <param name="thresholdHeightOpenWeirMean">The mean of the threshold height open weir.</param>
 /// <param name="thresholdHeightOpenWeirStandardDeviation">The standard deviation of the threshold height open weir.</param>
 /// <param name="insideWaterLevelFailureConstructionMean">The mean of the inside water level at failure of construction.</param>
 /// <param name="insideWaterLevelFailureConstructionStandardDeviation">The standard deviation of the inside water level at failure of construction.</param>
 /// <param name="failureProbabilityRepairClosure">The failure probability repair closure.</param>
 /// <param name="failureCollisionEnergyMean">The mean of the failure collision energy.</param>
 /// <param name="failureCollisionEnergyVariation">The variation of the failure collision energy.</param>
 /// <param name="modelFactorCollisionLoadMean">The mean of the model factor collision load.</param>
 /// <param name="modelFactorCollisionLoadVariation">The variation of the model factor collision load.</param>
 /// <param name="shipMassMean">The mean of the ship mass.</param>
 /// <param name="shipMassVariation">The variation of the ship mass.</param>
 /// <param name="shipVelocityMean">The mean of the ship velocity.</param>
 /// <param name="shipVelocityVariation">The variation of the ship velocity.</param>
 /// <param name="levellingCount">The levelling count.</param>
 /// <param name="probabilityCollisionSecondaryStructure">The probability of collision of the secondary structure.</param>
 /// <param name="flowVelocityStructureClosableMean">The mean of the flow velocity structure closable.</param>
 /// <param name="flowVelocityStructureClosableVariation">The variation of the flow velocity structure closable.</param>
 /// <param name="insideWaterLevelMean">The mean of the inside water level.</param>
 /// <param name="insideWaterLevelStandardDeviation">The standard deviation of the inside water level.</param>
 /// <param name="allowedLevelIncreaseStorageMean">The mean of the allowed level of increase for storage.</param>
 /// <param name="allowedLevelIncreaseStorageStandardDeviation">The standard deviation of the allowed level of increase for storage.</param>
 /// <param name="modelFactorStorageVolumeMean">The mean of the model factor storage volume.</param>
 /// <param name="modelFactorStorageVolumeStandardDeviation">The standard deviation of the model factor storage volume.</param>
 /// <param name="storageStructureAreaMean">The mean of the storage structure area.</param>
 /// <param name="storageStructureAreaVariation">The variation of the storage structure area.</param>
 /// <param name="modelFactorInflowVolume">The model factor inflow volume.</param>
 /// <param name="flowWidthAtBottomProtectionMean">The mean of the flow width at bottom protection.</param>
 /// <param name="flowWidthAtBottomProtectionStandardDeviation">The standard deviation of the flow width at bottom protection.</param>
 /// <param name="criticalOvertoppingDischargeMean">The mean of the critical overtopping discharge.</param>
 /// <param name="criticalOvertoppingDischargeVariation">The variation of the critical overtopping discharge.</param>
 /// <param name="failureProbabilityStructureWithErosion">The failure probability structure with erosion.</param>
 /// <param name="stormDurationMean">The mean of the storm duration.</param>
 /// <param name="stormDurationVariation">The variation of the storm duration.</param>
 /// <param name="modelFactorLongThresholdMean">The mean of the model factor long threshold.</param>
 /// <param name="modelFactorLongThresholdStandardDeviation">The standard deviation of the model factor long threshold.</param>
 /// <param name="bankWidthMean">The mean of the bank width.</param>
 /// <param name="bankWidthStandardDeviation">The standard deviation of the bank width.</param>
 /// <param name="evaluationLevel">The evaluation level.</param>
 /// <param name="modelFactorLoadEffectMean">The mean of the model factor load effect.</param>
 /// <param name="modelFactorLoadEffectStandardDeviation">The standard deviation of the model factor load effect.</param>
 /// <param name="waveRatioMaxHN">The N of the wave ratio max h.</param>
 /// <param name="waveRatioMaxHStandardDeviation">The standard deviation of the wave ratio max h.</param>
 /// <param name="verticalDistance">The vertical distance.</param>
 /// <param name="modificationFactorWavesSlowlyVaryingPressureComponent">The modification factor waves slowly-varying pressure component.</param>
 /// <param name="modificationFactorDynamicOrImpulsivePressureComponent">The modification factor dynamic or impulsive pressure component.</param>
 protected StructuresStabilityPointCalculationInput(long hydraulicBoundaryLocationId,
                                                    double sectionNormal,
                                                    IEnumerable <HydraRingForelandPoint> forelandPoints,
                                                    HydraRingBreakWater breakWater,
                                                    double volumicWeightWater,
                                                    double gravitationalAcceleration,
                                                    double levelCrestStructureMean, double levelCrestStructureStandardDeviation,
                                                    double structureNormalOrientation,
                                                    double factorStormDurationOpenStructure,
                                                    double thresholdHeightOpenWeirMean, double thresholdHeightOpenWeirStandardDeviation,
                                                    double insideWaterLevelFailureConstructionMean, double insideWaterLevelFailureConstructionStandardDeviation,
                                                    double failureProbabilityRepairClosure,
                                                    double failureCollisionEnergyMean, double failureCollisionEnergyVariation,
                                                    double modelFactorCollisionLoadMean, double modelFactorCollisionLoadVariation,
                                                    double shipMassMean, double shipMassVariation,
                                                    double shipVelocityMean, double shipVelocityVariation,
                                                    int levellingCount,
                                                    double probabilityCollisionSecondaryStructure,
                                                    double flowVelocityStructureClosableMean, double flowVelocityStructureClosableVariation,
                                                    double insideWaterLevelMean, double insideWaterLevelStandardDeviation,
                                                    double allowedLevelIncreaseStorageMean, double allowedLevelIncreaseStorageStandardDeviation,
                                                    double modelFactorStorageVolumeMean, double modelFactorStorageVolumeStandardDeviation,
                                                    double storageStructureAreaMean, double storageStructureAreaVariation,
                                                    double modelFactorInflowVolume,
                                                    double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation,
                                                    double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeVariation,
                                                    double failureProbabilityStructureWithErosion,
                                                    double stormDurationMean, double stormDurationVariation,
                                                    double modelFactorLongThresholdMean, double modelFactorLongThresholdStandardDeviation,
                                                    double bankWidthMean, double bankWidthStandardDeviation,
                                                    double evaluationLevel,
                                                    double modelFactorLoadEffectMean, double modelFactorLoadEffectStandardDeviation,
                                                    double waveRatioMaxHN, double waveRatioMaxHStandardDeviation,
                                                    double verticalDistance,
                                                    double modificationFactorWavesSlowlyVaryingPressureComponent,
                                                    double modificationFactorDynamicOrImpulsivePressureComponent)
     : base(hydraulicBoundaryLocationId)
 {
     Section                                                    = new HydraRingSection(1, double.NaN, sectionNormal);
     ForelandPoints                                             = forelandPoints;
     BreakWater                                                 = breakWater;
     this.volumicWeightWater                                    = volumicWeightWater;
     this.gravitationalAcceleration                             = gravitationalAcceleration;
     this.levelCrestStructureMean                               = levelCrestStructureMean;
     this.levelCrestStructureStandardDeviation                  = levelCrestStructureStandardDeviation;
     this.structureNormalOrientation                            = structureNormalOrientation;
     this.factorStormDurationOpenStructure                      = factorStormDurationOpenStructure;
     this.thresholdHeightOpenWeirMean                           = thresholdHeightOpenWeirMean;
     this.thresholdHeightOpenWeirStandardDeviation              = thresholdHeightOpenWeirStandardDeviation;
     this.insideWaterLevelFailureConstructionMean               = insideWaterLevelFailureConstructionMean;
     this.insideWaterLevelFailureConstructionStandardDeviation  = insideWaterLevelFailureConstructionStandardDeviation;
     this.failureProbabilityRepairClosure                       = failureProbabilityRepairClosure;
     this.failureCollisionEnergyMean                            = failureCollisionEnergyMean;
     this.failureCollisionEnergyVariation                       = failureCollisionEnergyVariation;
     this.modelFactorCollisionLoadMean                          = modelFactorCollisionLoadMean;
     this.modelFactorCollisionLoadVariation                     = modelFactorCollisionLoadVariation;
     this.shipMassMean                                          = shipMassMean;
     this.shipMassVariation                                     = shipMassVariation;
     this.shipVelocityMean                                      = shipVelocityMean;
     this.shipVelocityVariation                                 = shipVelocityVariation;
     this.levellingCount                                        = levellingCount;
     this.probabilityCollisionSecondaryStructure                = probabilityCollisionSecondaryStructure;
     this.flowVelocityStructureClosableMean                     = flowVelocityStructureClosableMean;
     this.flowVelocityStructureClosableVariation                = flowVelocityStructureClosableVariation;
     this.insideWaterLevelMean                                  = insideWaterLevelMean;
     this.insideWaterLevelStandardDeviation                     = insideWaterLevelStandardDeviation;
     this.allowedLevelIncreaseStorageMean                       = allowedLevelIncreaseStorageMean;
     this.allowedLevelIncreaseStorageStandardDeviation          = allowedLevelIncreaseStorageStandardDeviation;
     this.modelFactorStorageVolumeMean                          = modelFactorStorageVolumeMean;
     this.modelFactorStorageVolumeStandardDeviation             = modelFactorStorageVolumeStandardDeviation;
     this.storageStructureAreaMean                              = storageStructureAreaMean;
     this.storageStructureAreaVariation                         = storageStructureAreaVariation;
     this.modelFactorInflowVolume                               = modelFactorInflowVolume;
     this.flowWidthAtBottomProtectionMean                       = flowWidthAtBottomProtectionMean;
     this.flowWidthAtBottomProtectionStandardDeviation          = flowWidthAtBottomProtectionStandardDeviation;
     this.criticalOvertoppingDischargeMean                      = criticalOvertoppingDischargeMean;
     this.criticalOvertoppingDischargeVariation                 = criticalOvertoppingDischargeVariation;
     this.failureProbabilityStructureWithErosion                = failureProbabilityStructureWithErosion;
     this.stormDurationMean                                     = stormDurationMean;
     this.stormDurationVariation                                = stormDurationVariation;
     this.modelFactorLongThresholdMean                          = modelFactorLongThresholdMean;
     this.modelFactorLongThresholdStandardDeviation             = modelFactorLongThresholdStandardDeviation;
     this.bankWidthMean                                         = bankWidthMean;
     this.bankWidthStandardDeviation                            = bankWidthStandardDeviation;
     this.evaluationLevel                                       = evaluationLevel;
     this.modelFactorLoadEffectMean                             = modelFactorLoadEffectMean;
     this.modelFactorLoadEffectStandardDeviation                = modelFactorLoadEffectStandardDeviation;
     this.waveRatioMaxHN                                        = waveRatioMaxHN;
     this.waveRatioMaxHStandardDeviation                        = waveRatioMaxHStandardDeviation;
     this.verticalDistance                                      = verticalDistance;
     this.modificationFactorWavesSlowlyVaryingPressureComponent = modificationFactorWavesSlowlyVaryingPressureComponent;
     this.modificationFactorDynamicOrImpulsivePressureComponent = modificationFactorDynamicOrImpulsivePressureComponent;
 }
        public void Constructor_Always_ExpectedValues()
        {
            // Setup
            const double targetProbability           = 1.0 / 10000;
            const int    hydraulicBoundaryLocationId = 1000;

            const double sectionNormal = 19.9;
            const double modelFactorCriticalOvertopping = 1.1;
            const double factorFbMean = 2.2;
            const double factorFbStandardDeviation = 3.3;
            const double factorFbLowerBoundary     = 4.4;
            const double factorFbUpperBoundary     = 5.5;
            const double factorFnMean = 6.6;
            const double factorFnStandardDeviation                   = 7.7;
            const double factorFnLowerBoundary                       = 8.8;
            const double factorFnUpperBoundary                       = 9.9;
            const double modelFactorOvertopping                      = 10.0;
            const double modelFactorFrunupMean                       = 11.1;
            const double modelFactorFrunupStandardDeviation          = 12.2;
            const double modelFactorFrunupLowerBoundary              = 13.3;
            const double modelFactorFrunupUpperBoundary              = 14.4;
            const double exponentModelFactorShallowMean              = 15.5;
            const double exponentModelFactorShallowStandardDeviation = 16.6;
            const double exponentModelFactorShallowLowerBoundary     = 17.7;
            const double exponentModelFactorShallowUpperBoundary     = 18.8;

            var expectedRingProfilePoints = new List <HydraRingRoughnessProfilePoint>
            {
                new HydraRingRoughnessProfilePoint(1.1, 2.2, 3.3)
            };
            var expectedRingForelandPoints = new List <HydraRingForelandPoint>
            {
                new HydraRingForelandPoint(2.2, 3.3)
            };
            var expectedRingBreakWater = new HydraRingBreakWater(2, 3.3);

            // Call
            var input = new HydraulicLoadsCalculationInputImplementation(hydraulicBoundaryLocationId, targetProbability, sectionNormal,
                                                                         expectedRingProfilePoints, expectedRingForelandPoints, expectedRingBreakWater,
                                                                         modelFactorCriticalOvertopping,
                                                                         factorFbMean, factorFbStandardDeviation,
                                                                         factorFbLowerBoundary, factorFbUpperBoundary,
                                                                         factorFnMean, factorFnStandardDeviation,
                                                                         factorFnLowerBoundary, factorFnUpperBoundary,
                                                                         modelFactorOvertopping,
                                                                         modelFactorFrunupMean, modelFactorFrunupStandardDeviation,
                                                                         modelFactorFrunupLowerBoundary, modelFactorFrunupUpperBoundary,
                                                                         exponentModelFactorShallowMean, exponentModelFactorShallowStandardDeviation,
                                                                         exponentModelFactorShallowLowerBoundary, exponentModelFactorShallowUpperBoundary);

            // Assert
            double expectedBeta = StatisticsConverter.ProbabilityToReliability(targetProbability);

            Assert.IsInstanceOf <ReliabilityIndexCalculationInput>(input);
            Assert.AreEqual(9, input.CalculationTypeId);
            Assert.AreEqual(1017, input.FaultTreeModelId);
            Assert.AreEqual(hydraulicBoundaryLocationId, input.HydraulicBoundaryLocationId);
            Assert.IsNotNull(input.Section);
            HydraRingDataEqualityHelper.AreEqual(GetDefaultHydraulicLoadsVariables().ToArray(), input.Variables.ToArray());
            CollectionAssert.AreEqual(expectedRingProfilePoints, input.ProfilePoints);
            CollectionAssert.AreEqual(expectedRingForelandPoints, input.ForelandPoints);
            Assert.AreEqual(expectedRingBreakWater, input.BreakWater);
            Assert.AreEqual(expectedBeta, input.Beta);

            HydraRingSection hydraRingSection = input.Section;

            Assert.AreEqual(1, hydraRingSection.SectionId);
            Assert.IsNaN(hydraRingSection.SectionLength);
            Assert.AreEqual(sectionNormal, hydraRingSection.CrossSectionNormal);
        }