Ejemplo n.º 1
0
        public void AsValue_Half_ReturnHalfValue(WaveConditionsInputStepSize stepSize, double expectedValue)
        {
            // Call
            double result = stepSize.AsValue();

            // Assert
            Assert.AreEqual(expectedValue, result);
        }
Ejemplo n.º 2
0
        public void ConvertFrom_ValidWaveConditionsInputStepSize_ReturnConfigurationWaveConditionsInputStepSize(
            WaveConditionsInputStepSize value, ConfigurationWaveConditionsInputStepSize expectedResult)
        {
            // Setup
            var converter = new ConfigurationWaveConditionsInputStepSizeConverter();

            // Call
            object convertFrom = converter.ConvertFrom(value);

            // Assert
            Assert.AreEqual(expectedResult, convertFrom);
        }
Ejemplo n.º 3
0
        public void ConvertTo_ValidConfigurationWaveConditionsInputStepSize_ReturnWaveConditionsInputStepSize(
            ConfigurationWaveConditionsInputStepSize value, WaveConditionsInputStepSize expectedResult)
        {
            // Setup
            var converter = new ConfigurationWaveConditionsInputStepSizeConverter();

            // Call
            object convertTo = converter.ConvertTo(null, CultureInfo.CurrentCulture, value, typeof(WaveConditionsInputStepSize));

            // Assert
            Assert.AreEqual(expectedResult, convertTo);
        }
Ejemplo n.º 4
0
        public void ConvertFrom_InvalidWaveConditionsInputStepSize_ThrowInvalidEnumArgumentException()
        {
            // Setup
            const WaveConditionsInputStepSize invalidValue = (WaveConditionsInputStepSize)9999;
            var converter = new ConfigurationWaveConditionsInputStepSizeConverter();

            // Call
            TestDelegate call = () => converter.ConvertFrom(invalidValue);

            // Assert
            string expectedMessage = $"The value of argument 'value' ({invalidValue}) is invalid for Enum type '{nameof(WaveConditionsInputStepSize)}'.";
            string parameterName   = TestHelper.AssertThrowsArgumentExceptionAndTestMessage <InvalidEnumArgumentException>(call, expectedMessage).ParamName;

            Assert.AreEqual("value", parameterName);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Gets the real value associated with the given <paramref name="stepSize"/>.
        /// </summary>
        /// <param name="stepSize">The step size to get a real value for.</param>
        /// <returns>The real value of <paramref name="stepSize"/>.</returns>
        /// <exception cref="InvalidEnumArgumentException">Thrown when <paramref name="stepSize"/>
        /// is not a valid enum value of <see cref="WaveConditionsInputStepSize"/>.</exception>
        /// <exception cref="NotSupportedException">Thrown when <paramref name="stepSize"/>
        /// is not supported for the conversion.</exception>
        public static double AsValue(this WaveConditionsInputStepSize stepSize)
        {
            if (!Enum.IsDefined(typeof(WaveConditionsInputStepSize), stepSize))
            {
                throw new InvalidEnumArgumentException(nameof(stepSize), (int)stepSize, typeof(WaveConditionsInputStepSize));
            }

            switch (stepSize)
            {
            case WaveConditionsInputStepSize.Half:
                return(0.5);

            case WaveConditionsInputStepSize.One:
                return(1.0);

            case WaveConditionsInputStepSize.Two:
                return(2.0);

            default:
                throw new NotSupportedException();
            }
        }
        public void GetWaterLevels_ValidInput_ReturnsExpectedWaterLevels(WaveConditionsInputStepSize stepSize,
                                                                         double lowerBoundaryRevetment,
                                                                         double upperBoundaryRevetment,
                                                                         double lowerBoundaryWaterLevels,
                                                                         double upperBoundaryWaterLevels,
                                                                         double assessmentLevel,
                                                                         IEnumerable <RoundedDouble> expectedWaterLevels)
        {
            // Setup
            var waveConditionsInput = new WaveConditionsInput
            {
                LowerBoundaryRevetment = (RoundedDouble)lowerBoundaryRevetment,
                UpperBoundaryRevetment = (RoundedDouble)upperBoundaryRevetment,
                StepSize = stepSize,
                LowerBoundaryWaterLevels = (RoundedDouble)lowerBoundaryWaterLevels,
                UpperBoundaryWaterLevels = (RoundedDouble)upperBoundaryWaterLevels
            };

            // Call
            IEnumerable <RoundedDouble> waterLevels = waveConditionsInput.GetWaterLevels((RoundedDouble)assessmentLevel);

            // Assert
            CollectionAssert.AreEqual(expectedWaterLevels, waterLevels);
        }