public void CreateCalculateStrategy_WithProbabilisticConfigurations_ReturnsExpectedStrategy(
            PipingFailureMechanism failureMechanism, PipingScenarioConfigurationPerFailureMechanismSectionType configurationType)
        {
            // Setup
            var mocks             = new MockRepository();
            var assessmentSection = mocks.Stub <IAssessmentSection>();

            mocks.ReplayAll();

            FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();

            failureMechanism.SetSections(new[]
            {
                section
            }, "APath");

            PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationPerFailureMechanismSection =
                failureMechanism.ScenarioConfigurationsPerFailureMechanismSection.Single();

            scenarioConfigurationPerFailureMechanismSection.ScenarioConfigurationType = configurationType;

            // Call
            IFailureMechanismSectionResultCalculateProbabilityStrategy strategy =
                PipingFailureMechanismSectionResultCalculateProbabilityStrategyFactory.CreateCalculateStrategy(
                    failureMechanism.SectionResults.Single(), failureMechanism, assessmentSection);

            // Assert
            Assert.IsInstanceOf <ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy>(strategy);
        }
Beispiel #2
0
        public void GetScenarioConfigurationForSection_WithSectionResult_ReturnsCorrespondingConfiguration()
        {
            // Setup
            var sections = new[]
            {
                new FailureMechanismSection("section 1", new[]
                {
                    new Point2D(0, 2),
                    new Point2D(2, 3)
                }),
                new FailureMechanismSection("section 2", new[]
                {
                    new Point2D(2, 3),
                    new Point2D(4, 5)
                }),
                new FailureMechanismSection("section 3", new[]
                {
                    new Point2D(4, 5),
                    new Point2D(2, 3)
                })
            };
            var failureMechanism = new PipingFailureMechanism();

            failureMechanism.SetSections(sections, "APath");

            var sectionResult = new TestFailureMechanismSectionResult(sections[1]);

            // Call
            PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationForSection =
                failureMechanism.GetScenarioConfigurationForSection(sectionResult);

            // Assert
            Assert.AreSame(scenarioConfigurationForSection.Section, sectionResult.Section);
        }
Beispiel #3
0
        private IFailureMechanismSectionResultRowWithCalculatedProbabilityErrorProvider CreateErrorProvider(FailureMechanismSectionResult sectionResult)
        {
            PipingScenarioConfigurationPerFailureMechanismSection   scenarioConfigurationForSection = FailureMechanism.GetScenarioConfigurationForSection(sectionResult);
            IEnumerable <IPipingCalculationScenario <PipingInput> > calculationScenarios            = FailureMechanism.ScenarioConfigurationTypeIsSemiProbabilistic(scenarioConfigurationForSection)
                                                                                            ? (IEnumerable <IPipingCalculationScenario <PipingInput> >)FailureMechanism.Calculations.OfType <SemiProbabilisticPipingCalculationScenario>()
                                                                                            : FailureMechanism.Calculations.OfType <ProbabilisticPipingCalculationScenario>();

            return(new FailureMechanismSectionResultRowWithCalculatedProbabilityErrorProvider <IPipingCalculationScenario <PipingInput> >(
                       sectionResult, calculationScenarios,
                       (scenario, lineSegments) => scenario.IsSurfaceLineIntersectionWithReferenceLineInSection(lineSegments)));
        }
        public void Constructor_ExpectedValues()
        {
            // Setup
            FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
            var scenarioConfiguration       = new PipingScenarioConfigurationPerFailureMechanismSection(section);

            // Call
            var viewModel = new PipingScenariosViewFailureMechanismSectionViewModel(section, new PipingFailureMechanism(), scenarioConfiguration);

            // Assert
            Assert.AreSame(section, viewModel.Section);
            Assert.AreSame(scenarioConfiguration, viewModel.ScenarioConfigurationPerSection);
        }
Beispiel #5
0
        public void Constructor_ExpectedValues()
        {
            // Setup
            FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();

            // Call
            var scenarioConfigurationPerFailureMechanismSection = new PipingScenarioConfigurationPerFailureMechanismSection(section);

            // Assert
            Assert.IsInstanceOf <Observable>(scenarioConfigurationPerFailureMechanismSection);
            Assert.AreSame(section, scenarioConfigurationPerFailureMechanismSection.Section);
            Assert.AreEqual(PipingScenarioConfigurationPerFailureMechanismSectionType.SemiProbabilistic,
                            scenarioConfigurationPerFailureMechanismSection.ScenarioConfigurationType);
        }
        private void UpdateScenarioConfigurations(PipingScenarioConfigurationPerFailureMechanismSection[] oldScenarioConfigurationsPerFailureMechanismSection)
        {
            foreach (PipingScenarioConfigurationPerFailureMechanismSection newScenarioConfiguration in failureMechanism.ScenarioConfigurationsPerFailureMechanismSection)
            {
                PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationToCopy = oldScenarioConfigurationsPerFailureMechanismSection.FirstOrDefault(
                    oldScenarioConfiguration => oldScenarioConfiguration.Section.StartPoint.Equals(newScenarioConfiguration.Section.StartPoint) &&
                    oldScenarioConfiguration.Section.EndPoint.Equals(newScenarioConfiguration.Section.EndPoint));

                if (scenarioConfigurationToCopy != null)
                {
                    newScenarioConfiguration.ScenarioConfigurationType = scenarioConfigurationToCopy.ScenarioConfigurationType;
                }
            }
        }
Beispiel #7
0
        public void ScenarioConfigurationTypeIsSemiProbabilistic_FailureMechanismNull_ThrowsArgumentNullException()
        {
            // Setup
            FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
            var scenarioConfigurationPerFailureMechanismSection = new PipingScenarioConfigurationPerFailureMechanismSection(section);

            // Call
            void Call() => PipingFailureMechanismExtensions.ScenarioConfigurationTypeIsSemiProbabilistic(null, scenarioConfigurationPerFailureMechanismSection);

            // Assert
            var exception = Assert.Throws <ArgumentNullException>(Call);

            Assert.AreEqual("failureMechanism", exception.ParamName);
        }
        /// <summary>
        /// Reads the <see cref="PipingScenarioConfigurationPerFailureMechanismSectionEntity"/> and use the information to construct a
        /// <see cref="PipingScenarioConfigurationPerFailureMechanismSection"/>.
        /// </summary>
        /// <param name="entity">The <see cref="PipingScenarioConfigurationPerFailureMechanismSectionEntity"/> used to update
        /// the <paramref name="scenarioConfigurationsPerFailureMechanismSection"/>.</param>
        /// <param name="scenarioConfigurationsPerFailureMechanismSection">The target of the read operation.</param>
        /// <exception cref="ArgumentNullException">Thrown when any parameter is <c>null</c>.</exception>
        internal static void Read(this PipingScenarioConfigurationPerFailureMechanismSectionEntity entity,
                                  PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationsPerFailureMechanismSection)
        {
            if (entity == null)
            {
                throw new ArgumentNullException(nameof(entity));
            }

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

            scenarioConfigurationsPerFailureMechanismSection.ScenarioConfigurationType =
                (PipingScenarioConfigurationPerFailureMechanismSectionType)entity.PipingScenarioConfigurationPerFailureMechanismSectionType;
        }
        public void Create_WithScenarioConfiguration_ReturnsExpectedEntity()
        {
            // Setup
            var random = new Random(21);
            FailureMechanismSection failureMechanismSection = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
            var configuration = new PipingScenarioConfigurationPerFailureMechanismSection(failureMechanismSection)
            {
                ScenarioConfigurationType = random.NextEnumValue <PipingScenarioConfigurationPerFailureMechanismSectionType>()
            };

            // Call
            PipingScenarioConfigurationPerFailureMechanismSectionEntity entity = configuration.Create();

            // Assert
            Assert.AreEqual(Convert.ToByte(configuration.ScenarioConfigurationType), entity.PipingScenarioConfigurationPerFailureMechanismSectionType);
        }
        public void CreateCalculateStrategy_AssessmentSectionNull_ThrowsArgumentNullException()
        {
            // Setup
            FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
            var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
            PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationForSection = CreateScenarioConfigurationForSection(section);

            var failureMechanism = new PipingFailureMechanism();

            // Call
            void Call() => PipingFailureMechanismSectionResultCalculateProbabilityStrategyFactory.CreateCalculateStrategy(
                sectionResult, failureMechanism, null);

            // Assert
            var exception = Assert.Throws <ArgumentNullException>(Call);

            Assert.AreEqual("assessmentSection", exception.ParamName);
        }
        public void ToString_FailureMechanismScenarioConfigurationTypeNotPerSection_ReturnsExpectedName(PipingScenarioConfigurationType scenarioConfigurationType)
        {
            // Setup
            FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
            var pipingFailureMechanism      = new PipingFailureMechanism
            {
                ScenarioConfigurationType = scenarioConfigurationType
            };
            var scenarioConfiguration = new PipingScenarioConfigurationPerFailureMechanismSection(section);

            var viewModel = new PipingScenariosViewFailureMechanismSectionViewModel(section, pipingFailureMechanism, scenarioConfiguration);

            // Call
            var toString = viewModel.ToString();

            // Assert
            Assert.AreEqual(section.Name, toString);
        }
Beispiel #12
0
        public void Read_ParameterValues_SectionResultWithParameterValues()
        {
            // Setup
            var random            = new Random(21);
            var configurationType = random.NextEnumValue <PipingScenarioConfigurationPerFailureMechanismSectionType>();

            var entity = new PipingScenarioConfigurationPerFailureMechanismSectionEntity
            {
                PipingScenarioConfigurationPerFailureMechanismSectionType = Convert.ToByte(configurationType)
            };

            var configurationPerSection =
                new PipingScenarioConfigurationPerFailureMechanismSection(FailureMechanismSectionTestFactory.CreateFailureMechanismSection());

            // Call
            entity.Read(configurationPerSection);

            // Assert
            Assert.AreEqual(configurationType, configurationPerSection.ScenarioConfigurationType);
        }
        /// <summary>
        /// Creates a new instance of <see cref="PipingScenariosViewFailureMechanismSectionViewModel"/>.
        /// </summary>
        /// <param name="failureMechanismSection">The wrapped <see cref="FailureMechanismSection"/>.</param>
        /// <param name="failureMechanism">The failure mechanism the section belongs to.</param>
        /// <param name="scenarioConfigurationPerSection">The scenario configuration that belongs to the section.</param>
        /// <exception cref="ArgumentNullException">Thrown when any parameter is <c>null</c>.</exception>
        public PipingScenariosViewFailureMechanismSectionViewModel(FailureMechanismSection failureMechanismSection,
                                                                   PipingFailureMechanism failureMechanism,
                                                                   PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationPerSection)
        {
            if (failureMechanismSection == null)
            {
                throw new ArgumentNullException(nameof(failureMechanismSection));
            }

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

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

            Section = failureMechanismSection;
            this.failureMechanism           = failureMechanism;
            ScenarioConfigurationPerSection = scenarioConfigurationPerSection;
        }
Beispiel #14
0
        public void ScenarioConfigurationTypeIsSemiProbabilistic_VariousConfigurations_ReturnsExpectedResult(
            PipingFailureMechanism failureMechanism, PipingScenarioConfigurationPerFailureMechanismSectionType configurationType,
            bool expectedResult)
        {
            // Setup
            FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();

            failureMechanism.SetSections(new[]
            {
                section
            }, "APath");

            PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationPerFailureMechanismSection =
                failureMechanism.ScenarioConfigurationsPerFailureMechanismSection.Single();

            scenarioConfigurationPerFailureMechanismSection.ScenarioConfigurationType = configurationType;

            // Call
            bool isSemiProbabilistic = failureMechanism.ScenarioConfigurationTypeIsSemiProbabilistic(scenarioConfigurationPerFailureMechanismSection);

            // Assert
            Assert.AreEqual(expectedResult, isSemiProbabilistic);
        }
Beispiel #15
0
        /// <summary>
        /// Creates a <see cref="PipingScenarioConfigurationPerFailureMechanismSectionEntity"/> based on the information of the
        /// <see cref="PipingScenarioConfigurationPerFailureMechanismSection"/>.
        /// </summary>
        /// <param name="section">The section to create a database entity for.</param>
        /// <returns>A new <see cref="PipingScenarioConfigurationPerFailureMechanismSectionEntity"/>.</returns>
        /// <exception cref="ArgumentNullException">Thrown when <paramref name="section"/> is <c>null</c>.</exception>
        internal static PipingScenarioConfigurationPerFailureMechanismSectionEntity Create(this PipingScenarioConfigurationPerFailureMechanismSection section)
        {
            if (section == null)
            {
                throw new ArgumentNullException(nameof(section));
            }

            return(new PipingScenarioConfigurationPerFailureMechanismSectionEntity
            {
                PipingScenarioConfigurationPerFailureMechanismSectionType = Convert.ToByte(section.ScenarioConfigurationType)
            });
        }