Пример #1
0
        public void Create_WithDuneLocations_ReturnsEntityWithDuneLocations()
        {
            // Setup
            var duneLocation     = new TestDuneLocation();
            var failureMechanism = new DuneErosionFailureMechanism
            {
                DuneLocationCalculationsForUserDefinedTargetProbabilities =
                {
                    new DuneLocationCalculationsForTargetProbability(0.1),
                    new DuneLocationCalculationsForTargetProbability(0.01)
                }
            };

            failureMechanism.SetDuneLocations(new[]
            {
                duneLocation
            });

            var duneLocationEntity = new DuneLocationEntity();
            var registry           = new PersistenceRegistry();

            registry.Register(duneLocationEntity, duneLocation);

            // Call
            FailureMechanismEntity entity = failureMechanism.Create(registry);

            // Assert
            DuneLocationEntity actualDuneLocationEntity = entity.DuneLocationEntities.Single();

            Assert.AreSame(duneLocationEntity, actualDuneLocationEntity);

            DuneErosionFailureMechanismMetaEntity metaEntity = entity.DuneErosionFailureMechanismMetaEntities.Single();

            AssertDuneLocationCalculationCollectionEntities(failureMechanism, metaEntity);
        }
Пример #2
0
        public void Read_InputNull_ThrowsArgumentNullException()
        {
            // Setup
            var entity = new DuneErosionFailureMechanismMetaEntity();

            // Call
            TestDelegate call = () => entity.Read(null);

            // Assert
            string paramName = Assert.Throws <ArgumentNullException>(call).ParamName;

            Assert.AreEqual("input", paramName);
        }
Пример #3
0
        /// <summary>
        /// Read the <see cref="DuneErosionFailureMechanismMetaEntity"/> and use the information to update
        /// the <paramref name="input"/>.
        /// </summary>
        /// <param name="entity">The <see cref="DuneErosionFailureMechanismMetaEntity"/> to use to update
        /// the <paramref name="input"/>.</param>
        /// <param name="input">The <see cref="GeneralDuneErosionInput"/> to be updated.</param>
        /// <exception cref="ArgumentNullException">Thrown when any input parameter is <c>null</c>.</exception>
        internal static void Read(this DuneErosionFailureMechanismMetaEntity entity, GeneralDuneErosionInput input)
        {
            if (entity == null)
            {
                throw new ArgumentNullException(nameof(entity));
            }

            if (input == null)
            {
                throw new ArgumentNullException(nameof(input));
            }

            input.N = (RoundedDouble) entity.N;
        }
Пример #4
0
        public void Read_ValidInput_UpdateDuneErosionGeneralInput()
        {
            // Setup
            var inputToUpdate = new GeneralDuneErosionInput();
            var entity        = new DuneErosionFailureMechanismMetaEntity
            {
                N = new Random(31).NextDouble(1, 20)
            };

            // Call
            entity.Read(inputToUpdate);

            // Assert
            Assert.AreEqual(entity.N, inputToUpdate.N, inputToUpdate.N.GetAccuracy());
        }
Пример #5
0
        public void Create_WithoutDuneLocations_ReturnsEntityWithoutDuneLocations()
        {
            // Setup
            var failureMechanism = new DuneErosionFailureMechanism();
            var registry         = new PersistenceRegistry();

            // Call
            FailureMechanismEntity entity = failureMechanism.Create(registry);

            // Assert
            CollectionAssert.IsEmpty(entity.DuneLocationEntities);

            DuneErosionFailureMechanismMetaEntity metaEntity = entity.DuneErosionFailureMechanismMetaEntities.Single();

            AssertDuneLocationCalculationCollectionEntities(failureMechanism, metaEntity);
        }
Пример #6
0
        public void Create_WithCollectorAndPropertiesSet_ReturnsFailureMechanismEntityWithPropertiesSet()
        {
            // Setup
            var random           = new Random(21);
            var failureMechanism = new DuneErosionFailureMechanism
            {
                InAssembly = random.NextBoolean(),
                InAssemblyInputComments =
                {
                    Body = "Some input text"
                },
                InAssemblyOutputComments =
                {
                    Body = "Some output text"
                },
                NotInAssemblyComments =
                {
                    Body = "Really not in assembly"
                },
                CalculationsInputComments =
                {
                    Body = "Some calculation comments"
                },
                GeneralInput =
                {
                    N = random.NextRoundedDouble(1, 20)
                }
            };

            var registry = new PersistenceRegistry();

            // Call
            FailureMechanismEntity entity = failureMechanism.Create(registry);

            // Assert
            Assert.IsNotNull(entity);
            Assert.AreEqual((short)FailureMechanismType.DuneErosion, entity.FailureMechanismType);
            Assert.AreEqual(Convert.ToByte(failureMechanism.InAssembly), entity.InAssembly);
            Assert.AreEqual(failureMechanism.InAssemblyInputComments.Body, entity.InAssemblyInputComments);
            Assert.AreEqual(failureMechanism.InAssemblyOutputComments.Body, entity.InAssemblyOutputComments);
            Assert.AreEqual(failureMechanism.NotInAssemblyComments.Body, entity.NotInAssemblyComments);
            Assert.AreEqual(failureMechanism.CalculationsInputComments.Body, entity.CalculationsInputComments);

            DuneErosionFailureMechanismMetaEntity metaEntity = entity.DuneErosionFailureMechanismMetaEntities.Single();

            Assert.AreEqual(failureMechanism.GeneralInput.N, metaEntity.N, failureMechanism.GeneralInput.N.GetAccuracy());
        }
Пример #7
0
        private static void AddEntitiesForFailureMechanismMeta(DuneErosionFailureMechanism failureMechanism,
                                                               FailureMechanismEntity entity,
                                                               PersistenceRegistry registry)
        {
            var metaEntity = new DuneErosionFailureMechanismMetaEntity
            {
                N = failureMechanism.GeneralInput.N
            };

            ObservableList <DuneLocationCalculationsForTargetProbability> userDefinedTargetProbabilities = failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities;

            for (var i = 0; i < userDefinedTargetProbabilities.Count; i++)
            {
                metaEntity.DuneLocationCalculationForTargetProbabilityCollectionEntities.Add(
                    userDefinedTargetProbabilities[i].Create(i, registry));
            }

            entity.DuneErosionFailureMechanismMetaEntities.Add(metaEntity);
        }
Пример #8
0
 private static void AssertDuneLocationCalculationCollectionEntities(DuneErosionFailureMechanism failureMechanism,
                                                                     DuneErosionFailureMechanismMetaEntity metaEntity)
 {
     AssertDuneLocationCalculationCollectionEntity(failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities,
                                                   metaEntity.DuneLocationCalculationForTargetProbabilityCollectionEntities);
 }