// Copyright (C) Stichting Deltares 2018. All rights reserved. // // This file is part of the application DAM - UI. // // DAM - UI is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using Deltares.Dam.Data; using NUnit.Framework; using Deltares.Dam.Data.UISupport; namespace Deltares.Dam.Tests.UISupport { [TestFixture] public class ConfigurationManagerTest { [Test] public void ReturnsCorrectAvailableDamProjectTypes() { ICollection projectTypes = ConfigurationManager.Instance.GetAvailableDamProjectTypes(); Assert.AreEqual(3, projectTypes.Count); } [Test] public void ReturnsCorrectAvailableProbabilisticTypes() { ICollection probabilisticTypes = ConfigurationManager.Instance.GetAvailableProbabilisticTypes(DamProjectType.Design); Assert.AreEqual(1, probabilisticTypes.Count); probabilisticTypes = ConfigurationManager.Instance.GetAvailableProbabilisticTypes(DamProjectType.Calamity); Assert.AreEqual(1, probabilisticTypes.Count); probabilisticTypes = ConfigurationManager.Instance.GetAvailableProbabilisticTypes(DamProjectType.Assessment); Assert.AreEqual(1, probabilisticTypes.Count); } [Test] public void ReturnsCorrectAvailableProbalisticFailuremechanisms() { ICollection failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.DamClassicStability, DamProjectType.Design, ProbabilisticType.Probabilistic); Assert.AreEqual(1, failureMechanisms.Count, "DamClassicStability: Incorrect number of failuremechanisms for probabilistic calculation"); foreach (var failureMechanism in failureMechanisms) { Assert.IsTrue(failureMechanism.Equals(FailureMechanismSystemType.Piping)); } failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.WtiMacroStabilityKernel, DamProjectType.Design, ProbabilisticType.Probabilistic); Assert.AreEqual(0, failureMechanisms.Count, "WtiMacroStabilityKernel: Incorrect number of failuremechanisms for probabilistic calculation"); } [Test] public void ReturnsCorrectAvailableProbalisticFragilityFailuremechanisms() { ICollection failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.DamClassicStability, DamProjectType.Design, ProbabilisticType.ProbabilisticFragility); Assert.AreEqual(1, failureMechanisms.Count, "DamClassicStability: Incorrect number of failuremechanisms for probabilistic fragility calculation"); foreach (var failureMechanism in failureMechanisms) { Assert.IsTrue(failureMechanism.Equals(FailureMechanismSystemType.Piping)); } failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.WtiMacroStabilityKernel, DamProjectType.Design, ProbabilisticType.ProbabilisticFragility); Assert.AreEqual(0, failureMechanisms.Count, "WtiMacroStabilityKernel: Incorrect number of failuremechanisms for probabilistic fragility calculation"); } [Test] public void ReturnsCorrectAvailableDeterministicFailuremechanisms() { ICollection failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.DamClassicStability, DamProjectType.Design, ProbabilisticType.Deterministic); Assert.AreEqual(3, failureMechanisms.Count, "DamClassicStability: Incorrect number of failuremechanisms for deterministic calculation"); foreach (var failureMechanism in failureMechanisms) { Assert.IsTrue(failureMechanism.Equals(FailureMechanismSystemType.Piping) || failureMechanism.Equals(FailureMechanismSystemType.StabilityInside) || failureMechanism.Equals(FailureMechanismSystemType.StabilityOutside) || failureMechanism.Equals(FailureMechanismSystemType.FlowSlide)); } failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.WtiMacroStabilityKernel, DamProjectType.Design, ProbabilisticType.Deterministic); Assert.AreEqual(1, failureMechanisms.Count, "WtiMacroStabilityKernel: Incorrect number of failuremechanisms for deterministic calculation"); } [Test] public void ReturnsCorrectAvailableDeterministicFailuremechanismModelsForDesignOption() { ICollection pipingModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicStability, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.Piping); Assert.AreEqual(4, pipingModels.Count, "DamClassicStability: Incorrect number of models for deterministic piping calculation"); ICollection stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicStability, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(3, stabilityInsideModels.Count, "DamClassicStability: Incorrect number of models for deterministic stability inside calculation"); ICollection stabilityOutsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicStability, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.StabilityOutside); Assert.AreEqual(1, stabilityOutsideModels.Count, "DamClassicStability: Incorrect number of models for deterministic stability outside calculation"); ICollection stabilityHorizontalBalanceModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicStability, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.HorizontalBalance); Assert.AreEqual(0, stabilityHorizontalBalanceModels.Count, "DamClassicStability: Incorrect number of models for deterministic horizontal balance calculation"); ICollection flowSlideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicStability, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.FlowSlide); Assert.AreEqual(0, flowSlideModels.Count, "DamClassicStability: Incorrect number of models for deterministic flowslide calculation"); stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.WtiMacroStabilityKernel, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(1, stabilityInsideModels.Count, "WtiMacroStabilityKernel: Incorrect number of models for deterministic stability inside calculation"); pipingModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.WtiMacroStabilityKernel, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.Piping); Assert.AreEqual(0, pipingModels.Count, "WtiMacroStabilityKernel: Incorrect number of models for deterministic piping calculation"); } [Test] public void ReturnsCorrectAvailableDeterministicFailuremechanismModelsForCalamityOption() { ICollection pipingModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicStability, DamProjectType.Calamity, ProbabilisticType.Deterministic, FailureMechanismSystemType.Piping); Assert.AreEqual(3, pipingModels.Count, "Incorrect number of models for deterministic piping calculation"); ICollection stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicStability, DamProjectType.Calamity, ProbabilisticType.Deterministic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(2, stabilityInsideModels.Count, "Incorrect number of models for deterministic stability inside calculation"); ICollection stabilityOutsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicStability, DamProjectType.Calamity, ProbabilisticType.Deterministic, FailureMechanismSystemType.StabilityOutside); Assert.AreEqual(1, stabilityOutsideModels.Count, "Incorrect number of models for deterministic stability outside calculation"); ICollection stabilityHorizontalBalanceModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicStability, DamProjectType.Calamity, ProbabilisticType.Deterministic, FailureMechanismSystemType.HorizontalBalance); Assert.AreEqual(0, stabilityHorizontalBalanceModels.Count, "Incorrect number of models for deterministic horizontal balance calculation"); ICollection flowSlideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicStability, DamProjectType.Calamity, ProbabilisticType.Deterministic, FailureMechanismSystemType.FlowSlide); Assert.AreEqual(0, flowSlideModels.Count, "Incorrect number of models for deterministic flowslide calculation"); stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.WtiMacroStabilityKernel, DamProjectType.Calamity, ProbabilisticType.Deterministic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(0, stabilityInsideModels.Count, "WtiMacroStabilityKernel: Incorrect number of models for deterministic stability inside calculation"); } [Test] public void ReturnsCorrectAvailableProbalisticFailuremechanismModels() { ICollection pipingModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicStability, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.Piping); Assert.AreEqual(1, pipingModels.Count, "DamClassicStability: Incorrect number of models for deterministic piping calculation"); ICollection stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicStability, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(0, stabilityInsideModels.Count, "DamClassicStability: Incorrect number of models for deterministic stability inside calculation"); ICollection stabilityOutsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicStability, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.StabilityOutside); Assert.AreEqual(0, stabilityOutsideModels.Count, "DamClassicStability: Incorrect number of models for deterministic stability outside calculation"); ICollection stabilityHorizontalBalanceModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicStability, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.HorizontalBalance); Assert.AreEqual(0, stabilityHorizontalBalanceModels.Count, "DamClassicStability: Incorrect number of models for deterministic horizontal balance calculation"); pipingModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.WtiMacroStabilityKernel, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.Piping); Assert.AreEqual(0, pipingModels.Count, "WtiMacroStabilityKernel: Incorrect number of models for deterministic piping calculation"); pipingModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.WtiMacroStabilityKernel, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.Piping); Assert.AreEqual(0, pipingModels.Count, "WtiMacroStabilityKernel: Incorrect number of models for Probabilistic piping calculation"); stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.WtiMacroStabilityKernel, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(0, stabilityInsideModels.Count, "DamClassicWti: Incorrect number of models for Probabilistic stability inside calculation"); stabilityOutsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.WtiMacroStabilityKernel, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.StabilityOutside); Assert.AreEqual(0, stabilityOutsideModels.Count, "DamClassicWti: Incorrect number of models for Probabilistic stability outside calculation"); stabilityHorizontalBalanceModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.WtiMacroStabilityKernel, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.HorizontalBalance); Assert.AreEqual(0, stabilityHorizontalBalanceModels.Count, "DamClassicWti: Incorrect number of models for deterministic horizontal balance calculation"); } } }