// 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.Geometry;
using Ringtoets.MacroStabilityInwards.Data.SoilProfile;
using Ringtoets.MacroStabilityInwards.Data.TestUtil.SoilProfile;
namespace Ringtoets.MacroStabilityInwards.Data.TestUtil
{
///
/// Factory which creates valid which
/// can be used for testing purposes.
///
public static class MacroStabilityInwardsStochasticSoilModelTestFactory
{
///
/// Creates an instance of .
///
/// A valid instance of .
public static MacroStabilityInwardsStochasticSoilModel CreateValidStochasticSoilModel()
{
return CreateValidStochasticSoilModel(string.Empty);
}
///
/// Creates an instance of with
/// a specified name.
///
/// The name of the soil model.
/// A valid configured with the
/// specified .
/// Thrown when
/// is null.
public static MacroStabilityInwardsStochasticSoilModel CreateValidStochasticSoilModel(string soilModelName)
{
return CreateValidStochasticSoilModel(soilModelName, new[]
{
new Point2D(1, 1),
new Point2D(2, 2)
});
}
///
/// Creates an instance of
/// with a specified name and geometry.
///
/// The name of the soil model.
/// The geometry of the soil model.
/// A valid configured with the
/// specified .
/// Thrown when or
/// is null.
/// Thrown when is
/// empty.
public static MacroStabilityInwardsStochasticSoilModel CreateValidStochasticSoilModel(string soilModelName,
IEnumerable geometry)
{
var model = new MacroStabilityInwardsStochasticSoilModel(soilModelName, geometry);
MacroStabilityInwardsSoilProfile1D soilProfileA =
MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D("A");
MacroStabilityInwardsSoilProfile1D soilProfileB =
MacroStabilityInwardsSoilProfile1DTestFactory.CreateMacroStabilityInwardsSoilProfile1D("B");
model.StochasticSoilProfiles.AddRange(new[]
{
new MacroStabilityInwardsStochasticSoilProfile(0.5, soilProfileA),
new MacroStabilityInwardsStochasticSoilProfile(0.5, soilProfileB)
});
return model;
}
///
/// Creates an instance of
/// with a specified name and stochastic soil profiles.
///
/// The name of the soil model.
/// The geometry of the soil model.
/// A valid configured with the
/// specified .
/// Thrown when or
/// is null.
/// Thrown when is
/// empty.
public static MacroStabilityInwardsStochasticSoilModel CreateValidStochasticSoilModel(string soilModelName,
IEnumerable stochasticSoilProfiles)
{
var model = new MacroStabilityInwardsStochasticSoilModel(soilModelName,
new[]
{
new Point2D(1, 1),
new Point2D(2, 2)
});
model.StochasticSoilProfiles.AddRange(stochasticSoilProfiles);
return model;
}
}
}