// 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.Linq; using Core.Common.Base.Data; namespace Ringtoets.MacroStabilityInwards.Data.TestUtil { /// /// Factory that creates instances of /// that can be used for testing. /// public static class MacroStabilityInwardsOutputTestFactory { /// /// Creates an instance of with default values. /// /// A . public static MacroStabilityInwardsOutput CreateOutput() { return CreateOutput(new MacroStabilityInwardsOutput.ConstructionProperties()); } /// /// Creates an instance of without slices. /// /// A . public static MacroStabilityInwardsOutput CreateOutputWithoutSlices() { return new MacroStabilityInwardsOutput( new MacroStabilityInwardsSlidingCurve(MacroStabilityInwardsSlidingCircleTestFactory.Create(), MacroStabilityInwardsSlidingCircleTestFactory.Create(), Enumerable.Empty(), 0, 0), new MacroStabilityInwardsSlipPlaneUpliftVan(MacroStabilityInwardsGridTestFactory.Create(), MacroStabilityInwardsGridTestFactory.Create(), new RoundedDouble[0]), new MacroStabilityInwardsOutput.ConstructionProperties()); } /// /// Creates an instance of . /// /// The container of the properties for the . /// A . /// Thrown when /// is null. public static MacroStabilityInwardsOutput CreateOutput(MacroStabilityInwardsOutput.ConstructionProperties properties) { return new MacroStabilityInwardsOutput(new MacroStabilityInwardsSlidingCurve(MacroStabilityInwardsSlidingCircleTestFactory.Create(), MacroStabilityInwardsSlidingCircleTestFactory.Create(), new[] { MacroStabilityInwardsSliceTestFactory.CreateSlice(), MacroStabilityInwardsSliceTestFactory.CreateSlice(), MacroStabilityInwardsSliceTestFactory.CreateSlice() }, 0, 0), new MacroStabilityInwardsSlipPlaneUpliftVan(MacroStabilityInwardsGridTestFactory.Create(), MacroStabilityInwardsGridTestFactory.Create(), new[] { (RoundedDouble) (-3.5), (RoundedDouble) 0.0, (RoundedDouble) 2.0 }), properties); } /// /// Creates an instance of with initialized values /// for all properties. /// /// A . public static MacroStabilityInwardsOutput CreateRandomOutput() { var random = new Random(21); var properties = new MacroStabilityInwardsOutput.ConstructionProperties { FactorOfStability = random.NextDouble(), ForbiddenZonesXEntryMax = random.NextDouble(), ForbiddenZonesXEntryMin = random.NextDouble(), ZValue = random.NextDouble() }; return CreateOutput(properties); } } }