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); }
/// <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); }