public void Read_NullParameters_ReturnsDuneLocationOutputWithNaN() { // Setup var convergence = new Random(36).NextEnumValue <CalculationConvergence>(); var entity = new DuneLocationCalculationOutputEntity { WaterLevel = null, WaveHeight = null, WavePeriod = null, TargetProbability = null, TargetReliability = null, CalculatedProbability = null, CalculatedReliability = null, CalculationConvergence = Convert.ToByte(convergence) }; // Call DuneLocationCalculationOutput output = entity.Read(); // Assert Assert.IsNaN(output.WaterLevel); Assert.IsNaN(output.WaveHeight); Assert.IsNaN(output.WavePeriod); Assert.IsNaN(output.TargetProbability); Assert.IsNaN(output.TargetReliability); Assert.IsNaN(output.CalculatedProbability); Assert.IsNaN(output.CalculatedReliability); Assert.AreEqual(convergence, output.CalculationConvergence); }
public void Create_WithNaNParameters_ReturnsDuneLocationCalculationOutputEntityWithNullValues() { // Setup var random = new Random(21); var output = new DuneLocationCalculationOutput(random.NextEnumValue <CalculationConvergence>(), new DuneLocationCalculationOutput.ConstructionProperties { WaterLevel = double.NaN, WaveHeight = double.NaN, WavePeriod = double.NaN, TargetProbability = double.NaN, TargetReliability = double.NaN, CalculatedProbability = double.NaN, CalculatedReliability = double.NaN }); // Call DuneLocationCalculationOutputEntity entity = output.Create(); // Assert Assert.IsNotNull(entity); Assert.IsNull(entity.WaterLevel); Assert.IsNull(entity.WaveHeight); Assert.IsNull(entity.WavePeriod); Assert.IsNull(entity.TargetProbability); Assert.IsNull(entity.TargetReliability); Assert.IsNull(entity.CalculatedProbability); Assert.IsNull(entity.CalculatedReliability); Assert.AreEqual(Convert.ToByte(output.CalculationConvergence), entity.CalculationConvergence); }
public void Create_WithValidParameters_ReturnsDuneLocationCalculationOutputEntity() { // Setup var random = new Random(21); var output = new DuneLocationCalculationOutput(random.NextEnumValue <CalculationConvergence>(), new DuneLocationCalculationOutput.ConstructionProperties { WaterLevel = random.NextDouble(), WaveHeight = random.NextDouble(), WavePeriod = random.NextDouble(), TargetProbability = random.NextDouble(), TargetReliability = random.NextDouble(), CalculatedProbability = random.NextDouble(), CalculatedReliability = random.NextDouble() }); // Call DuneLocationCalculationOutputEntity entity = output.Create(); // Assert Assert.IsNotNull(entity); Assert.AreEqual(output.WaterLevel, entity.WaterLevel, output.WaterLevel.GetAccuracy()); Assert.AreEqual(output.WaveHeight, entity.WaveHeight, output.WaveHeight.GetAccuracy()); Assert.AreEqual(output.WavePeriod, entity.WavePeriod, output.WavePeriod.GetAccuracy()); Assert.AreEqual(output.TargetProbability, entity.TargetProbability); Assert.AreEqual(output.TargetReliability, entity.TargetReliability, output.TargetReliability.GetAccuracy()); Assert.AreEqual(output.CalculatedProbability, entity.CalculatedProbability); Assert.AreEqual(output.CalculatedReliability, entity.CalculatedReliability, output.CalculatedReliability.GetAccuracy()); Assert.AreEqual(Convert.ToByte(output.CalculationConvergence), entity.CalculationConvergence); }
/// <summary> /// Read the <see cref="DuneLocationCalculationOutputEntity"/> and use the information to construct a <see cref="DuneLocationCalculationOutput"/>. /// </summary> /// <param name="entity">The <see cref="DuneLocationCalculationOutputEntity"/> to create <see cref="DuneLocationCalculationOutput"/> for.</param> /// <returns>A new <see cref="DuneLocationCalculationOutput"/>.</returns> /// <exception cref="ArgumentNullException">Thrown when <paramref name="entity"/> is <c>null</c>.</exception> internal static DuneLocationCalculationOutput Read(this DuneLocationCalculationOutputEntity entity) { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } return(new DuneLocationCalculationOutput((CalculationConvergence)entity.CalculationConvergence, new DuneLocationCalculationOutput.ConstructionProperties { WaterLevel = entity.WaterLevel.ToNullAsNaN(), WaveHeight = entity.WaveHeight.ToNullAsNaN(), WavePeriod = entity.WavePeriod.ToNullAsNaN(), TargetProbability = entity.TargetProbability.ToNullAsNaN(), TargetReliability = entity.TargetReliability.ToNullAsNaN(), CalculatedProbability = entity.CalculatedProbability.ToNullAsNaN(), CalculatedReliability = entity.CalculatedReliability.ToNullAsNaN() })); }
/// <summary> /// Reads the <see cref="DuneLocationCalculationEntity"/> and uses the information to update a /// <see cref="DuneLocationCalculation"/>. /// </summary> /// <param name="entity">The <see cref="DuneLocationCalculationEntity"/> to update the /// <see cref="DuneLocationCalculation"/>.</param> /// <param name="calculation">The target of the read operation.</param> /// <exception cref="ArgumentNullException">Thrown when any parameter is <c>null</c>.</exception> internal static void Read(this DuneLocationCalculationEntity entity, DuneLocationCalculation calculation) { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } if (calculation == null) { throw new ArgumentNullException(nameof(calculation)); } DuneLocationCalculationOutputEntity duneLocationCalculationOutputEntity = entity.DuneLocationCalculationOutputEntities.SingleOrDefault(); if (duneLocationCalculationOutputEntity != null) { calculation.Output = duneLocationCalculationOutputEntity.Read(); } }
public void Create_CalculationWithOutput_ReturnsDuneLocationCalculationEntityWithOutput() { // Setup var random = new Random(21); var output = new DuneLocationCalculationOutput(random.NextEnumValue <CalculationConvergence>(), new DuneLocationCalculationOutput.ConstructionProperties { WaterLevel = random.NextDouble(), WaveHeight = random.NextDouble(), WavePeriod = random.NextDouble(), CalculatedProbability = random.NextDouble(), CalculatedReliability = random.NextDouble(), TargetProbability = random.NextDouble(), TargetReliability = random.NextDouble() }); var duneLocation = new TestDuneLocation(); var calculation = new DuneLocationCalculation(duneLocation) { Output = output }; var registry = new PersistenceRegistry(); var duneLocationEntity = new DuneLocationEntity(); registry.Register(duneLocationEntity, duneLocation); // Call DuneLocationCalculationEntity entity = calculation.Create(registry); // Assert Assert.IsNotNull(entity); DuneLocationCalculationOutputEntity outputEntity = entity.DuneLocationCalculationOutputEntities.Single(); Assert.AreEqual(output.WaterLevel, outputEntity.WaterLevel, output.WaterLevel.GetAccuracy()); Assert.AreEqual(output.WaveHeight, outputEntity.WaveHeight, output.WaveHeight.GetAccuracy()); Assert.AreEqual(output.WavePeriod, outputEntity.WavePeriod, output.WavePeriod.GetAccuracy()); Assert.AreEqual(output.TargetProbability, outputEntity.TargetProbability); Assert.AreEqual(output.TargetReliability, outputEntity.TargetReliability, output.TargetReliability.GetAccuracy()); Assert.AreEqual(output.CalculatedProbability, outputEntity.CalculatedProbability); Assert.AreEqual(output.CalculatedReliability, outputEntity.CalculatedReliability, output.CalculatedReliability.GetAccuracy()); Assert.AreEqual(Convert.ToByte(output.CalculationConvergence), outputEntity.CalculationConvergence); }
public void Read_ValidParameters_ReturnsDuneLocationOutput() { // Setup var random = new Random(22); double waterLevel = random.NextDouble(); double waveHeight = random.NextDouble(); double wavePeriod = random.NextDouble(); double targetProbability = random.NextDouble(); double targetReliability = random.NextDouble(); double calculatedProbability = random.NextDouble(); double calculatedReliability = random.NextDouble(); var convergence = random.NextEnumValue <CalculationConvergence>(); var entity = new DuneLocationCalculationOutputEntity { WaterLevel = waterLevel, WaveHeight = waveHeight, WavePeriod = wavePeriod, TargetProbability = targetProbability, TargetReliability = targetReliability, CalculatedProbability = calculatedProbability, CalculatedReliability = calculatedReliability, CalculationConvergence = Convert.ToByte(convergence) }; // Call DuneLocationCalculationOutput output = entity.Read(); // Assert Assert.AreEqual(waterLevel, output.WaterLevel, output.WaterLevel.GetAccuracy()); Assert.AreEqual(waveHeight, output.WaveHeight, output.WaveHeight.GetAccuracy()); Assert.AreEqual(wavePeriod, output.WavePeriod, output.WavePeriod.GetAccuracy()); Assert.AreEqual(targetProbability, output.TargetProbability); Assert.AreEqual(targetReliability, output.TargetReliability, output.TargetReliability.GetAccuracy()); Assert.AreEqual(calculatedProbability, output.CalculatedProbability); Assert.AreEqual(calculatedReliability, output.CalculatedReliability, output.CalculatedReliability.GetAccuracy()); Assert.AreEqual(convergence, output.CalculationConvergence); }