示例#1
0
        public void Constructor_CalculationTypeInvalid_ThrowsInvalidEnumArgumentException()
        {
            // Setup
            const PipingCalculationConfigurationType calculationType = (PipingCalculationConfigurationType)99;

            // Call
            void Call() => new PipingCalculationConfiguration("name", calculationType);

            // Assert
            var expectedMessage = $"The value of argument '{nameof(calculationType)}' ({calculationType}) is invalid for Enum type '{nameof(PipingCalculationConfigurationType)}'.";

            TestHelper.AssertThrowsArgumentExceptionAndTestMessage <InvalidEnumArgumentException>(Call, expectedMessage);
        }
示例#2
0
        /// <summary>
        /// Creates a new instance of <see cref="PipingCalculationConfiguration"/>.
        /// </summary>
        /// <param name="name">The name of the piping calculation.</param>
        /// <param name="calculationType">The piping calculation type.</param>
        /// <exception cref="ArgumentNullException">Thrown when <paramref name="name"/> is <c>null</c>.</exception>
        /// <exception cref="InvalidEnumArgumentException">Thrown when <paramref name="calculationType"/>
        /// has an invalid value.</exception>
        public PipingCalculationConfiguration(string name, PipingCalculationConfigurationType calculationType)
        {
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }

            if (!Enum.IsDefined(typeof(PipingCalculationConfigurationType), calculationType))
            {
                throw new InvalidEnumArgumentException(nameof(calculationType),
                                                       (int)calculationType,
                                                       typeof(PipingCalculationConfigurationType));
            }

            Name            = name;
            CalculationType = calculationType;
        }
        /// <inheritdoc/>
        /// <exception cref="NotSupportedException">Thrown when <paramref name="calculation"/>
        /// is of an unsupported type.</exception>
        protected override PipingCalculationConfiguration ToConfiguration(IPipingCalculationScenario <PipingInput> calculation)
        {
            PipingInput input = calculation.InputParameters;
            PipingCalculationConfigurationType calculationConfigurationType = GetCalculationConfigurationType(calculation);

            var calculationConfiguration = new PipingCalculationConfiguration(calculation.Name, calculationConfigurationType)
            {
                DampingFactorExit = input.DampingFactorExit.ToStochastConfiguration(),
                PhreaticLevelExit = input.PhreaticLevelExit.ToStochastConfiguration(),
                Scenario          = calculation.ToScenarioConfiguration()
            };

            if (input.SurfaceLine != null)
            {
                calculationConfiguration.SurfaceLineName = input.SurfaceLine.Name;
                calculationConfiguration.EntryPointL     = input.EntryPointL;
                calculationConfiguration.ExitPointL      = input.ExitPointL;
            }

            if (input.StochasticSoilModel != null)
            {
                calculationConfiguration.StochasticSoilModelName   = input.StochasticSoilModel.Name;
                calculationConfiguration.StochasticSoilProfileName = input.StochasticSoilProfile?.SoilProfile.Name;
            }

            if (calculationConfigurationType == PipingCalculationConfigurationType.SemiProbabilistic)
            {
                ToSemiProbabilisticConfiguration(calculationConfiguration, (SemiProbabilisticPipingInput)calculation.InputParameters);
            }

            if (calculationConfigurationType == PipingCalculationConfigurationType.Probabilistic)
            {
                ToProbabilisticConfiguration(calculationConfiguration, (ProbabilisticPipingInput)calculation.InputParameters);
            }

            return(calculationConfiguration);
        }
 private static PipingCalculationConfiguration CreateSparseCalculationConfiguration(string name, PipingCalculationConfigurationType calculationType)
 {
     return(new PipingCalculationConfiguration(name, calculationType));
 }