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