Example #1
0
        public void Read_ValidEntityWithNullParameterValues_ReturnSemiProbabilisticPipingOutput()
        {
            // Setup
            var entity = new SemiProbabilisticPipingCalculationOutputEntity
            {
                HeaveFactorOfSafety        = null,
                UpliftFactorOfSafety       = null,
                SellmeijerFactorOfSafety   = null,
                UpliftEffectiveStress      = null,
                HeaveGradient              = null,
                SellmeijerCreepCoefficient = null,
                SellmeijerCriticalFall     = null,
                SellmeijerReducedFall      = null
            };

            // Call
            SemiProbabilisticPipingOutput output = entity.Read();

            // Assert
            Assert.IsNaN(output.HeaveFactorOfSafety);
            Assert.IsNaN(output.SellmeijerFactorOfSafety);
            Assert.IsNaN(output.UpliftFactorOfSafety);
            Assert.IsNaN(output.UpliftEffectiveStress);
            Assert.IsNaN(output.HeaveGradient);
            Assert.IsNaN(output.SellmeijerCreepCoefficient);
            Assert.IsNaN(output.SellmeijerCriticalFall);
            Assert.IsNaN(output.SellmeijerReducedFall);
        }
Example #2
0
        public void Read_ValidEntity_ReturnSemiProbabilisticPipingOutput()
        {
            // Setup
            var entity = new SemiProbabilisticPipingCalculationOutputEntity
            {
                HeaveFactorOfSafety        = 9.8,
                UpliftFactorOfSafety       = 3.2,
                SellmeijerFactorOfSafety   = 8.7,
                UpliftEffectiveStress      = 15.2,
                HeaveGradient              = 12.2,
                SellmeijerCreepCoefficient = 1.4,
                SellmeijerCriticalFall     = 6.2,
                SellmeijerReducedFall      = 8.1
            };

            // Call
            SemiProbabilisticPipingOutput output = entity.Read();

            // Assert
            Assert.AreEqual(entity.HeaveFactorOfSafety, output.HeaveFactorOfSafety);
            Assert.AreEqual(entity.SellmeijerFactorOfSafety, output.SellmeijerFactorOfSafety);
            Assert.AreEqual(entity.UpliftFactorOfSafety, output.UpliftFactorOfSafety);
            Assert.AreEqual(entity.UpliftEffectiveStress, output.UpliftEffectiveStress.Value);
            Assert.AreEqual(entity.HeaveGradient, output.HeaveGradient.Value);
            Assert.AreEqual(entity.SellmeijerCreepCoefficient, output.SellmeijerCreepCoefficient.Value);
            Assert.AreEqual(entity.SellmeijerCriticalFall, output.SellmeijerCriticalFall.Value);
            Assert.AreEqual(entity.SellmeijerReducedFall, output.SellmeijerReducedFall.Value);
        }
Example #3
0
        public void Create_AllOutputValuesSet_ReturnEntity()
        {
            // Setup
            var pipingOutput = new SemiProbabilisticPipingOutput(new SemiProbabilisticPipingOutput.ConstructionProperties
            {
                UpliftFactorOfSafety       = 2.2,
                HeaveFactorOfSafety        = 4.4,
                SellmeijerFactorOfSafety   = 6.6,
                UpliftEffectiveStress      = 7.7,
                HeaveGradient              = 8.8,
                SellmeijerCreepCoefficient = 9.9,
                SellmeijerCriticalFall     = 10.10,
                SellmeijerReducedFall      = 11.11
            });

            // Call
            SemiProbabilisticPipingCalculationOutputEntity entity = pipingOutput.Create();

            // Assert
            Assert.AreEqual(pipingOutput.HeaveFactorOfSafety, entity.HeaveFactorOfSafety);
            Assert.AreEqual(pipingOutput.SellmeijerFactorOfSafety, entity.SellmeijerFactorOfSafety);
            Assert.AreEqual(pipingOutput.UpliftFactorOfSafety, entity.UpliftFactorOfSafety);
            Assert.AreEqual(pipingOutput.UpliftEffectiveStress, entity.UpliftEffectiveStress, pipingOutput.UpliftEffectiveStress.GetAccuracy());
            Assert.AreEqual(pipingOutput.HeaveGradient, entity.HeaveGradient, pipingOutput.HeaveGradient.GetAccuracy());
            Assert.AreEqual(pipingOutput.SellmeijerCreepCoefficient, entity.SellmeijerCreepCoefficient, pipingOutput.SellmeijerCreepCoefficient.GetAccuracy());
            Assert.AreEqual(pipingOutput.SellmeijerCriticalFall, entity.SellmeijerCriticalFall, pipingOutput.SellmeijerCriticalFall.GetAccuracy());
            Assert.AreEqual(pipingOutput.SellmeijerReducedFall, entity.SellmeijerReducedFall, pipingOutput.SellmeijerReducedFall.GetAccuracy());
        }
Example #4
0
        public void Create_HasCalculationOutput_EntityHasPipingCalculationOutputEntity()
        {
            // Setup
            var registry = new PersistenceRegistry();

            SemiProbabilisticPipingOutput newOutput = PipingTestDataGenerator.GetRandomSemiProbabilisticPipingOutput();
            var calculation = new SemiProbabilisticPipingCalculationScenario
            {
                Output = newOutput
            };

            // Call
            SemiProbabilisticPipingCalculationEntity entity = calculation.Create(registry, 0);

            // Assert
            SemiProbabilisticPipingCalculationOutputEntity outputEntity = entity.SemiProbabilisticPipingCalculationOutputEntities.SingleOrDefault();

            Assert.IsNotNull(outputEntity);
            Assert.AreEqual(newOutput.HeaveFactorOfSafety, outputEntity.HeaveFactorOfSafety);
            Assert.AreEqual(newOutput.SellmeijerFactorOfSafety, outputEntity.SellmeijerFactorOfSafety);
            Assert.AreEqual(newOutput.UpliftFactorOfSafety, outputEntity.UpliftFactorOfSafety);
            Assert.AreEqual(newOutput.UpliftEffectiveStress, outputEntity.UpliftEffectiveStress, newOutput.UpliftEffectiveStress.GetAccuracy());
            Assert.AreEqual(newOutput.HeaveGradient, outputEntity.HeaveGradient, newOutput.HeaveGradient.GetAccuracy());
            Assert.AreEqual(newOutput.SellmeijerCreepCoefficient, outputEntity.SellmeijerCreepCoefficient, newOutput.SellmeijerCreepCoefficient.GetAccuracy());
            Assert.AreEqual(newOutput.SellmeijerCriticalFall, outputEntity.SellmeijerCriticalFall, newOutput.SellmeijerCriticalFall.GetAccuracy());
            Assert.AreEqual(newOutput.SellmeijerReducedFall, outputEntity.SellmeijerReducedFall, newOutput.SellmeijerReducedFall.GetAccuracy());
        }
Example #5
0
        private static void ReadCalculationOutputs(SemiProbabilisticPipingCalculationScenario calculation,
                                                   SemiProbabilisticPipingCalculationEntity entity)
        {
            SemiProbabilisticPipingCalculationOutputEntity calculationOutputEntity = entity.SemiProbabilisticPipingCalculationOutputEntities.SingleOrDefault();

            if (calculationOutputEntity != null)
            {
                calculation.Output = calculationOutputEntity.Read();
            }
        }
Example #6
0
        public void Create_AllOutputValuesNaN_ReturnEntityWithNullValues()
        {
            // Setup
            var pipingOutput = new SemiProbabilisticPipingOutput(new SemiProbabilisticPipingOutput.ConstructionProperties());

            // Call
            SemiProbabilisticPipingCalculationOutputEntity entity = pipingOutput.Create();

            // Assert
            Assert.IsNull(entity.HeaveFactorOfSafety);
            Assert.IsNull(entity.SellmeijerFactorOfSafety);
            Assert.IsNull(entity.UpliftFactorOfSafety);
            Assert.IsNull(entity.UpliftEffectiveStress);
            Assert.IsNull(entity.HeaveGradient);
            Assert.IsNull(entity.SellmeijerCreepCoefficient);
            Assert.IsNull(entity.SellmeijerCriticalFall);
            Assert.IsNull(entity.SellmeijerReducedFall);
        }
Example #7
0
        /// <summary>
        /// Read the <see cref="SemiProbabilisticPipingCalculationOutputEntity"/> and use the information to
        /// construct a <see cref="SemiProbabilisticPipingOutput"/>.
        /// </summary>
        /// <param name="entity">The <see cref="SemiProbabilisticPipingCalculationOutputEntity"/> to create
        /// <see cref="SemiProbabilisticPipingOutput"/> for.</param>
        /// <returns>A new <see cref="SemiProbabilisticPipingOutput"/>.</returns>
        /// <exception cref="ArgumentNullException">Thrown when <paramref name="entity"/>
        /// is <c>null</c>.</exception>
        public static SemiProbabilisticPipingOutput Read(this SemiProbabilisticPipingCalculationOutputEntity entity)
        {
            if (entity == null)
            {
                throw new ArgumentNullException(nameof(entity));
            }

            return(new SemiProbabilisticPipingOutput(new SemiProbabilisticPipingOutput.ConstructionProperties
            {
                UpliftFactorOfSafety = entity.UpliftFactorOfSafety.ToNullAsNaN(),
                HeaveFactorOfSafety = entity.HeaveFactorOfSafety.ToNullAsNaN(),
                SellmeijerFactorOfSafety = entity.SellmeijerFactorOfSafety.ToNullAsNaN(),
                UpliftEffectiveStress = entity.UpliftEffectiveStress.ToNullAsNaN(),
                HeaveGradient = entity.HeaveGradient.ToNullAsNaN(),
                SellmeijerCreepCoefficient = entity.SellmeijerCreepCoefficient.ToNullAsNaN(),
                SellmeijerCriticalFall = entity.SellmeijerCriticalFall.ToNullAsNaN(),
                SellmeijerReducedFall = entity.SellmeijerReducedFall.ToNullAsNaN()
            }));
        }
        /// <summary>
        /// Creates a <see cref="SemiProbabilisticPipingCalculationOutputEntity"/> based on the information
        /// of the <see cref="SemiProbabilisticPipingOutput"/>.
        /// </summary>
        /// <param name="output">The calculation output for piping failure mechanism to
        /// create a database entity for.</param>
        /// <returns>A new <see cref="SemiProbabilisticPipingCalculationOutputEntity"/>.</returns>
        /// <exception cref="ArgumentNullException">Thrown when <paramref name="output"/>
        /// is <c>null</c>.</exception>
        public static SemiProbabilisticPipingCalculationOutputEntity Create(this SemiProbabilisticPipingOutput output)
        {
            if (output == null)
            {
                throw new ArgumentNullException(nameof(output));
            }

            var entity = new SemiProbabilisticPipingCalculationOutputEntity
            {
                HeaveFactorOfSafety        = output.HeaveFactorOfSafety.ToNaNAsNull(),
                SellmeijerFactorOfSafety   = output.SellmeijerFactorOfSafety.ToNaNAsNull(),
                UpliftFactorOfSafety       = output.UpliftFactorOfSafety.ToNaNAsNull(),
                UpliftEffectiveStress      = output.UpliftEffectiveStress.ToNaNAsNull(),
                HeaveGradient              = output.HeaveGradient.ToNaNAsNull(),
                SellmeijerCreepCoefficient = output.SellmeijerCreepCoefficient.ToNaNAsNull(),
                SellmeijerCriticalFall     = output.SellmeijerCriticalFall.ToNaNAsNull(),
                SellmeijerReducedFall      = output.SellmeijerReducedFall.ToNaNAsNull()
            };

            return(entity);
        }