// Copyright (C) Stichting Deltares 2017. All rights reserved. // // This file is part of Ringtoets. // // Ringtoets 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.Generic; using Core.Common.Base.Data; using Core.Common.Base.Geometry; using Core.Common.TestUtil; using NUnit.Framework; namespace Ringtoets.HeightStructures.Data.TestUtil { public static class HeightStructurePermutationHelper { public static IEnumerable DifferentHeightStructureWithSameId { get { const string defaultId = "id"; var testCaseData = new List { new TestCaseData(new TestHeightStructure(defaultId, "Different Name")) .SetName("Different Name"), new TestCaseData(new TestHeightStructure(new Point2D(1, 1), defaultId)) .SetName("Different Location") }; testCaseData.AddRange(DifferentHeightStructureWithSameIdLocationAndName); return testCaseData; } } public static IEnumerable DifferentHeightStructureWithSameIdLocationAndName { get { var random = new Random(532); const string defaultId = "id"; const string defaultName = "name"; var defaultLocation = new Point2D(0, 0); yield return new TestCaseData(new TestHeightStructure { AllowedLevelIncreaseStorage = { Mean = (RoundedDouble) random.Next(), Shift = random.NextRoundedDouble(), StandardDeviation = random.NextRoundedDouble() } }).SetName("Different AllowedLevelIncreaseStorage"); yield return new TestCaseData(new TestHeightStructure { CriticalOvertoppingDischarge = { Mean = (RoundedDouble) random.Next(), CoefficientOfVariation = random.NextRoundedDouble() } }).SetName("Different CriticalOvertoppingDischarge"); yield return new TestCaseData(new TestHeightStructure { FlowWidthAtBottomProtection = { Mean = (RoundedDouble) random.Next(), Shift = random.NextRoundedDouble(), StandardDeviation = random.NextRoundedDouble() } }).SetName("Different FlowWidthAtBottomProtection"); yield return new TestCaseData(new TestHeightStructure { LevelCrestStructure = { Mean = (RoundedDouble) random.Next(), StandardDeviation = random.NextRoundedDouble() } }).SetName("Different LevelCrestStructure"); yield return new TestCaseData(new TestHeightStructure { StorageStructureArea = { Mean = (RoundedDouble) random.Next(), CoefficientOfVariation = random.NextRoundedDouble() } }).SetName("Different StorageStructureArea"); yield return new TestCaseData(new TestHeightStructure { WidthFlowApertures = { Mean = (RoundedDouble) random.Next(), StandardDeviation = random.NextRoundedDouble() } }).SetName("Different WidthFlowApertures"); yield return new TestCaseData(new HeightStructure(new HeightStructure.ConstructionProperties { Name = defaultName, Id = defaultId, Location = defaultLocation, FailureProbabilityStructureWithErosion = random.NextDouble() })).SetName("Different FailureProbabilityStructureWithErosion"); yield return new TestCaseData(new HeightStructure(new HeightStructure.ConstructionProperties { Name = defaultName, Id = defaultId, Location = defaultLocation, StructureNormalOrientation = random.NextRoundedDouble() })).SetName("Different StructureNormalOrientation"); } } } }