public void Constructor_ExpectedValues() { // Call var inputParameters = new GeneralGrassCoverErosionOutwardsInput(); // Assert Assert.AreEqual(2, inputParameters.N.NumberOfDecimalPlaces); Assert.AreEqual(2.0, inputParameters.N, inputParameters.N.GetAccuracy()); GeneralWaveConditionsInput generalWaveImpactWaveConditionsInput = inputParameters.GeneralWaveImpactWaveConditionsInput; Assert.AreEqual(1.0, generalWaveImpactWaveConditionsInput.A, generalWaveImpactWaveConditionsInput.A.GetAccuracy()); Assert.AreEqual(0.67, generalWaveImpactWaveConditionsInput.B, generalWaveImpactWaveConditionsInput.B.GetAccuracy()); Assert.AreEqual(0.0, generalWaveImpactWaveConditionsInput.C, generalWaveImpactWaveConditionsInput.C.GetAccuracy()); GeneralWaveConditionsInput generalWaveRunUpWaveConditionsInput = inputParameters.GeneralWaveRunUpWaveConditionsInput; Assert.AreEqual(1.0, generalWaveRunUpWaveConditionsInput.A, generalWaveRunUpWaveConditionsInput.A.GetAccuracy()); Assert.AreEqual(1.7, generalWaveRunUpWaveConditionsInput.B, generalWaveRunUpWaveConditionsInput.B.GetAccuracy()); Assert.AreEqual(0.3, generalWaveRunUpWaveConditionsInput.C, generalWaveRunUpWaveConditionsInput.C.GetAccuracy()); GeneralWaveConditionsInput generalWaveImpactWithWaveDirectionWaveConditionsInput = inputParameters.GeneralWaveImpactWithWaveDirectionWaveConditionsInput; Assert.AreEqual(1.0, generalWaveImpactWithWaveDirectionWaveConditionsInput.A, generalWaveImpactWithWaveDirectionWaveConditionsInput.A.GetAccuracy()); Assert.AreEqual(0.67, generalWaveImpactWithWaveDirectionWaveConditionsInput.B, generalWaveImpactWithWaveDirectionWaveConditionsInput.B.GetAccuracy()); Assert.AreEqual(0.67, generalWaveImpactWithWaveDirectionWaveConditionsInput.C, generalWaveImpactWithWaveDirectionWaveConditionsInput.C.GetAccuracy()); Assert.IsFalse(inputParameters.ApplyLengthEffectInSection); }
public void Constructor_ExpectedValues() { // Setup var random = new Random(21); var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism { InAssembly = random.NextBoolean(), GeneralInput = { ApplyLengthEffectInSection = random.NextBoolean() } }; // Call var properties = new GrassCoverErosionOutwardsFailureMechanismProperties(failureMechanism); // Assert Assert.IsInstanceOf <GrassCoverErosionOutwardsFailureMechanismPropertiesBase>(properties); Assert.AreEqual(failureMechanism.Name, properties.Name); Assert.AreEqual(failureMechanism.Code, properties.Code); Assert.AreEqual(failureMechanism.InAssembly, properties.InAssembly); GeneralGrassCoverErosionOutwardsInput generalInput = failureMechanism.GeneralInput; Assert.AreEqual(2, properties.N.NumberOfDecimalPlaces); Assert.AreEqual(generalInput.N, properties.N, properties.N.GetAccuracy()); Assert.AreEqual(generalInput.ApplyLengthEffectInSection, properties.ApplyLengthEffectInSection); }
public void N_SetValidValue_UpdatesValue(double value) { // Setup var generalGrassCoverErosionOutwardsInput = new GeneralGrassCoverErosionOutwardsInput(); // Call generalGrassCoverErosionOutwardsInput.N = (RoundedDouble)value; // Assert Assert.AreEqual(2, generalGrassCoverErosionOutwardsInput.N.NumberOfDecimalPlaces); Assert.AreEqual(value, generalGrassCoverErosionOutwardsInput.N, generalGrassCoverErosionOutwardsInput.N.GetAccuracy()); }
public void Read_EntityNull_ThrowsArgumentNullException() { // Setup var input = new GeneralGrassCoverErosionOutwardsInput(); // Call TestDelegate test = () => ((GrassCoverErosionOutwardsFailureMechanismMetaEntity)null).Read(input); // Assert var exception = Assert.Throws <ArgumentNullException>(test); Assert.AreEqual("entity", exception.ParamName); }
public void N_SetValueOutsideValidRange_ThrowArgumentOutOfRangeException(double value) { // Setup var generalGrassCoverErosionOutwardsInput = new GeneralGrassCoverErosionOutwardsInput(); // Call TestDelegate test = () => generalGrassCoverErosionOutwardsInput.N = (RoundedDouble)value; // Assert const string expectedMessage = "De waarde voor 'N' moet in het bereik [1,00, 20,00] liggen."; TestHelper.AssertThrowsArgumentExceptionAndTestMessage <ArgumentOutOfRangeException>(test, expectedMessage); }
public void Read_ValidEntity_ReturnGeneralGrassCoverErosionOutwardsInput() { // Setup var random = new Random(); var inputToUpdate = new GeneralGrassCoverErosionOutwardsInput(); var entity = new GrassCoverErosionOutwardsFailureMechanismMetaEntity { N = random.NextRoundedDouble(1.0, 20.0), ApplyLengthEffectInSection = Convert.ToByte(random.NextBoolean()) }; // Call entity.Read(inputToUpdate); // Assert Assert.AreEqual(entity.N, inputToUpdate.N, inputToUpdate.N.GetAccuracy()); Assert.AreEqual(Convert.ToBoolean(entity.ApplyLengthEffectInSection), inputToUpdate.ApplyLengthEffectInSection); }
public void Constructor_ExpectedValues() { // Setup var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); // Call var properties = new GrassCoverErosionOutwardsFailureMechanismProperties(failureMechanism); // Assert Assert.IsInstanceOf <GrassCoverErosionOutwardsFailureMechanismPropertiesBase>(properties); Assert.AreSame(failureMechanism, properties.Data); Assert.AreEqual(failureMechanism.Name, properties.Name); Assert.AreEqual(failureMechanism.Code, properties.Code); GeneralGrassCoverErosionOutwardsInput generalInput = failureMechanism.GeneralInput; Assert.AreSame(generalInput.GeneralWaveRunUpWaveConditionsInput, properties.WaveRunUp.Data); Assert.AreSame(generalInput.GeneralWaveImpactWaveConditionsInput, properties.WaveImpact.Data); Assert.AreSame(generalInput.GeneralWaveImpactWithWaveDirectionWaveConditionsInput, properties.WaveImpactWithWaveDirection.Data); }
public void Run_Always_InputPropertiesCorrectlySentToService(BreakWaterType breakWaterType) { // Setup AssessmentSectionStub assessmentSection = CreateAssessmentSection(); ConfigureAssessmentSectionWithHydraulicBoundaryOutput(assessmentSection); GrassCoverErosionOutwardsWaveConditionsCalculation calculation = CreateValidCalculation(assessmentSection.HydraulicBoundaryDatabase.Locations.First()); calculation.InputParameters.BreakWater.Type = breakWaterType; var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); CalculatableActivity activity = GrassCoverErosionOutwardsCalculationActivityFactory.CreateWaveConditionsCalculationActivity(calculation, failureMechanism, assessmentSection); var waveConditionsCosineCalculator = new TestWaveConditionsCosineCalculator(); RoundedDouble[] waterLevels = GetWaterLevels(calculation, assessmentSection).ToArray(); int nrOfCalculators = GetNrOfCalculators(calculation, assessmentSection); var mockRepository = new MockRepository(); var calculatorFactory = mockRepository.StrictMock <IHydraRingCalculatorFactory>(); calculatorFactory.Expect(cf => cf.CreateWaveConditionsCosineCalculator(null)) .IgnoreArguments() .Return(waveConditionsCosineCalculator) .Repeat .Times(nrOfCalculators); mockRepository.ReplayAll(); using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { // Call activity.Run(); // Assert WaveConditionsCosineCalculationInput[] waveConditionsInputs = waveConditionsCosineCalculator.ReceivedInputs.ToArray(); Assert.AreEqual(nrOfCalculators, waveConditionsInputs.Length); WaveConditionsInput input = calculation.InputParameters; double targetProbability = assessmentSection.FailureMechanismContribution.MaximumAllowableFloodingProbability; var waterLevelIndex = 0; GeneralGrassCoverErosionOutwardsInput generalInput = failureMechanism.GeneralInput; for (var i = 0; i < waveConditionsInputs.Length / 2; i++) { var expectedInput = new WaveConditionsCosineCalculationInput(1, input.Orientation, input.HydraulicBoundaryLocation.Id, targetProbability, input.ForeshoreProfile.Geometry.Select(c => new HydraRingForelandPoint(c.X, c.Y)), new HydraRingBreakWater(BreakWaterTypeHelper.GetHydraRingBreakWaterType(breakWaterType), input.BreakWater.Height), waterLevels[waterLevelIndex++], generalInput.GeneralWaveRunUpWaveConditionsInput.A, generalInput.GeneralWaveRunUpWaveConditionsInput.B, generalInput.GeneralWaveRunUpWaveConditionsInput.C); HydraRingDataEqualityHelper.AreEqual(expectedInput, waveConditionsInputs[i]); } waterLevelIndex = 0; for (int i = waveConditionsInputs.Length / 2; i < waveConditionsInputs.Length; i++) { var expectedInput = new WaveConditionsCosineCalculationInput(1, input.Orientation, input.HydraulicBoundaryLocation.Id, targetProbability, input.ForeshoreProfile.Geometry.Select(c => new HydraRingForelandPoint(c.X, c.Y)), new HydraRingBreakWater(BreakWaterTypeHelper.GetHydraRingBreakWaterType(breakWaterType), input.BreakWater.Height), waterLevels[waterLevelIndex++], generalInput.GeneralWaveImpactWaveConditionsInput.A, generalInput.GeneralWaveImpactWaveConditionsInput.B, generalInput.GeneralWaveImpactWaveConditionsInput.C); HydraRingDataEqualityHelper.AreEqual(expectedInput, waveConditionsInputs[i]); } } mockRepository.VerifyAll(); }
/// <summary> /// Read the <see cref="GrassCoverErosionOutwardsFailureMechanismMetaEntity"/> and use the information /// to update the <paramref name="input"/>. /// </summary> /// <param name="entity">The <see cref="GrassCoverErosionOutwardsFailureMechanismMetaEntity"/> to use /// to update the <paramref name="input"/>.</param> /// <param name="input">The <see cref="GeneralGrassCoverErosionOutwardsInput"/> to be updated.</param> /// <exception cref="ArgumentNullException">Thrown when any input parameter is <c>null</c>.</exception> internal static void Read(this GrassCoverErosionOutwardsFailureMechanismMetaEntity entity, GeneralGrassCoverErosionOutwardsInput input) { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } if (input == null) { throw new ArgumentNullException(nameof(input)); } input.N = (RoundedDouble)entity.N; input.ApplyLengthEffectInSection = Convert.ToBoolean(entity.ApplyLengthEffectInSection); }