public void Constructor_NoGeneralResult_PropertiesHaveExpectedAttributesValues()
        {
            // Setup
            PartialProbabilisticSubMechanismPipingOutput output = PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput(null);

            // Call
            var properties = new ProbabilisticSubMechanismPipingOutputProperties(output);

            // Assert
            PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties);

            Assert.AreEqual(2, dynamicProperties.Count);

            PropertyDescriptor probabilityProperty = dynamicProperties[probabilityPropertyIndex];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(probabilityProperty,
                                                                            resultCategoryName,
                                                                            "Faalkans [1/jaar]",
                                                                            "De kans dat het faalmechanisme optreedt voor deze berekening.",
                                                                            true);

            PropertyDescriptor reliabilityProperty = dynamicProperties[reliabilityPropertyIndex];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(reliabilityProperty,
                                                                            resultCategoryName,
                                                                            "Betrouwbaarheidsindex faalkans [-]",
                                                                            "De betrouwbaarheidsindex van de faalkans voor deze berekening.",
                                                                            true);
        }
        public void Constructor_WithData_ExpectedValues()
        {
            // Setup
            PartialProbabilisticSubMechanismPipingOutput output = PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput();

            // Call
            var properties = new ProbabilisticSubMechanismPipingOutputProperties(output);

            // Assert
            Assert.IsInstanceOf <ProbabilisticSubMechanismPipingOutputProperties>(properties);
            Assert.AreSame(output, properties.Data);
        }
        public void IllustrationPoints_WithoutGeneralResult_ReturnsEmptyTopLevelSubMechanismIllustrationPointPropertiesArray()
        {
            // Setup
            PartialProbabilisticSubMechanismPipingOutput output = PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput(null);
            var properties = new ProbabilisticSubMechanismPipingOutputProperties(output);

            // Call
            TopLevelSubMechanismIllustrationPointProperties[] illustrationPoints = properties.IllustrationPoints;

            // Assert
            CollectionAssert.IsEmpty(illustrationPoints);
        }
        public void Constructor_ExpectedValues(bool withIllustrationPoints)
        {
            // Setup
            var    random      = new Random(39);
            double reliability = random.NextDouble();
            GeneralResult <TopLevelSubMechanismIllustrationPoint> generalResult = withIllustrationPoints
                                                                                     ? new TestGeneralResultSubMechanismIllustrationPoint()
                                                                                     : null;

            // Call
            var partialProbabilisticPipingOutput = new PartialProbabilisticSubMechanismPipingOutput(reliability, generalResult);

            // Assert
            Assert.IsInstanceOf <PartialProbabilisticPipingOutput <TopLevelSubMechanismIllustrationPoint> >(partialProbabilisticPipingOutput);
            Assert.AreEqual(reliability, partialProbabilisticPipingOutput.Reliability);
            Assert.AreEqual(withIllustrationPoints, partialProbabilisticPipingOutput.HasGeneralResult);
            Assert.AreSame(generalResult, partialProbabilisticPipingOutput.GeneralResult);
        }
        public void GetProperties_WithData_ReturnExpectedValues()
        {
            // Setup
            PartialProbabilisticSubMechanismPipingOutput output = PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput();

            // Call
            var properties = new ProbabilisticSubMechanismPipingOutputProperties(output);

            // Assert
            Assert.AreEqual(ProbabilityFormattingHelper.Format(StatisticsConverter.ReliabilityToProbability(output.Reliability)), properties.Probability);
            Assert.AreEqual(output.Reliability, properties.Reliability, properties.Reliability.GetAccuracy());

            GeneralResult <TopLevelSubMechanismIllustrationPoint> generalResult = output.GeneralResult;

            CollectionAssert.AreEqual(generalResult.Stochasts, properties.AlphaValues);
            CollectionAssert.AreEqual(generalResult.Stochasts, properties.Durations);
            CollectionAssert.AreEqual(generalResult.TopLevelIllustrationPoints, properties.IllustrationPoints.Select(ip => ip.Data));
            Assert.AreEqual(generalResult.GoverningWindDirection.Name, properties.WindDirection);
        }
        public void Create_CalculationWithOutputWithSubMechanismIllustrationPoints_ReturnEntityWithOutputAndGeneralResult()
        {
            // Setup
            PartialProbabilisticSubMechanismPipingOutput profileSpecificOutput = PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput();
            PartialProbabilisticSubMechanismPipingOutput sectionSpecificOutput = PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput();
            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.GeneralResultSubMechanismIllustrationPointEntity);
            GeneralResultEntityTestHelper.AssertGeneralResultPropertyValues(
                sectionSpecificOutput.GeneralResult,
                entity.GeneralResultSubMechanismIllustrationPointEntity1);
            Assert.IsNull(entity.GeneralResultFaultTreeIllustrationPointEntity);
            Assert.IsNull(entity.GeneralResultFaultTreeIllustrationPointEntity1);
        }
Example #7
0
 /// <summary>
 /// Creates a new instance of <see cref="ProbabilisticSubMechanismPipingOutputProperties"/>.
 /// </summary>
 /// <param name="output">The output to show the properties for.</param>
 /// <exception cref="ArgumentNullException">Thrown when <paramref name="output"/> is <c>null</c>.</exception>
 public ProbabilisticSubMechanismPipingOutputProperties(PartialProbabilisticSubMechanismPipingOutput output)
     : base(output)
 {
     subMechanismOutput = output;
 }
        public void Constructor_HasGeneralResult_PropertiesHaveExpectedAttributesValues()
        {
            // Setup
            PartialProbabilisticSubMechanismPipingOutput output = PipingTestDataGenerator.GetRandomPartialProbabilisticSubMechanismPipingOutput();

            // Call
            var properties = new ProbabilisticSubMechanismPipingOutputProperties(output);

            // Assert
            PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties);

            Assert.AreEqual(6, dynamicProperties.Count);

            PropertyDescriptor probabilityProperty = dynamicProperties[probabilityPropertyIndex];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(probabilityProperty,
                                                                            resultCategoryName,
                                                                            "Faalkans [1/jaar]",
                                                                            "De kans dat het faalmechanisme optreedt voor deze berekening.",
                                                                            true);

            PropertyDescriptor reliabilityProperty = dynamicProperties[reliabilityPropertyIndex];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(reliabilityProperty,
                                                                            resultCategoryName,
                                                                            "Betrouwbaarheidsindex faalkans [-]",
                                                                            "De betrouwbaarheidsindex van de faalkans voor deze berekening.",
                                                                            true);

            PropertyDescriptor windDirectionProperty = dynamicProperties[windDirectionPropertyIndex];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(windDirectionProperty,
                                                                            illustrationPointsCategoryName,
                                                                            "Maatgevende windrichting",
                                                                            "De windrichting waarvoor de berekende betrouwbaarheidsindex het laagst is.",
                                                                            true);

            PropertyDescriptor alphaValuesProperty = dynamicProperties[alphaValuesPropertyIndex];

            TestHelper.AssertTypeConverter <ProbabilisticSubMechanismPipingOutputProperties, KeyValueExpandableArrayConverter>(
                nameof(ProbabilisticSubMechanismPipingOutputProperties.AlphaValues));
            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(alphaValuesProperty,
                                                                            illustrationPointsCategoryName,
                                                                            "Invloedscoëfficiënten [-]",
                                                                            "Berekende invloedscoëfficiënten voor alle beschouwde stochasten.",
                                                                            true);

            PropertyDescriptor durationsProperty = dynamicProperties[durationsPropertyIndex];

            TestHelper.AssertTypeConverter <ProbabilisticSubMechanismPipingOutputProperties, KeyValueExpandableArrayConverter>(
                nameof(ProbabilisticSubMechanismPipingOutputProperties.Durations));
            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(durationsProperty,
                                                                            illustrationPointsCategoryName,
                                                                            "Tijdsduren [uur]",
                                                                            "Tijdsduren waarop de stochasten betrekking hebben.",
                                                                            true);

            PropertyDescriptor illustrationPointProperty = dynamicProperties[illustrationPointsPropertyIndex];

            TestHelper.AssertTypeConverter <ProbabilisticSubMechanismPipingOutputProperties, ExpandableArrayConverter>(
                nameof(ProbabilisticSubMechanismPipingOutputProperties.IllustrationPoints));
            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(illustrationPointProperty,
                                                                            illustrationPointsCategoryName,
                                                                            "Illustratiepunten",
                                                                            "De lijst van illustratiepunten voor de berekening.",
                                                                            true);
        }