// 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.DamClassic, DamProjectType.Design, ProbabilisticType.Probabilistic); Assert.AreEqual(1, failureMechanisms.Count, "DamClassic: Incorrect number of failuremechanisms for probabilistic calculation"); foreach (var failureMechanism in failureMechanisms) { Assert.IsTrue(failureMechanism.Equals(FailureMechanismSystemType.Piping)); } failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.DamClassicDotNet, DamProjectType.Design, ProbabilisticType.Probabilistic); Assert.AreEqual(0, failureMechanisms.Count, "DamClassicDotNet: Incorrect number of failuremechanisms for probabilistic calculation"); failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.DamClassicWti, DamProjectType.Design, ProbabilisticType.Probabilistic); Assert.AreEqual(0, failureMechanisms.Count, "DamClassicWti: Incorrect number of failuremechanisms for probabilistic calculation"); failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.AdvancedDotNet, DamProjectType.Design, ProbabilisticType.Probabilistic); Assert.AreEqual(0, failureMechanisms.Count, "AdvancedDotNet: Incorrect number of failuremechanisms for probabilistic calculation"); failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.AdvancedWti, DamProjectType.Design, ProbabilisticType.Probabilistic); Assert.AreEqual(0, failureMechanisms.Count, "AdvancedWti: Incorrect number of failuremechanisms for probabilistic calculation"); } [Test] public void ReturnsCorrectAvailableProbalisticFragilityFailuremechanisms() { ICollection failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.DamClassic, DamProjectType.Design, ProbabilisticType.ProbabilisticFragility); Assert.AreEqual(1, failureMechanisms.Count, "DamClassic: Incorrect number of failuremechanisms for probabilistic fragility calculation"); foreach (var failureMechanism in failureMechanisms) { Assert.IsTrue(failureMechanism.Equals(FailureMechanismSystemType.Piping)); } failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.DamClassicDotNet, DamProjectType.Design, ProbabilisticType.ProbabilisticFragility); Assert.AreEqual(0, failureMechanisms.Count, "DamClassicDotNet: Incorrect number of failuremechanisms for probabilistic fragility calculation"); failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.DamClassicWti, DamProjectType.Design, ProbabilisticType.ProbabilisticFragility); Assert.AreEqual(0, failureMechanisms.Count, "DamClassicWti: Incorrect number of failuremechanisms for probabilistic fragility calculation"); failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.AdvancedDotNet, DamProjectType.Design, ProbabilisticType.ProbabilisticFragility); Assert.AreEqual(0, failureMechanisms.Count, "AdvancedDotNet: Incorrect number of failuremechanisms for probabilistic fragility calculation"); failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.AdvancedWti, DamProjectType.Design, ProbabilisticType.ProbabilisticFragility); Assert.AreEqual(0, failureMechanisms.Count, "AdvancedWti: Incorrect number of failuremechanisms for probabilistic fragility calculation"); } [Test] public void ReturnsCorrectAvailableDeterministicFailuremechanisms() { ICollection failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.DamClassic, DamProjectType.Design, ProbabilisticType.Deterministic); Assert.AreEqual(3, failureMechanisms.Count, "DamClassic: 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)); } //Overleggen met TOM ERIK wat wel niet mag! Voorlopig voor alle nieuwe kernels alleen stability inside en outside failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.DamClassicDotNet, DamProjectType.Design, ProbabilisticType.Deterministic); Assert.AreEqual(2, failureMechanisms.Count, "DamClassicDotNet: Incorrect number of failuremechanisms for deterministic calculation"); failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.DamClassicWti, DamProjectType.Design, ProbabilisticType.Deterministic); Assert.AreEqual(2, failureMechanisms.Count, "DamClassicWti: Incorrect number of failuremechanisms for deterministic calculation"); failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.AdvancedDotNet, DamProjectType.Design, ProbabilisticType.Deterministic); Assert.AreEqual(2, failureMechanisms.Count, "AdvancedDotNet: Incorrect number of failuremechanisms for deterministic calculation"); failureMechanisms = ConfigurationManager.Instance.GetAvailableFailureMechanisms(StabilityKernelType.AdvancedWti, DamProjectType.Design, ProbabilisticType.Deterministic); Assert.AreEqual(2, failureMechanisms.Count, "AdvancedWti: Incorrect number of failuremechanisms for deterministic calculation"); } [Test] public void ReturnsCorrectAvailableDeterministicFailuremechanismModelsForDesignOption() { ICollection pipingModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassic, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.Piping); Assert.AreEqual(3, pipingModels.Count, "DamClassic: Incorrect number of models for deterministic piping calculation"); ICollection stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassic, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(3, stabilityInsideModels.Count, "DamClassic: Incorrect number of models for deterministic stability inside calculation"); ICollection stabilityOutsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassic, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.StabilityOutside); Assert.AreEqual(1, stabilityOutsideModels.Count, "DamClassic: Incorrect number of models for deterministic stability outside calculation"); ICollection stabilityHorizontalBalanceModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassic, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.HorizontalBalance); Assert.AreEqual(0, stabilityHorizontalBalanceModels.Count, "DamClassic: Incorrect number of models for deterministic horizontal balance calculation"); ICollection flowSlideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassic, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.FlowSlide); Assert.AreEqual(0, flowSlideModels.Count, "DamClassic: Incorrect number of models for deterministic flowslide calculation"); // aanvullen na overleg // voorlopig 3: Bishop UpliftVan Spencer stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicWti, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(3, stabilityInsideModels.Count, "DamClassicWti: Incorrect number of models for deterministic stability inside calculation"); // voorlopig 2: Bishop UpliftVan stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicDotNet, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(2, stabilityInsideModels.Count, "DamClassicDotNet: Incorrect number of models for deterministic stability inside calculation"); // voorlopig 4: Bishop UpliftVan SpencerHigh SpencerLow stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.AdvancedWti, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(4, stabilityInsideModels.Count, "AdvancedWti: Incorrect number of models for deterministic stability inside calculation"); // voorlopig 2: Bishop UpliftVan stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.AdvancedDotNet, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(2, stabilityInsideModels.Count, "AdvancedDotNet: Incorrect number of models for deterministic stability inside calculation"); pipingModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicWti, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.Piping); Assert.AreEqual(0, pipingModels.Count, "DamClassicWti: Incorrect number of models for deterministic piping calculation"); pipingModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicDotNet, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.Piping); Assert.AreEqual(0, pipingModels.Count, "DamClassicDotNet: Incorrect number of models for deterministic piping calculation"); pipingModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.AdvancedWti, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.Piping); Assert.AreEqual(0, pipingModels.Count, "AdvancedWti: Incorrect number of models for deterministic piping calculation"); pipingModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.AdvancedDotNet, DamProjectType.Design, ProbabilisticType.Deterministic, FailureMechanismSystemType.Piping); Assert.AreEqual(0, pipingModels.Count, "AdvancedDotNet: Incorrect number of models for deterministic piping calculation"); } [Test] public void ReturnsCorrectAvailableDeterministicFailuremechanismModelsForCalamityOption() { ICollection pipingModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassic, 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.DamClassic, 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.DamClassic, 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.DamClassic, 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.DamClassic, DamProjectType.Calamity, ProbabilisticType.Deterministic, FailureMechanismSystemType.FlowSlide); Assert.AreEqual(0, flowSlideModels.Count, "Incorrect number of models for deterministic flowslide calculation"); stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicWti, DamProjectType.Calamity, ProbabilisticType.Deterministic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(0, stabilityInsideModels.Count, "DamClassicWti: Incorrect number of models for deterministic stability inside calculation"); stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicDotNet, DamProjectType.Calamity, ProbabilisticType.Deterministic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(0, stabilityInsideModels.Count, "DamClassicDotNet: Incorrect number of models for deterministic stability inside calculation"); stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.AdvancedWti, DamProjectType.Calamity, ProbabilisticType.Deterministic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(0, stabilityInsideModels.Count, "AdvancedWti: Incorrect number of models for deterministic stability inside calculation"); stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.AdvancedDotNet, DamProjectType.Calamity, ProbabilisticType.Deterministic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(0, stabilityInsideModels.Count, "AdvancedDotNet: Incorrect number of models for deterministic stability inside calculation"); } [Test] public void ReturnsCorrectAvailableProbalisticFailuremechanismModels() { ICollection pipingModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassic, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.Piping); Assert.AreEqual(1, pipingModels.Count, "DamClassic: Incorrect number of models for deterministic piping calculation"); ICollection stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassic, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(0, stabilityInsideModels.Count, "DamClassic: Incorrect number of models for deterministic stability inside calculation"); ICollection stabilityOutsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassic, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.StabilityOutside); Assert.AreEqual(0, stabilityOutsideModels.Count, "DamClassic: Incorrect number of models for deterministic stability outside calculation"); ICollection stabilityHorizontalBalanceModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassic, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.HorizontalBalance); Assert.AreEqual(0, stabilityHorizontalBalanceModels.Count, "DamClassic: Incorrect number of models for deterministic horizontal balance calculation"); pipingModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicDotNet, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.Piping); Assert.AreEqual(0, pipingModels.Count, "DamClassicDotNet: Incorrect number of models for deterministic piping calculation"); stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicDotNet, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(0, stabilityInsideModels.Count, "DamClassicDotNet: Incorrect number of models for deterministic stability inside calculation"); stabilityOutsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicDotNet, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.StabilityOutside); Assert.AreEqual(0, stabilityOutsideModels.Count, "DamClassicDotNet: Incorrect number of models for deterministic stability outside calculation"); stabilityHorizontalBalanceModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicDotNet, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.HorizontalBalance); Assert.AreEqual(0, stabilityHorizontalBalanceModels.Count, "DamClassicDotNet: Incorrect number of models for deterministic horizontal balance calculation"); pipingModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicWti, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.Piping); Assert.AreEqual(0, pipingModels.Count, "DamClassicWti: Incorrect number of models for deterministic piping calculation"); stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicWti, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(0, stabilityInsideModels.Count, "DamClassicWti: Incorrect number of models for deterministic stability inside calculation"); stabilityOutsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicWti, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.StabilityOutside); Assert.AreEqual(0, stabilityOutsideModels.Count, "DamClassicWti: Incorrect number of models for deterministic stability outside calculation"); stabilityHorizontalBalanceModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.DamClassicWti, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.HorizontalBalance); Assert.AreEqual(0, stabilityHorizontalBalanceModels.Count, "DamClassicWti: Incorrect number of models for deterministic horizontal balance calculation"); pipingModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.AdvancedDotNet, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.Piping); Assert.AreEqual(0, pipingModels.Count, "AdvancedDotNet: Incorrect number of models for deterministic piping calculation"); stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.AdvancedDotNet, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(0, stabilityInsideModels.Count, "AdvancedDotNet: Incorrect number of models for deterministic stability inside calculation"); stabilityOutsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.AdvancedDotNet, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.StabilityOutside); Assert.AreEqual(0, stabilityOutsideModels.Count, "AdvancedDotNet: Incorrect number of models for deterministic stability outside calculation"); stabilityHorizontalBalanceModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.AdvancedDotNet, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.HorizontalBalance); Assert.AreEqual(0, stabilityHorizontalBalanceModels.Count, "AdvancedDotNet: Incorrect number of models for deterministic horizontal balance calculation"); pipingModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.AdvancedWti, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.Piping); Assert.AreEqual(0, pipingModels.Count, "AdvancedWti: Incorrect number of models for deterministic piping calculation"); stabilityInsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.AdvancedWti, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.StabilityInside); Assert.AreEqual(0, stabilityInsideModels.Count, "AdvancedWti: Incorrect number of models for deterministic stability inside calculation"); stabilityOutsideModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.AdvancedWti, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.StabilityOutside); Assert.AreEqual(0, stabilityOutsideModels.Count, "AdvancedWti: Incorrect number of models for deterministic stability outside calculation"); stabilityHorizontalBalanceModels = ConfigurationManager.Instance.GetAvailableMechanismModels(StabilityKernelType.AdvancedWti, DamProjectType.Design, ProbabilisticType.Probabilistic, FailureMechanismSystemType.HorizontalBalance); Assert.AreEqual(0, stabilityHorizontalBalanceModels.Count, "AdvancedWti: Incorrect number of models for deterministic horizontal balance calculation"); } } }