public void ConstructiveStrengthQuadraticLoadModel_Always_ExpectedValues()
        {
            // Setup
            var random            = new Random(22);
            var input             = new StabilityPointStructuresInput();
            var mean              = (RoundedDouble)(0.01 + random.NextDouble());
            var variation         = (RoundedDouble)(0.01 + random.NextDouble());
            var distributionToSet = new VariationCoefficientLogNormalDistribution(5)
            {
                Mean = mean,
                CoefficientOfVariation = variation
            };

            // Call
            input.ConstructiveStrengthQuadraticLoadModel = distributionToSet;

            // Assert
            var expectedDistribution = new VariationCoefficientLogNormalDistribution(2)
            {
                Mean = mean,
                CoefficientOfVariation = variation
            };

            DistributionTestHelper.AssertDistributionCorrectlySet(input.ConstructiveStrengthQuadraticLoadModel, distributionToSet, expectedDistribution);
        }
        public void DrainCoefficient_Always_ExpectedValues()
        {
            // Setup
            var           random            = new Random(22);
            var           input             = new StabilityPointStructuresInput();
            RoundedDouble mean              = random.NextRoundedDouble(0.01, 1.0);
            RoundedDouble standardDeviation = random.NextRoundedDouble(0.01, 1.0);
            var           distributionToSet = new LogNormalDistribution(5)
            {
                Mean = mean,
                StandardDeviation = standardDeviation
            };

            // Call
            input.DrainCoefficient = distributionToSet;

            // Assert
            var expectedDistribution = new LogNormalDistribution(2)
            {
                Mean = mean,
                StandardDeviation = standardDeviation
            };

            DistributionTestHelper.AssertDistributionCorrectlySet(input.DrainCoefficient, distributionToSet, expectedDistribution);
        }
        public void SynchronizeStructureInput_ChangedStructure_ExpectedValues()
        {
            // Setup
            var differentStructure = new StabilityPointStructure(new StabilityPointStructure.ConstructionProperties
            {
                Id       = "Test id",
                Name     = "Test name",
                Location = new Point2D(-1, -1)
            });

            var input = new StabilityPointStructuresInput
            {
                Structure = new TestStabilityPointStructure()
            };

            input.Structure.CopyProperties(differentStructure);

            // Precondition
            AssertStabilityPointStructureInput(new TestStabilityPointStructure(), input);

            // Call
            input.SynchronizeStructureInput();

            // Assert
            AssertStabilityPointStructureInput(differentStructure, input);
        }
        public void ShipVelocity_Always_ExpectedValues()
        {
            // Setup
            var random            = new Random(22);
            var input             = new StabilityPointStructuresInput();
            var mean              = (RoundedDouble)(0.01 + random.NextDouble());
            var variation         = (RoundedDouble)(0.01 + random.NextDouble());
            var distributionToSet = new VariationCoefficientNormalDistribution(5)
            {
                Mean = mean,
                CoefficientOfVariation = variation
            };

            // Call
            input.ShipVelocity = distributionToSet;

            // Assert
            var expectedDistribution = new VariationCoefficientNormalDistribution(2)
            {
                Mean = mean,
                CoefficientOfVariation = variation
            };

            DistributionTestHelper.AssertDistributionCorrectlySet(input.ShipVelocity, distributionToSet, expectedDistribution);
        }
Esempio n. 5
0
        /// <summary>
        /// Method that asserts whether <paramref name="original"/> and <paramref name="clone"/>
        /// are clones.
        /// </summary>
        /// <param name="original">The original object.</param>
        /// <param name="clone">The cloned object.</param>
        /// <exception cref="AssertionException">Thrown when <paramref name="original"/> and
        /// <paramref name="clone"/> are not clones.</exception>
        public static void AreClones(StabilityPointStructuresInput original, StabilityPointStructuresInput clone)
        {
            CommonCloneAssert.AreClones(original, clone);

            CoreCloneAssert.AreObjectClones(original.InsideWaterLevelFailureConstruction, clone.InsideWaterLevelFailureConstruction, DistributionAssert.AreEqual);
            CoreCloneAssert.AreObjectClones(original.InsideWaterLevel, clone.InsideWaterLevel, DistributionAssert.AreEqual);
            CoreCloneAssert.AreObjectClones(original.DrainCoefficient, clone.DrainCoefficient, DistributionAssert.AreEqual);
            CoreCloneAssert.AreObjectClones(original.LevelCrestStructure, clone.LevelCrestStructure, DistributionAssert.AreEqual);
            CoreCloneAssert.AreObjectClones(original.ThresholdHeightOpenWeir, clone.ThresholdHeightOpenWeir, DistributionAssert.AreEqual);
            CoreCloneAssert.AreObjectClones(original.AreaFlowApertures, clone.AreaFlowApertures, DistributionAssert.AreEqual);
            CoreCloneAssert.AreObjectClones(original.ConstructiveStrengthLinearLoadModel, clone.ConstructiveStrengthLinearLoadModel, DistributionAssert.AreEqual);
            CoreCloneAssert.AreObjectClones(original.ConstructiveStrengthQuadraticLoadModel, clone.ConstructiveStrengthQuadraticLoadModel, DistributionAssert.AreEqual);
            CoreCloneAssert.AreObjectClones(original.StabilityLinearLoadModel, clone.StabilityLinearLoadModel, DistributionAssert.AreEqual);
            CoreCloneAssert.AreObjectClones(original.StabilityQuadraticLoadModel, clone.StabilityQuadraticLoadModel, DistributionAssert.AreEqual);
            CoreCloneAssert.AreObjectClones(original.FailureCollisionEnergy, clone.FailureCollisionEnergy, DistributionAssert.AreEqual);
            CoreCloneAssert.AreObjectClones(original.ShipMass, clone.ShipMass, DistributionAssert.AreEqual);
            CoreCloneAssert.AreObjectClones(original.ShipVelocity, clone.ShipVelocity, DistributionAssert.AreEqual);
            CoreCloneAssert.AreObjectClones(original.BankWidth, clone.BankWidth, DistributionAssert.AreEqual);
            CoreCloneAssert.AreObjectClones(original.FlowVelocityStructureClosable, clone.FlowVelocityStructureClosable, DistributionAssert.AreEqual);
            Assert.AreEqual(original.VolumicWeightWater, clone.VolumicWeightWater);
            Assert.AreEqual(original.FactorStormDurationOpenStructure, clone.FactorStormDurationOpenStructure);
            Assert.AreEqual(original.EvaluationLevel, clone.EvaluationLevel);
            Assert.AreEqual(original.VerticalDistance, clone.VerticalDistance);
            Assert.AreEqual(original.FailureProbabilityRepairClosure, clone.FailureProbabilityRepairClosure);
            Assert.AreEqual(original.ProbabilityCollisionSecondaryStructure, clone.ProbabilityCollisionSecondaryStructure);
            Assert.AreEqual(original.InflowModelType, clone.InflowModelType);
            Assert.AreEqual(original.LoadSchematizationType, clone.LoadSchematizationType);
            Assert.AreEqual(original.LevellingCount, clone.LevellingCount);
        }
        public void BankWidth_Always_ExpectedValues()
        {
            // Setup
            var random            = new Random(22);
            var input             = new StabilityPointStructuresInput();
            var mean              = (RoundedDouble)(0.01 + random.NextDouble());
            var standardDeviation = (RoundedDouble)(0.01 + random.NextDouble());
            var distributionToSet = new NormalDistribution(5)
            {
                Mean = mean,
                StandardDeviation = standardDeviation
            };

            // Call
            input.BankWidth = distributionToSet;

            // Assert
            var expectedDistribution = new NormalDistribution(2)
            {
                Mean = mean,
                StandardDeviation = standardDeviation
            };

            DistributionTestHelper.AssertDistributionCorrectlySet(input.BankWidth, distributionToSet, expectedDistribution);
        }
        public void ProbabilityCollisionSecondaryStructure_ValidValues_ExpectedValues(double probability)
        {
            // Setup
            var input = new StabilityPointStructuresInput();

            // Call
            input.ProbabilityCollisionSecondaryStructure = probability;

            // Assert
            Assert.AreEqual(probability, input.ProbabilityCollisionSecondaryStructure);
        }
        public void FailureProbabilityRepairClosure_ValidValues_ExpectedValues(double probability)
        {
            // Setup
            var input = new StabilityPointStructuresInput();

            // Call
            input.FailureProbabilityRepairClosure = probability;

            // Assert
            Assert.AreEqual(probability, input.FailureProbabilityRepairClosure);
        }
        public void ProbabilityCollisionSecondaryStructure_InvalidValues_ThrowsArgumentOutOfRangeException(double probability)
        {
            // Setup
            var input = new StabilityPointStructuresInput();

            // Call
            TestDelegate call = () => input.ProbabilityCollisionSecondaryStructure = probability;

            // Assert
            TestHelper.AssertThrowsArgumentExceptionAndTestMessage <ArgumentOutOfRangeException>(call, "Kans moet in het bereik [0,0, 1,0] liggen.");
        }
        public void SynchronizeStructureInput_StructureNotSet_ExpectedValues()
        {
            // Setup
            var input = new StabilityPointStructuresInput();

            // Call
            input.SynchronizeStructureInput();

            // Assert
            AssertStabilityPointStructureInput(null, input);
        }
        public void FailureProbabilityRepairClosure_InvalidValues_ThrowsArgumentOutOfRangeException(double probability)
        {
            // Setup
            var input = new StabilityPointStructuresInput();

            // Call
            TestDelegate call = () => input.FailureProbabilityRepairClosure = probability;

            // Assert
            TestHelper.AssertThrowsArgumentExceptionAndTestMessage <ArgumentOutOfRangeException>(call, "De waarde voor de faalkans moet in het bereik [0,0, 1,0] liggen.");
        }
        public void IsStructureInputSynchronized_StructureNotSet_ReturnFalse()
        {
            // Setup
            var input = new StabilityPointStructuresInput();

            // Call
            bool isStructureInputSynchronized = input.IsStructureInputSynchronized;

            // Assert
            Assert.IsFalse(isStructureInputSynchronized);
        }
        public void Structure_Null_ExpectedValues()
        {
            // Setup
            var input = new StabilityPointStructuresInput();

            // Call
            input.Structure = null;

            // Assert
            AssertStabilityPointStructureInput(null, input);
        }
        public void VerticalDistance_InvalidValue_ThrowsArgumentOutOfRangeException()
        {
            // Setup
            var input = new StabilityPointStructuresInput();

            // Call
            TestDelegate call = () => input.VerticalDistance = (RoundedDouble)(-0.01);

            // Assert
            TestHelper.AssertThrowsArgumentExceptionAndTestMessage <ArgumentOutOfRangeException>(
                call, "De waarde voor afstand onderkant wand en teen dijk moet groter of gelijk zijn aan 0.");
        }
        public void Structure_NotNull_ExpectedValues()
        {
            // Setup
            var input     = new StabilityPointStructuresInput();
            var structure = new TestStabilityPointStructure();

            // Call
            input.Structure = structure;

            // Assert
            AssertStabilityPointStructureInput(structure, input);
        }
        public void LevellingCount_InvalidValue_ThrowsArgumentOutOfRangeException()
        {
            // Setup
            var input = new StabilityPointStructuresInput();

            // Call
            TestDelegate call = () => input.LevellingCount = -1;

            // Assert
            TestHelper.AssertThrowsArgumentExceptionAndTestMessage <ArgumentOutOfRangeException>(
                call, "De waarde voor aantal nivelleringen per jaar moet groter of gelijk zijn aan 0.");
        }
        public void LevellingCount_ValidValue_ExpectedValues()
        {
            // Setup
            var input          = new StabilityPointStructuresInput();
            int levellingCount = new Random(21).Next(0, int.MaxValue);

            // Call
            input.LevellingCount = levellingCount;

            // Assert
            Assert.AreEqual(levellingCount, input.LevellingCount);
        }
        public void VerticalDistance_ValidValue_ExpectedValues(double verticalDistance)
        {
            // Setup
            var input = new StabilityPointStructuresInput();

            // Call
            input.VerticalDistance = (RoundedDouble)verticalDistance;

            // Assert
            Assert.AreEqual(2, input.VerticalDistance.NumberOfDecimalPlaces);
            AssertAreEqual(verticalDistance, input.VerticalDistance);
        }
        public void Clone_Always_ReturnNewInstanceWithCopiedValues()
        {
            // Setup
            var original = new StabilityPointStructuresInput();

            StabilityPointStructuresTestDataGenerator.SetRandomDataToStabilityPointStructuresInput(original);

            // Call
            object clone = original.Clone();

            // Assert
            CoreCloneAssert.AreObjectClones(original, clone, StabilityPointStructuresCloneAssert.AreClones);
        }
        public void EvaluationLevel_Always_ExpectedValues()
        {
            // Setup
            var random          = new Random(22);
            var input           = new StabilityPointStructuresInput();
            var evaluationLevel = new RoundedDouble(5, random.NextDouble());

            // Call
            input.EvaluationLevel = evaluationLevel;

            // Assert
            Assert.AreEqual(2, input.EvaluationLevel.NumberOfDecimalPlaces);
            AssertAreEqual(evaluationLevel, input.EvaluationLevel);
        }
        public void VolumicWeightWater_Always_ExpectedValues()
        {
            // Setup
            var input              = new StabilityPointStructuresInput();
            var random             = new Random(22);
            var volumicWeightWater = new RoundedDouble(5, random.NextDouble());

            // Call
            input.VolumicWeightWater = volumicWeightWater;

            // Assert
            Assert.AreEqual(2, input.VolumicWeightWater.NumberOfDecimalPlaces);
            AssertAreEqual(volumicWeightWater, input.VolumicWeightWater);
        }
        public void FactorStormDurationOpenStructure_Always_ExpectedValues()
        {
            // Setup
            var input  = new StabilityPointStructuresInput();
            var random = new Random(22);
            var factorStormDurationOpenStructure = new RoundedDouble(5, random.NextDouble());

            // Call
            input.FactorStormDurationOpenStructure = factorStormDurationOpenStructure;

            // Assert
            Assert.AreEqual(2, input.FactorStormDurationOpenStructure.NumberOfDecimalPlaces);
            AssertAreEqual(factorStormDurationOpenStructure, input.FactorStormDurationOpenStructure);
        }
Esempio n. 23
0
        private static void ReadInputParameters(StabilityPointStructuresInput inputParameters,
                                                StabilityPointStructuresCalculationEntity entity,
                                                ReadConversionCollector collector)
        {
            if (entity.StabilityPointStructureEntity != null)
            {
                inputParameters.Structure = entity.StabilityPointStructureEntity.Read(collector);
            }

            entity.Read(inputParameters, collector);

            inputParameters.InsideWaterLevel.Mean = (RoundedDouble)entity.InsideWaterLevelMean.ToNullAsNaN();
            inputParameters.InsideWaterLevel.StandardDeviation        = (RoundedDouble)entity.InsideWaterLevelStandardDeviation.ToNullAsNaN();
            inputParameters.ThresholdHeightOpenWeir.Mean              = (RoundedDouble)entity.ThresholdHeightOpenWeirMean.ToNullAsNaN();
            inputParameters.ThresholdHeightOpenWeir.StandardDeviation = (RoundedDouble)entity.ThresholdHeightOpenWeirStandardDeviation.ToNullAsNaN();
            inputParameters.ConstructiveStrengthLinearLoadModel.Mean  = (RoundedDouble)entity.ConstructiveStrengthLinearLoadModelMean.ToNullAsNaN();
            inputParameters.ConstructiveStrengthLinearLoadModel.CoefficientOfVariation = (RoundedDouble)entity.ConstructiveStrengthLinearLoadModelCoefficientOfVariation.ToNullAsNaN();
            inputParameters.ConstructiveStrengthQuadraticLoadModel.Mean = (RoundedDouble)entity.ConstructiveStrengthQuadraticLoadModelMean.ToNullAsNaN();
            inputParameters.ConstructiveStrengthQuadraticLoadModel.CoefficientOfVariation = (RoundedDouble)entity.ConstructiveStrengthQuadraticLoadModelCoefficientOfVariation.ToNullAsNaN();
            inputParameters.BankWidth.Mean = (RoundedDouble)entity.BankWidthMean.ToNullAsNaN();
            inputParameters.BankWidth.StandardDeviation = (RoundedDouble)entity.BankWidthStandardDeviation.ToNullAsNaN();
            inputParameters.InsideWaterLevelFailureConstruction.Mean = (RoundedDouble)entity.InsideWaterLevelFailureConstructionMean.ToNullAsNaN();
            inputParameters.InsideWaterLevelFailureConstruction.StandardDeviation = (RoundedDouble)entity.InsideWaterLevelFailureConstructionStandardDeviation.ToNullAsNaN();
            inputParameters.EvaluationLevel          = (RoundedDouble)entity.EvaluationLevel.ToNullAsNaN();
            inputParameters.LevelCrestStructure.Mean = (RoundedDouble)entity.LevelCrestStructureMean.ToNullAsNaN();
            inputParameters.LevelCrestStructure.StandardDeviation = (RoundedDouble)entity.LevelCrestStructureStandardDeviation.ToNullAsNaN();
            inputParameters.VerticalDistance = (RoundedDouble)entity.VerticalDistance.ToNullAsNaN();
            inputParameters.FailureProbabilityRepairClosure = entity.FailureProbabilityRepairClosure;
            inputParameters.FailureCollisionEnergy.Mean     = (RoundedDouble)entity.FailureCollisionEnergyMean.ToNullAsNaN();
            inputParameters.FailureCollisionEnergy.CoefficientOfVariation = (RoundedDouble)entity.FailureCollisionEnergyCoefficientOfVariation.ToNullAsNaN();
            inputParameters.ShipMass.Mean = (RoundedDouble)entity.ShipMassMean.ToNullAsNaN();
            inputParameters.ShipMass.CoefficientOfVariation = (RoundedDouble)entity.ShipMassCoefficientOfVariation.ToNullAsNaN();
            inputParameters.ShipVelocity.Mean = (RoundedDouble)entity.ShipVelocityMean.ToNullAsNaN();
            inputParameters.ShipVelocity.CoefficientOfVariation = (RoundedDouble)entity.ShipVelocityCoefficientOfVariation.ToNullAsNaN();
            inputParameters.LevellingCount = entity.LevellingCount;
            inputParameters.ProbabilityCollisionSecondaryStructure             = entity.ProbabilityCollisionSecondaryStructure;
            inputParameters.FlowVelocityStructureClosable.Mean                 = (RoundedDouble)entity.FlowVelocityStructureClosableMean.ToNullAsNaN();
            inputParameters.StabilityLinearLoadModel.Mean                      = (RoundedDouble)entity.StabilityLinearLoadModelMean.ToNullAsNaN();
            inputParameters.StabilityLinearLoadModel.CoefficientOfVariation    = (RoundedDouble)entity.StabilityLinearLoadModelCoefficientOfVariation.ToNullAsNaN();
            inputParameters.StabilityQuadraticLoadModel.Mean                   = (RoundedDouble)entity.StabilityQuadraticLoadModelMean.ToNullAsNaN();
            inputParameters.StabilityQuadraticLoadModel.CoefficientOfVariation = (RoundedDouble)entity.StabilityQuadraticLoadModelCoefficientOfVariation.ToNullAsNaN();
            inputParameters.AreaFlowApertures.Mean = (RoundedDouble)entity.AreaFlowAperturesMean.ToNullAsNaN();
            inputParameters.AreaFlowApertures.StandardDeviation = (RoundedDouble)entity.AreaFlowAperturesStandardDeviation.ToNullAsNaN();
            inputParameters.InflowModelType                    = (StabilityPointStructureInflowModelType)entity.InflowModelType;
            inputParameters.LoadSchematizationType             = (LoadSchematizationType)entity.LoadSchematizationType;
            inputParameters.VolumicWeightWater                 = (RoundedDouble)entity.VolumicWeightWater.ToNullAsNaN();
            inputParameters.FactorStormDurationOpenStructure   = (RoundedDouble)entity.FactorStormDurationOpenStructure.ToNullAsNaN();
            inputParameters.DrainCoefficient.Mean              = (RoundedDouble)entity.DrainCoefficientMean.ToNullAsNaN();
            inputParameters.DrainCoefficient.StandardDeviation = (RoundedDouble)entity.DrainCoefficientStandardDeviation.ToNullAsNaN();
        }
        public void IsStructureInputSynchronized_StructureAndInputInSync_ReturnTrue()
        {
            // Setup
            var structure = new TestStabilityPointStructure();
            var input     = new StabilityPointStructuresInput
            {
                Structure = structure
            };

            // Call
            bool isStructureInputSynchronized = input.IsStructureInputSynchronized;

            // Assert
            Assert.IsTrue(isStructureInputSynchronized);
        }
        public void IsStructureInputSynchronized_StructureAndInputNotInSync_ReturnFalse(StabilityPointStructure modifiedStructure)
        {
            // Setup
            var structure = new TestStabilityPointStructure();
            var input     = new StabilityPointStructuresInput
            {
                Structure = structure
            };

            structure.CopyProperties(modifiedStructure);

            // Call
            bool isStructureInputSynchronized = input.IsStructureInputSynchronized;

            // Assert
            Assert.IsFalse(isStructureInputSynchronized);
        }
        public void ConstructorWithData_Always_ExpectedPropertiesSet()
        {
            // Setup
            var assessmentSection = mocksRepository.Stub <IAssessmentSection>();

            mocksRepository.ReplayAll();

            var input            = new StabilityPointStructuresInput();
            var calculation      = new StructuresCalculation <StabilityPointStructuresInput>();
            var failureMechanism = new StabilityPointStructuresFailureMechanism();

            // Call
            var context = new StabilityPointStructuresInputContext(input, calculation, failureMechanism, assessmentSection);

            // Assert
            Assert.IsInstanceOf <InputContextBase <StabilityPointStructuresInput, StructuresCalculation <StabilityPointStructuresInput>, StabilityPointStructuresFailureMechanism> >(context);
            Assert.AreSame(input, context.WrappedData);
            Assert.AreSame(calculation, context.Calculation);
            Assert.AreSame(failureMechanism, context.FailureMechanism);
            Assert.AreSame(assessmentSection, context.AssessmentSection);
            mocksRepository.VerifyAll();
        }
        public void Read_ValidEntity_ReturnStabilityPointStructuresCalculation()
        {
            // Setup
            var entity = new StabilityPointStructuresCalculationEntity
            {
                Name = "name",
                RelevantForScenario             = Convert.ToByte(true),
                ScenarioContribution            = 0.0,
                Comments                        = "comments",
                StructureNormalOrientation      = 1.1,
                AllowedLevelIncreaseStorageMean = 2.2,
                AllowedLevelIncreaseStorageStandardDeviation = 3.3,
                StorageStructureAreaMean = 4.4,
                StorageStructureAreaCoefficientOfVariation         = 5.5,
                FlowWidthAtBottomProtectionMean                    = 6.6,
                FlowWidthAtBottomProtectionStandardDeviation       = 7.7,
                CriticalOvertoppingDischargeMean                   = 8.8,
                CriticalOvertoppingDischargeCoefficientOfVariation = 9.9,
                FailureProbabilityStructureWithErosion             = 0.10,
                WidthFlowAperturesMean = 11.11,
                WidthFlowAperturesStandardDeviation = 12.12,
                StormDurationMean    = 13.13,
                UseBreakWater        = Convert.ToByte(true),
                BreakWaterType       = Convert.ToByte(BreakWaterType.Wall),
                BreakWaterHeight     = 14.14,
                UseForeshore         = Convert.ToByte(true),
                InsideWaterLevelMean = 15.15,
                InsideWaterLevelStandardDeviation        = 16.16,
                ThresholdHeightOpenWeirMean              = 17.17,
                ThresholdHeightOpenWeirStandardDeviation = 18.18,
                ConstructiveStrengthLinearLoadModelMean  = 19.19,
                ConstructiveStrengthLinearLoadModelCoefficientOfVariation = 20.20,
                ConstructiveStrengthQuadraticLoadModelMean = 21.21,
                ConstructiveStrengthQuadraticLoadModelCoefficientOfVariation = 22.22,
                BankWidthMean = 23.23,
                BankWidthStandardDeviation = 24.24,
                InsideWaterLevelFailureConstructionMean = 25.25,
                InsideWaterLevelFailureConstructionStandardDeviation = 26.26,
                EvaluationLevel         = 27.27,
                LevelCrestStructureMean = 28.28,
                LevelCrestStructureStandardDeviation = 29.29,
                VerticalDistance = 30.30,
                FailureProbabilityRepairClosure = 0.31,
                FailureCollisionEnergyMean      = 32.32,
                FailureCollisionEnergyCoefficientOfVariation = 33.33,
                ShipMassMean = 34.34,
                ShipMassCoefficientOfVariation = 35.35,
                ShipVelocityMean = 36.36,
                ShipVelocityCoefficientOfVariation = 37.37,
                LevellingCount = 38,
                ProbabilityCollisionSecondaryStructure            = 0.39,
                FlowVelocityStructureClosableMean                 = 40.40,
                StabilityLinearLoadModelMean                      = 41.41,
                StabilityLinearLoadModelCoefficientOfVariation    = 42.42,
                StabilityQuadraticLoadModelMean                   = 43.43,
                StabilityQuadraticLoadModelCoefficientOfVariation = 44.44,
                AreaFlowAperturesMean = 45.45,
                AreaFlowAperturesStandardDeviation = 46.46,
                InflowModelType                   = Convert.ToByte(StabilityPointStructureInflowModelType.FloodedCulvert),
                LoadSchematizationType            = Convert.ToByte(LoadSchematizationType.Quadratic),
                VolumicWeightWater                = 47.47,
                FactorStormDurationOpenStructure  = 48.48,
                DrainCoefficientMean              = 49.49,
                DrainCoefficientStandardDeviation = 50.50
            };
            var collector = new ReadConversionCollector();

            // Call
            StructuresCalculationScenario <StabilityPointStructuresInput> calculation = entity.Read(collector);

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

            StabilityPointStructuresInput inputParameters = calculation.InputParameters;

            Assert.IsNull(inputParameters.ForeshoreProfile);
            Assert.IsNull(inputParameters.Structure);
            Assert.IsNull(inputParameters.HydraulicBoundaryLocation);
            Assert.AreEqual(entity.StructureNormalOrientation, inputParameters.StructureNormalOrientation.Value);
            Assert.AreEqual(entity.AllowedLevelIncreaseStorageMean, inputParameters.AllowedLevelIncreaseStorage.Mean.Value);
            Assert.AreEqual(entity.AllowedLevelIncreaseStorageStandardDeviation, inputParameters.AllowedLevelIncreaseStorage.StandardDeviation.Value);
            Assert.AreEqual(entity.StorageStructureAreaMean, inputParameters.StorageStructureArea.Mean.Value);
            Assert.AreEqual(entity.StorageStructureAreaCoefficientOfVariation, inputParameters.StorageStructureArea.CoefficientOfVariation.Value);
            Assert.AreEqual(entity.FlowWidthAtBottomProtectionMean, inputParameters.FlowWidthAtBottomProtection.Mean.Value);
            Assert.AreEqual(entity.FlowWidthAtBottomProtectionStandardDeviation, inputParameters.FlowWidthAtBottomProtection.StandardDeviation.Value);
            Assert.AreEqual(entity.CriticalOvertoppingDischargeMean, inputParameters.CriticalOvertoppingDischarge.Mean.Value);
            Assert.AreEqual(entity.CriticalOvertoppingDischargeCoefficientOfVariation, inputParameters.CriticalOvertoppingDischarge.CoefficientOfVariation.Value);
            Assert.AreEqual(entity.FailureProbabilityStructureWithErosion, inputParameters.FailureProbabilityStructureWithErosion);
            Assert.AreEqual(entity.WidthFlowAperturesMean, inputParameters.WidthFlowApertures.Mean.Value);
            Assert.AreEqual(entity.WidthFlowAperturesStandardDeviation, inputParameters.WidthFlowApertures.StandardDeviation.Value);
            Assert.AreEqual(entity.StormDurationMean, inputParameters.StormDuration.Mean.Value);
            Assert.AreEqual(Convert.ToBoolean(entity.UseBreakWater), inputParameters.UseBreakWater);
            Assert.AreEqual((BreakWaterType)entity.BreakWaterType, inputParameters.BreakWater.Type);
            Assert.AreEqual(entity.BreakWaterHeight, inputParameters.BreakWater.Height.Value);
            Assert.AreEqual(Convert.ToBoolean(entity.UseForeshore), inputParameters.UseForeshore);

            Assert.AreEqual(entity.InsideWaterLevelMean, inputParameters.InsideWaterLevel.Mean.Value);
            Assert.AreEqual(entity.InsideWaterLevelStandardDeviation, inputParameters.InsideWaterLevel.StandardDeviation.Value);
            Assert.AreEqual(entity.ThresholdHeightOpenWeirMean, inputParameters.ThresholdHeightOpenWeir.Mean.Value);
            Assert.AreEqual(entity.ThresholdHeightOpenWeirStandardDeviation, inputParameters.ThresholdHeightOpenWeir.StandardDeviation.Value);
            Assert.AreEqual(entity.ConstructiveStrengthLinearLoadModelMean, inputParameters.ConstructiveStrengthLinearLoadModel.Mean.Value);
            Assert.AreEqual(entity.ConstructiveStrengthLinearLoadModelCoefficientOfVariation, inputParameters.ConstructiveStrengthLinearLoadModel.CoefficientOfVariation.Value);
            Assert.AreEqual(entity.ConstructiveStrengthQuadraticLoadModelMean, inputParameters.ConstructiveStrengthQuadraticLoadModel.Mean.Value);
            Assert.AreEqual(entity.ConstructiveStrengthQuadraticLoadModelCoefficientOfVariation, inputParameters.ConstructiveStrengthQuadraticLoadModel.CoefficientOfVariation.Value);
            Assert.AreEqual(entity.BankWidthMean, inputParameters.BankWidth.Mean.Value);
            Assert.AreEqual(entity.BankWidthStandardDeviation, inputParameters.BankWidth.StandardDeviation.Value);
            Assert.AreEqual(entity.InsideWaterLevelFailureConstructionMean, inputParameters.InsideWaterLevelFailureConstruction.Mean.Value);
            Assert.AreEqual(entity.InsideWaterLevelFailureConstructionStandardDeviation, inputParameters.InsideWaterLevelFailureConstruction.StandardDeviation.Value);
            Assert.AreEqual(entity.EvaluationLevel, inputParameters.EvaluationLevel.Value);
            Assert.AreEqual(entity.LevelCrestStructureMean, inputParameters.LevelCrestStructure.Mean.Value);
            Assert.AreEqual(entity.LevelCrestStructureStandardDeviation, inputParameters.LevelCrestStructure.StandardDeviation.Value);
            Assert.AreEqual(entity.VerticalDistance, inputParameters.VerticalDistance.Value);
            Assert.AreEqual(entity.FailureProbabilityRepairClosure, inputParameters.FailureProbabilityRepairClosure);
            Assert.AreEqual(entity.FailureCollisionEnergyMean, inputParameters.FailureCollisionEnergy.Mean.Value);
            Assert.AreEqual(entity.FailureCollisionEnergyCoefficientOfVariation, inputParameters.FailureCollisionEnergy.CoefficientOfVariation.Value);
            Assert.AreEqual(entity.ShipMassMean, inputParameters.ShipMass.Mean.Value);
            Assert.AreEqual(entity.ShipMassCoefficientOfVariation, inputParameters.ShipMass.CoefficientOfVariation.Value);
            Assert.AreEqual(entity.ShipVelocityMean, inputParameters.ShipVelocity.Mean.Value);
            Assert.AreEqual(entity.ShipVelocityCoefficientOfVariation, inputParameters.ShipVelocity.CoefficientOfVariation.Value);
            Assert.AreEqual(entity.LevellingCount, inputParameters.LevellingCount);
            Assert.AreEqual(entity.ProbabilityCollisionSecondaryStructure, inputParameters.ProbabilityCollisionSecondaryStructure);
            Assert.AreEqual(entity.FlowVelocityStructureClosableMean, inputParameters.FlowVelocityStructureClosable.Mean.Value);
            Assert.AreEqual(entity.StabilityLinearLoadModelMean, inputParameters.StabilityLinearLoadModel.Mean.Value);
            Assert.AreEqual(entity.StabilityLinearLoadModelCoefficientOfVariation, inputParameters.StabilityLinearLoadModel.CoefficientOfVariation.Value);
            Assert.AreEqual(entity.StabilityQuadraticLoadModelMean, inputParameters.StabilityQuadraticLoadModel.Mean.Value);
            Assert.AreEqual(entity.StabilityQuadraticLoadModelCoefficientOfVariation, inputParameters.StabilityQuadraticLoadModel.CoefficientOfVariation.Value);
            Assert.AreEqual(entity.AreaFlowAperturesMean, inputParameters.AreaFlowApertures.Mean.Value);
            Assert.AreEqual(entity.AreaFlowAperturesStandardDeviation, inputParameters.AreaFlowApertures.StandardDeviation.Value);
            Assert.AreEqual((StabilityPointStructureInflowModelType)entity.InflowModelType, inputParameters.InflowModelType);
            Assert.AreEqual((LoadSchematizationType)entity.LoadSchematizationType, inputParameters.LoadSchematizationType);
            Assert.AreEqual(entity.VolumicWeightWater, inputParameters.VolumicWeightWater.Value);
            Assert.AreEqual(entity.FactorStormDurationOpenStructure, inputParameters.FactorStormDurationOpenStructure.Value);
            Assert.AreEqual(entity.DrainCoefficientMean, inputParameters.DrainCoefficient.Mean.Value);
            Assert.AreEqual(entity.DrainCoefficientStandardDeviation, inputParameters.DrainCoefficient.StandardDeviation.Value);
            Assert.IsFalse(calculation.HasOutput);
        }
Esempio n. 28
0
        /// <summary>
        /// This method sets random data values to all properties of <paramref name="input"/>.
        /// </summary>
        /// <param name="input">The input to set the random data values to.</param>
        public static void SetRandomDataToStabilityPointStructuresInput(StabilityPointStructuresInput input)
        {
            var random = new Random(21);

            input.Structure = new TestStabilityPointStructure();

            input.InsideWaterLevelFailureConstruction = new NormalDistribution
            {
                Mean = random.NextRoundedDouble(),
                StandardDeviation = random.NextRoundedDouble()
            };

            input.InsideWaterLevel = new NormalDistribution
            {
                Mean = random.NextRoundedDouble(),
                StandardDeviation = random.NextRoundedDouble()
            };

            input.DrainCoefficient = new LogNormalDistribution
            {
                Mean = random.NextRoundedDouble()
            };

            input.LevelCrestStructure = new NormalDistribution
            {
                Mean = random.NextRoundedDouble(),
                StandardDeviation = random.NextRoundedDouble()
            };

            input.ThresholdHeightOpenWeir = new NormalDistribution
            {
                Mean = random.NextRoundedDouble(),
                StandardDeviation = random.NextRoundedDouble()
            };

            input.AreaFlowApertures = new LogNormalDistribution
            {
                Mean = random.NextRoundedDouble(),
                StandardDeviation = random.NextRoundedDouble()
            };

            input.ConstructiveStrengthLinearLoadModel = new VariationCoefficientLogNormalDistribution
            {
                Mean = random.NextRoundedDouble(),
                CoefficientOfVariation = random.NextRoundedDouble()
            };

            input.ConstructiveStrengthQuadraticLoadModel = new VariationCoefficientLogNormalDistribution
            {
                Mean = random.NextRoundedDouble(),
                CoefficientOfVariation = random.NextRoundedDouble()
            };

            input.StabilityLinearLoadModel = new VariationCoefficientLogNormalDistribution
            {
                Mean = random.NextRoundedDouble(),
                CoefficientOfVariation = random.NextRoundedDouble()
            };

            input.StabilityQuadraticLoadModel = new VariationCoefficientLogNormalDistribution
            {
                Mean = random.NextRoundedDouble(),
                CoefficientOfVariation = random.NextRoundedDouble()
            };

            input.FailureCollisionEnergy = new VariationCoefficientLogNormalDistribution
            {
                Mean = random.NextRoundedDouble(),
                CoefficientOfVariation = random.NextRoundedDouble()
            };

            input.ShipMass = new VariationCoefficientNormalDistribution
            {
                Mean = random.NextRoundedDouble(),
                CoefficientOfVariation = random.NextRoundedDouble()
            };

            input.ShipVelocity = new VariationCoefficientNormalDistribution
            {
                Mean = random.NextRoundedDouble(),
                CoefficientOfVariation = random.NextRoundedDouble()
            };

            input.BankWidth = new NormalDistribution
            {
                Mean = random.NextRoundedDouble(),
                StandardDeviation = random.NextRoundedDouble()
            };

            input.FlowVelocityStructureClosable = new VariationCoefficientNormalDistribution
            {
                Mean = random.NextRoundedDouble()
            };

            input.VolumicWeightWater = random.NextRoundedDouble();
            input.FactorStormDurationOpenStructure = random.NextRoundedDouble();
            input.EvaluationLevel  = random.NextRoundedDouble();
            input.VerticalDistance = random.NextRoundedDouble();
            input.FailureProbabilityRepairClosure        = random.NextDouble();
            input.ProbabilityCollisionSecondaryStructure = random.NextDouble();
            input.InflowModelType        = random.NextEnumValue <StabilityPointStructureInflowModelType>();
            input.LoadSchematizationType = random.NextEnumValue <LoadSchematizationType>();
            input.LevellingCount         = random.Next();

            CommonTestDataGenerator.SetRandomDataToStructuresInput(input);
        }
        public void Read_EntityWithNullParameters_ReturnStabilityPointStructuresCalculationWithInputParametersNaN()
        {
            // Setup
            var entity = new StabilityPointStructuresCalculationEntity
            {
                ScenarioContribution            = 0,
                StructureNormalOrientation      = null,
                AllowedLevelIncreaseStorageMean = null,
                AllowedLevelIncreaseStorageStandardDeviation = null,
                StorageStructureAreaMean = null,
                StorageStructureAreaCoefficientOfVariation         = null,
                FlowWidthAtBottomProtectionMean                    = null,
                FlowWidthAtBottomProtectionStandardDeviation       = null,
                CriticalOvertoppingDischargeMean                   = null,
                CriticalOvertoppingDischargeCoefficientOfVariation = null,
                WidthFlowAperturesMean = null,
                WidthFlowAperturesStandardDeviation = null,
                StormDurationMean    = null,
                BreakWaterHeight     = null,
                InsideWaterLevelMean = null,
                InsideWaterLevelStandardDeviation        = null,
                ThresholdHeightOpenWeirMean              = null,
                ThresholdHeightOpenWeirStandardDeviation = null,
                ConstructiveStrengthLinearLoadModelMean  = null,
                ConstructiveStrengthLinearLoadModelCoefficientOfVariation = null,
                ConstructiveStrengthQuadraticLoadModelMean = null,
                ConstructiveStrengthQuadraticLoadModelCoefficientOfVariation = null,
                BankWidthMean = null,
                BankWidthStandardDeviation = null,
                InsideWaterLevelFailureConstructionMean = null,
                InsideWaterLevelFailureConstructionStandardDeviation = null,
                EvaluationLevel         = null,
                LevelCrestStructureMean = null,
                LevelCrestStructureStandardDeviation = null,
                VerticalDistance           = null,
                FailureCollisionEnergyMean = null,
                FailureCollisionEnergyCoefficientOfVariation = null,
                ShipMassMean = null,
                ShipMassCoefficientOfVariation = null,
                ShipVelocityMean = null,
                ShipVelocityCoefficientOfVariation                = null,
                FlowVelocityStructureClosableMean                 = null,
                StabilityLinearLoadModelMean                      = null,
                StabilityLinearLoadModelCoefficientOfVariation    = null,
                StabilityQuadraticLoadModelMean                   = null,
                StabilityQuadraticLoadModelCoefficientOfVariation = null,
                AreaFlowAperturesMean = null,
                AreaFlowAperturesStandardDeviation = null,
                VolumicWeightWater = null,
                FactorStormDurationOpenStructure  = null,
                DrainCoefficientMean              = null,
                DrainCoefficientStandardDeviation = null
            };
            var collector = new ReadConversionCollector();

            // Call
            StructuresCalculationScenario <StabilityPointStructuresInput> calculation = entity.Read(collector);

            // Assert
            StabilityPointStructuresInput inputParameters = calculation.InputParameters;

            Assert.IsNaN(inputParameters.StructureNormalOrientation);
            Assert.IsNaN(inputParameters.AllowedLevelIncreaseStorage.Mean);
            Assert.IsNaN(inputParameters.AllowedLevelIncreaseStorage.StandardDeviation);
            Assert.IsNaN(inputParameters.StorageStructureArea.Mean);
            Assert.IsNaN(inputParameters.StorageStructureArea.CoefficientOfVariation);
            Assert.IsNaN(inputParameters.FlowWidthAtBottomProtection.Mean);
            Assert.IsNaN(inputParameters.FlowWidthAtBottomProtection.StandardDeviation);
            Assert.IsNaN(inputParameters.CriticalOvertoppingDischarge.Mean);
            Assert.IsNaN(inputParameters.CriticalOvertoppingDischarge.CoefficientOfVariation);
            Assert.IsNaN(inputParameters.WidthFlowApertures.Mean);
            Assert.IsNaN(inputParameters.WidthFlowApertures.StandardDeviation);
            Assert.IsNaN(inputParameters.StormDuration.Mean);
            Assert.IsNaN(inputParameters.BreakWater.Height);

            Assert.IsNaN(inputParameters.InsideWaterLevel.Mean);
            Assert.IsNaN(inputParameters.InsideWaterLevel.StandardDeviation);
            Assert.IsNaN(inputParameters.ThresholdHeightOpenWeir.Mean);
            Assert.IsNaN(inputParameters.ThresholdHeightOpenWeir.StandardDeviation);
            Assert.IsNaN(inputParameters.ConstructiveStrengthLinearLoadModel.Mean);
            Assert.IsNaN(inputParameters.ConstructiveStrengthLinearLoadModel.CoefficientOfVariation);
            Assert.IsNaN(inputParameters.ConstructiveStrengthQuadraticLoadModel.Mean);
            Assert.IsNaN(inputParameters.ConstructiveStrengthQuadraticLoadModel.CoefficientOfVariation);
            Assert.IsNaN(inputParameters.BankWidth.Mean);
            Assert.IsNaN(inputParameters.BankWidth.StandardDeviation);
            Assert.IsNaN(inputParameters.InsideWaterLevelFailureConstruction.Mean);
            Assert.IsNaN(inputParameters.InsideWaterLevelFailureConstruction.StandardDeviation);
            Assert.IsNaN(inputParameters.EvaluationLevel);
            Assert.IsNaN(inputParameters.LevelCrestStructure.Mean);
            Assert.IsNaN(inputParameters.LevelCrestStructure.StandardDeviation);
            Assert.IsNaN(inputParameters.VerticalDistance);
            Assert.IsNaN(inputParameters.FailureCollisionEnergy.Mean);
            Assert.IsNaN(inputParameters.FailureCollisionEnergy.CoefficientOfVariation);
            Assert.IsNaN(inputParameters.ShipMass.Mean);
            Assert.IsNaN(inputParameters.ShipMass.CoefficientOfVariation);
            Assert.IsNaN(inputParameters.ShipVelocity.Mean);
            Assert.IsNaN(inputParameters.ShipVelocity.CoefficientOfVariation);
            Assert.IsNaN(inputParameters.FlowVelocityStructureClosable.Mean);
            Assert.IsNaN(inputParameters.StabilityLinearLoadModel.Mean);
            Assert.IsNaN(inputParameters.StabilityLinearLoadModel.CoefficientOfVariation);
            Assert.IsNaN(inputParameters.StabilityQuadraticLoadModel.Mean);
            Assert.IsNaN(inputParameters.StabilityQuadraticLoadModel.CoefficientOfVariation);
            Assert.IsNaN(inputParameters.AreaFlowApertures.Mean);
            Assert.IsNaN(inputParameters.AreaFlowApertures.StandardDeviation);
            Assert.IsNaN(inputParameters.VolumicWeightWater);
            Assert.IsNaN(inputParameters.FactorStormDurationOpenStructure);
            Assert.IsNaN(inputParameters.DrainCoefficient.Mean);
            Assert.IsNaN(inputParameters.DrainCoefficient.StandardDeviation);
        }
        public void Constructor_ExpectedValues()
        {
            // Call
            var input = new StabilityPointStructuresInput();

            // Assert
            Assert.IsInstanceOf <StructuresInputBase <StabilityPointStructure> >(input);

            AssertAreEqual(9.81, input.VolumicWeightWater);
            Assert.AreEqual(2, input.VolumicWeightWater.NumberOfDecimalPlaces);

            var expectedInsideWaterLevelFailureConstruction = new NormalDistribution(2)
            {
                Mean = RoundedDouble.NaN,
                StandardDeviation = RoundedDouble.NaN
            };

            var expectedInsideWaterLevel = new NormalDistribution(2)
            {
                Mean = RoundedDouble.NaN,
                StandardDeviation = RoundedDouble.NaN
            };

            var expectedDrainCoefficient = new LogNormalDistribution(2)
            {
                Mean = (RoundedDouble)1,
                StandardDeviation = (RoundedDouble)0.2
            };

            var expectedFlowVelocityStructureClosable = new VariationCoefficientNormalDistribution(2)
            {
                Mean = RoundedDouble.NaN,
                CoefficientOfVariation = (RoundedDouble)0.2
            };

            var expectedLevelCrestStructure = new NormalDistribution(2)
            {
                Mean = RoundedDouble.NaN,
                StandardDeviation = RoundedDouble.NaN
            };

            var expectedThresholdHeightOpenWeir = new NormalDistribution(2)
            {
                Mean = RoundedDouble.NaN,
                StandardDeviation = RoundedDouble.NaN
            };

            var expectedAreaFlowApertures = new LogNormalDistribution(2)
            {
                Mean = RoundedDouble.NaN,
                StandardDeviation = RoundedDouble.NaN
            };

            var expectedConstructiveStrengthLinearLoadModel = new VariationCoefficientLogNormalDistribution(2)
            {
                Mean = RoundedDouble.NaN,
                CoefficientOfVariation = RoundedDouble.NaN
            };

            var expectedConstructiveStrengthQuadraticLoadModel = new VariationCoefficientLogNormalDistribution(2)
            {
                Mean = RoundedDouble.NaN,
                CoefficientOfVariation = RoundedDouble.NaN
            };

            var expectedStabilityLinearLoadModel = new VariationCoefficientLogNormalDistribution(2)
            {
                Mean = RoundedDouble.NaN,
                CoefficientOfVariation = RoundedDouble.NaN
            };

            var expectedStabilityQuadraticLoadModel = new VariationCoefficientLogNormalDistribution(2)
            {
                Mean = RoundedDouble.NaN,
                CoefficientOfVariation = RoundedDouble.NaN
            };

            var expectedFailureCollisionEnergy = new VariationCoefficientLogNormalDistribution(2)
            {
                Mean = RoundedDouble.NaN,
                CoefficientOfVariation = RoundedDouble.NaN
            };

            var expectedShipMass = new VariationCoefficientNormalDistribution(2)
            {
                Mean = RoundedDouble.NaN,
                CoefficientOfVariation = RoundedDouble.NaN
            };

            var expectedShipVelocity = new VariationCoefficientNormalDistribution(2)
            {
                Mean = RoundedDouble.NaN,
                CoefficientOfVariation = RoundedDouble.NaN
            };

            var expectedBankWidth = new NormalDistribution(2)
            {
                Mean = RoundedDouble.NaN,
                StandardDeviation = RoundedDouble.NaN
            };

            DistributionAssert.AreEqual(expectedInsideWaterLevelFailureConstruction, input.InsideWaterLevelFailureConstruction);
            DistributionAssert.AreEqual(expectedInsideWaterLevel, input.InsideWaterLevel);

            Assert.AreEqual(2, input.FactorStormDurationOpenStructure.NumberOfDecimalPlaces);
            Assert.AreEqual(1.0, input.FactorStormDurationOpenStructure, input.FactorStormDurationOpenStructure.GetAccuracy());
            DistributionAssert.AreEqual(expectedDrainCoefficient, input.DrainCoefficient);
            DistributionAssert.AreEqual(expectedFlowVelocityStructureClosable, input.FlowVelocityStructureClosable);

            DistributionAssert.AreEqual(expectedLevelCrestStructure, input.LevelCrestStructure);
            DistributionAssert.AreEqual(expectedThresholdHeightOpenWeir, input.ThresholdHeightOpenWeir);
            DistributionAssert.AreEqual(expectedAreaFlowApertures, input.AreaFlowApertures);
            DistributionAssert.AreEqual(expectedConstructiveStrengthLinearLoadModel, input.ConstructiveStrengthLinearLoadModel);
            DistributionAssert.AreEqual(expectedConstructiveStrengthQuadraticLoadModel, input.ConstructiveStrengthQuadraticLoadModel);
            DistributionAssert.AreEqual(expectedStabilityLinearLoadModel, input.StabilityLinearLoadModel);
            DistributionAssert.AreEqual(expectedStabilityQuadraticLoadModel, input.StabilityQuadraticLoadModel);
            Assert.AreEqual(0, input.FailureProbabilityRepairClosure);
            DistributionAssert.AreEqual(expectedFailureCollisionEnergy, input.FailureCollisionEnergy);
            DistributionAssert.AreEqual(expectedShipMass, input.ShipMass);
            DistributionAssert.AreEqual(expectedShipVelocity, input.ShipVelocity);
            Assert.AreEqual(0, input.LevellingCount);
            Assert.AreEqual(0, input.ProbabilityCollisionSecondaryStructure);
            DistributionAssert.AreEqual(expectedBankWidth, input.BankWidth);
            Assert.AreEqual(2, input.EvaluationLevel.NumberOfDecimalPlaces);
            AssertAreEqual(double.NaN, input.EvaluationLevel);
            Assert.AreEqual(2, input.VerticalDistance.NumberOfDecimalPlaces);
            AssertAreEqual(double.NaN, input.VerticalDistance);

            Assert.AreEqual(0, (int)input.InflowModelType);
            Assert.AreEqual(LoadSchematizationType.Linear, input.LoadSchematizationType);
        }