コード例 #1
0
        public void ReadSettings_FromValidFile_ReturnsAllAssessmentSectionSettings()
        {
            // Setup
            var reader = new AssessmentSectionSettingsReader();

            // Call
            AssessmentSectionSettings[] settingDefinitions = reader.ReadSettings();

            // Assert
            Assert.AreEqual(237, settingDefinitions.Length);
            AssessmentSectionSettings settings = settingDefinitions[1];

            Assert.AreEqual("1-2", settings.AssessmentSectionId);
            Assert.AreEqual(2.0, settings.N);
            Assert.IsFalse(settings.IsDune);

            settings = settingDefinitions[2];
            Assert.AreEqual("2-1", settings.AssessmentSectionId);
            Assert.AreEqual(3.0, settings.N);
            Assert.IsTrue(settings.IsDune);
        }
コード例 #2
0
        /// <summary>
        /// Creates a new instance of <see cref="AssessmentSection"/>.
        /// </summary>
        /// <param name="selectedItem">The selected <see cref="ReferenceLineMeta"/>.</param>
        /// <param name="maximumAllowableFloodingProbability">The maximum allowable flooding probability of the assessment section.</param>
        /// <param name="signalFloodingProbability">The signal flooding probability of the assessment section.</param>
        /// <param name="normativeProbabilityType">The normative probability type of the assessment section.</param>
        /// <returns>The newly created <see cref="AssessmentSection"/>.</returns>
        /// <exception cref="ArgumentOutOfRangeException">Thrown when:
        /// <list type="bullet">
        /// <item><paramref name="maximumAllowableFloodingProbability"/> is not in the interval [0.000001, 0.1] or is <see cref="double.NaN"/>;</item>
        /// <item><paramref name="signalFloodingProbability"/> is not in the interval [0.000001, 0.1] or is <see cref="double.NaN"/>;</item>
        /// <item>The <paramref name="signalFloodingProbability"/> is larger than <paramref name="maximumAllowableFloodingProbability"/>.</item>
        /// </list>
        /// </exception>
        private AssessmentSection CreateAssessmentSection(ReferenceLineMeta selectedItem,
                                                          double maximumAllowableFloodingProbability,
                                                          double signalFloodingProbability,
                                                          NormativeProbabilityType normativeProbabilityType)
        {
            AssessmentSection         assessmentSection;
            AssessmentSectionSettings settingOfSelectedAssessmentSection = settings.FirstOrDefault(s => s.AssessmentSectionId == selectedItem.AssessmentSectionId);

            if (settingOfSelectedAssessmentSection == null)
            {
                log.Warn(Resources.AssessmentSectionFromFileCommandHandler_CreateAssessmentSection_No_settings_found_for_AssessmentSection);
                assessmentSection = CreateDikeAssessmentSection(maximumAllowableFloodingProbability, signalFloodingProbability);
            }
            else
            {
                assessmentSection = settingOfSelectedAssessmentSection.IsDune
                                        ? CreateDuneAssessmentSection(maximumAllowableFloodingProbability,
                                                                      signalFloodingProbability,
                                                                      settingOfSelectedAssessmentSection.N)
                                        : CreateDikeAssessmentSection(maximumAllowableFloodingProbability,
                                                                      signalFloodingProbability,
                                                                      settingOfSelectedAssessmentSection.N);
            }

            assessmentSection.Name = string.Format(IntegrationResources.AssessmentSection_Id_0, selectedItem.AssessmentSectionId);
            assessmentSection.Id   = selectedItem.AssessmentSectionId;

            if (!selectedItem.ReferenceLine.Points.Any())
            {
                log.Warn(Resources.AssessmentSectionFromFileCommandHandler_CreateAssessmentSection_Importing_ReferenceLineFailed);
            }
            else
            {
                assessmentSection.ReferenceLine.SetGeometry(selectedItem.ReferenceLine.Points);
            }

            assessmentSection.FailureMechanismContribution.NormativeProbabilityType = normativeProbabilityType;

            return(assessmentSection);
        }