/// <summary> /// Creates a <see cref="ProbabilisticPipingCalculationOutputEntity"/> based on the information /// of the <see cref="ProbabilisticPipingOutput"/>. /// </summary> /// <param name="output">The calculation output for piping failure mechanism to /// create a database entity for.</param> /// <returns>A new <see cref="ProbabilisticPipingCalculationOutputEntity"/>.</returns> /// <exception cref="ArgumentNullException">Thrown when <paramref name="output"/> /// is <c>null</c>.</exception> public static ProbabilisticPipingCalculationOutputEntity Create(this ProbabilisticPipingOutput output) { if (output == null) { throw new ArgumentNullException(nameof(output)); } var outputEntity = new ProbabilisticPipingCalculationOutputEntity { ProfileSpecificReliability = output.ProfileSpecificOutput.Reliability.ToNaNAsNull(), SectionSpecificReliability = output.SectionSpecificOutput.Reliability.ToNaNAsNull() }; if (output.ProfileSpecificOutput is PartialProbabilisticFaultTreePipingOutput profileSpecificFaultTreePipingOutput && output.SectionSpecificOutput is PartialProbabilisticFaultTreePipingOutput sectionSpecificFaultTreePipingOutput) { outputEntity.GeneralResultFaultTreeIllustrationPointEntity = profileSpecificFaultTreePipingOutput.GeneralResult?.CreateGeneralResultFaultTreeIllustrationPointEntity(); outputEntity.GeneralResultFaultTreeIllustrationPointEntity1 = sectionSpecificFaultTreePipingOutput.GeneralResult?.CreateGeneralResultFaultTreeIllustrationPointEntity(); } if (output.ProfileSpecificOutput is PartialProbabilisticSubMechanismPipingOutput profileSpecificSubMechanismPipingOutput && output.SectionSpecificOutput is PartialProbabilisticSubMechanismPipingOutput sectionSpecificSubMechanismPipingOutput) { outputEntity.GeneralResultSubMechanismIllustrationPointEntity = profileSpecificSubMechanismPipingOutput.GeneralResult?.CreateGeneralResultSubMechanismIllustrationPointEntity(); outputEntity.GeneralResultSubMechanismIllustrationPointEntity1 = sectionSpecificSubMechanismPipingOutput.GeneralResult?.CreateGeneralResultSubMechanismIllustrationPointEntity(); } return(outputEntity); }
public void Read_EntityWithProbabilisticPipingCalculationOutputEntity_CalculationWithProbabilisticPipingOutput() { // Setup var entity = new ProbabilisticPipingCalculationEntity { ProbabilisticPipingCalculationOutputEntities = { new ProbabilisticPipingCalculationOutputEntity() } }; var collector = new ReadConversionCollector(); // Call ProbabilisticPipingCalculationScenario calculation = entity.Read(collector); // Assert ProbabilisticPipingOutput output = calculation.Output; Assert.IsNotNull(output); Assert.IsNaN(output.ProfileSpecificOutput.Reliability); Assert.IsNull(((PartialProbabilisticFaultTreePipingOutput)output.ProfileSpecificOutput).GeneralResult); Assert.IsNaN(output.SectionSpecificOutput.Reliability); Assert.IsNull(((PartialProbabilisticFaultTreePipingOutput)output.ProfileSpecificOutput).GeneralResult); }
public void Create_HasCalculationOutput_EntityHasPipingCalculationOutputEntity() { // Setup var registry = new PersistenceRegistry(); var output = new ProbabilisticPipingOutput(PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput(), PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput()); var calculation = new ProbabilisticPipingCalculationScenario { Output = output }; // Call ProbabilisticPipingCalculationEntity entity = calculation.Create(registry, 0); // Assert ProbabilisticPipingCalculationOutputEntity outputEntity = entity.ProbabilisticPipingCalculationOutputEntities.SingleOrDefault(); Assert.IsNotNull(outputEntity); Assert.AreEqual(output.ProfileSpecificOutput.Reliability, outputEntity.ProfileSpecificReliability); Assert.AreEqual(output.SectionSpecificOutput.Reliability, outputEntity.SectionSpecificReliability); GeneralResultEntityTestHelper.AssertGeneralResultPropertyValues(((PartialProbabilisticFaultTreePipingOutput)output.ProfileSpecificOutput).GeneralResult, outputEntity.GeneralResultFaultTreeIllustrationPointEntity); GeneralResultEntityTestHelper.AssertGeneralResultPropertyValues(((PartialProbabilisticFaultTreePipingOutput)output.SectionSpecificOutput).GeneralResult, outputEntity.GeneralResultFaultTreeIllustrationPointEntity1); }
public void Clone_AllPropertiesSet_ReturnNewInstanceWithCopiedValues() { // Setup ProbabilisticPipingOutput original = PipingTestDataGenerator.GetRandomProbabilisticPipingOutputWithIllustrationPoints(); // Call object clone = original.Clone(); // Assert CoreCloneAssert.AreObjectClones(original, clone, PipingCloneAssert.AreClones); }
public void ClearIllustrationPoints_Always_ReturnsAffectedCalculations() { // Setup var calculationWitNoIllustrationPoints = new ProbabilisticPipingCalculationScenario { Output = PipingTestDataGenerator.GetRandomProbabilisticPipingOutputWithoutIllustrationPoints() }; var calculationWithIllustrationPoints = new ProbabilisticPipingCalculationScenario { Output = PipingTestDataGenerator.GetRandomProbabilisticPipingOutputWithIllustrationPoints() }; ProbabilisticPipingCalculationScenario[] calculations = { calculationWitNoIllustrationPoints, calculationWithIllustrationPoints, new ProbabilisticPipingCalculationScenario() }; var mocks = new MockRepository(); var inquiryHelper = mocks.StrictMock <IInquiryHelper>(); mocks.ReplayAll(); var handler = new ClearIllustrationPointsOfProbabilisticPipingCalculationCollectionChangeHandler( inquiryHelper, calculations); // Call IEnumerable <IObservable> affectedObjects = handler.ClearIllustrationPoints(); // Assert CollectionAssert.AreEquivalent(new[] { calculationWithIllustrationPoints }, affectedObjects); ProbabilisticPipingCalculationScenario[] calculationsWithOutput = { calculationWitNoIllustrationPoints, calculationWithIllustrationPoints }; Assert.IsTrue(calculationsWithOutput.All(calc => calc.HasOutput)); Assert.IsTrue(calculationsWithOutput.All(calc => { ProbabilisticPipingOutput output = calc.Output; return(!output.ProfileSpecificOutput.HasGeneralResult && !output.SectionSpecificOutput.HasGeneralResult); })); mocks.VerifyAll(); }
public void Constructor_ExpectedValues() { // Setup PartialProbabilisticPipingOutput <TestTopLevelIllustrationPoint> sectionSpecificOutput = PipingTestDataGenerator.GetRandomPartialProbabilisticPipingOutput(); PartialProbabilisticPipingOutput <TestTopLevelIllustrationPoint> profileSpecificOutput = PipingTestDataGenerator.GetRandomPartialProbabilisticPipingOutput(); // Call var output = new ProbabilisticPipingOutput(sectionSpecificOutput, profileSpecificOutput); // Assert Assert.IsInstanceOf <CloneableObservable>(output); Assert.IsInstanceOf <ICalculationOutput>(output); Assert.AreSame(sectionSpecificOutput, output.SectionSpecificOutput); Assert.AreSame(profileSpecificOutput, output.ProfileSpecificOutput); }
public void Create_CalculationWithOutput_ReturnEntityWithOutput() { // Setup var output = new ProbabilisticPipingOutput(PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput(null), PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput(null)); // Call ProbabilisticPipingCalculationOutputEntity entity = output.Create(); // Assert Assert.AreEqual(output.ProfileSpecificOutput.Reliability, entity.ProfileSpecificReliability); Assert.AreEqual(output.SectionSpecificOutput.Reliability, entity.SectionSpecificReliability); Assert.IsNull(entity.GeneralResultFaultTreeIllustrationPointEntity); Assert.IsNull(entity.GeneralResultFaultTreeIllustrationPointEntity1); Assert.IsNull(entity.GeneralResultSubMechanismIllustrationPointEntity); Assert.IsNull(entity.GeneralResultSubMechanismIllustrationPointEntity1); }
public void Create_CalculationWithNaNOutput_ReturnEntityWithNullOutput() { // Setup var output = new ProbabilisticPipingOutput( new PartialProbabilisticFaultTreePipingOutput(double.NaN, null), new PartialProbabilisticFaultTreePipingOutput(double.NaN, null)); // Call ProbabilisticPipingCalculationOutputEntity entity = output.Create(); // Assert Assert.IsNull(entity.ProfileSpecificReliability); Assert.IsNull(entity.SectionSpecificReliability); Assert.IsNull(entity.GeneralResultFaultTreeIllustrationPointEntity); Assert.IsNull(entity.GeneralResultFaultTreeIllustrationPointEntity1); Assert.IsNull(entity.GeneralResultSubMechanismIllustrationPointEntity); Assert.IsNull(entity.GeneralResultSubMechanismIllustrationPointEntity1); }
public void ClearIllustrationPoints_CalculationWithOutput_ClearsIllustrationPointResult() { // Setup PartialProbabilisticPipingOutput <TestTopLevelIllustrationPoint> sectionSpecificOutput = PipingTestDataGenerator.GetRandomPartialProbabilisticPipingOutput(); PartialProbabilisticPipingOutput <TestTopLevelIllustrationPoint> profileSpecificOutput = PipingTestDataGenerator.GetRandomPartialProbabilisticPipingOutput(); var output = new ProbabilisticPipingOutput(sectionSpecificOutput, profileSpecificOutput); var calculation = new TestProbabilisticPipingCalculation { Output = output }; // Call calculation.ClearIllustrationPoints(); // Assert Assert.AreSame(output, calculation.Output); Assert.IsNull(((PartialProbabilisticPipingOutput <TestTopLevelIllustrationPoint>)output.SectionSpecificOutput).GeneralResult); Assert.IsNull(((PartialProbabilisticPipingOutput <TestTopLevelIllustrationPoint>)output.ProfileSpecificOutput).GeneralResult); }
public void ClearIllustrationPoints_OutputWithoutGeneralResult_OtherOutputIsNotAffected() { // Setup var random = new Random(39); double sectionSpecificReliability = random.NextDouble(); double profileSpecificReliability = random.NextDouble(); var sectionSpecificOutput = new TestPartialProbabilisticPipingOutput(sectionSpecificReliability, null); var profileSpecificOutput = new TestPartialProbabilisticPipingOutput(profileSpecificReliability, null); var output = new ProbabilisticPipingOutput(sectionSpecificOutput, profileSpecificOutput); // Call output.ClearIllustrationPoints(); // Assert Assert.AreEqual(sectionSpecificReliability, output.SectionSpecificOutput.Reliability); Assert.IsFalse(output.SectionSpecificOutput.HasGeneralResult); Assert.IsNull(sectionSpecificOutput.GeneralResult); Assert.AreEqual(profileSpecificReliability, output.ProfileSpecificOutput.Reliability); Assert.IsFalse(output.ProfileSpecificOutput.HasGeneralResult); Assert.IsNull(profileSpecificOutput.GeneralResult); }
public void Read_EntityWithSubMechanismIllustrationPoints_ReturnProbabilisticPipingOutput() { // Setup var random = new Random(21); var profileSpecificGeneralResultEntity = new GeneralResultSubMechanismIllustrationPointEntity { GoverningWindDirectionName = "SSE", GoverningWindDirectionAngle = random.NextDouble() }; var sectionSpecificGeneralResultEntity = new GeneralResultSubMechanismIllustrationPointEntity { GoverningWindDirectionName = "SSW", GoverningWindDirectionAngle = random.NextDouble() }; var entity = new ProbabilisticPipingCalculationOutputEntity { ProfileSpecificReliability = random.NextDouble(), SectionSpecificReliability = random.NextDouble(), GeneralResultFaultTreeIllustrationPointEntity = null, GeneralResultFaultTreeIllustrationPointEntity1 = null, GeneralResultSubMechanismIllustrationPointEntity = profileSpecificGeneralResultEntity, GeneralResultSubMechanismIllustrationPointEntity1 = sectionSpecificGeneralResultEntity }; // Call ProbabilisticPipingOutput output = entity.Read(); // Assert var profileSpecificOutput = (PartialProbabilisticSubMechanismPipingOutput)output.ProfileSpecificOutput; var sectionSpecificOutput = (PartialProbabilisticSubMechanismPipingOutput)output.SectionSpecificOutput; Assert.AreEqual(entity.ProfileSpecificReliability, output.ProfileSpecificOutput.Reliability); Assert.AreEqual(entity.SectionSpecificReliability, output.SectionSpecificOutput.Reliability); GeneralResultEntityTestHelper.AssertGeneralResultPropertyValues( profileSpecificOutput.GeneralResult, profileSpecificGeneralResultEntity); GeneralResultEntityTestHelper.AssertGeneralResultPropertyValues( sectionSpecificOutput.GeneralResult, sectionSpecificGeneralResultEntity); }
public void Read_ValidEntityWithNullParameterValues_ReturnProbabilisticPipingOutput() { // Setup var entity = new ProbabilisticPipingCalculationOutputEntity { ProfileSpecificReliability = null, SectionSpecificReliability = null, GeneralResultFaultTreeIllustrationPointEntity = null, GeneralResultFaultTreeIllustrationPointEntity1 = null, GeneralResultSubMechanismIllustrationPointEntity = null, GeneralResultSubMechanismIllustrationPointEntity1 = null }; // Call ProbabilisticPipingOutput output = entity.Read(); // Assert Assert.IsNaN(output.ProfileSpecificOutput.Reliability); Assert.IsNull(((PartialProbabilisticFaultTreePipingOutput)output.ProfileSpecificOutput).GeneralResult); Assert.IsNaN(output.SectionSpecificOutput.Reliability); Assert.IsNull(((PartialProbabilisticFaultTreePipingOutput)output.ProfileSpecificOutput).GeneralResult); }
public void Create_CalculationWithOutputWithFaultTreeIllustrationPoints_ReturnEntityWithOutputAndGeneralResult() { // Setup PartialProbabilisticFaultTreePipingOutput profileSpecificOutput = PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput(); PartialProbabilisticFaultTreePipingOutput sectionSpecificOutput = PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput(); var output = new ProbabilisticPipingOutput(profileSpecificOutput, sectionSpecificOutput); // Call ProbabilisticPipingCalculationOutputEntity entity = output.Create(); // Assert Assert.AreEqual(output.ProfileSpecificOutput.Reliability, entity.ProfileSpecificReliability); Assert.AreEqual(output.SectionSpecificOutput.Reliability, entity.SectionSpecificReliability); GeneralResultEntityTestHelper.AssertGeneralResultPropertyValues( profileSpecificOutput.GeneralResult, entity.GeneralResultFaultTreeIllustrationPointEntity); GeneralResultEntityTestHelper.AssertGeneralResultPropertyValues( sectionSpecificOutput.GeneralResult, entity.GeneralResultFaultTreeIllustrationPointEntity1); Assert.IsNull(entity.GeneralResultSubMechanismIllustrationPointEntity); Assert.IsNull(entity.GeneralResultSubMechanismIllustrationPointEntity1); }
private static void AddEntityForPipingOutput(ProbabilisticPipingCalculationEntity entity, ProbabilisticPipingOutput output) { if (output != null) { entity.ProbabilisticPipingCalculationOutputEntities.Add(output.Create()); } }
public override void ClearOutput() { Output = null; }
/// <summary> /// Method that asserts whether <paramref name="original"/> and <paramref name="clone"/> /// are clones. /// </summary> /// <param name="original">The original object.</param> /// <param name="clone">The cloned object.</param> /// <exception cref="AssertionException">Thrown when <paramref name="original"/> and /// <paramref name="clone"/> are not clones.</exception> public static void AreClones(ProbabilisticPipingOutput original, ProbabilisticPipingOutput clone) { CoreCloneAssert.AreObjectClones(original.SectionSpecificOutput, clone.SectionSpecificOutput, AreClones); CoreCloneAssert.AreObjectClones(original.ProfileSpecificOutput, clone.ProfileSpecificOutput, AreClones); }
private static bool HasIllustrationPoints(ProbabilisticPipingOutput output) { return(output.ProfileSpecificOutput.HasGeneralResult || output.SectionSpecificOutput.HasGeneralResult); }