// 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.Piping.Data.SoilProfile;
using Ringtoets.Piping.Primitives.TestUtil;
namespace Ringtoets.Piping.Data.TestUtil
{
///
/// Factory to create simple instances that can be used for testing.
///
public static class PipingStochasticSoilModelTestFactory
{
///
/// Creates a new instance of .
///
/// The name of the stochastic soil model.
/// A valid instance of with
/// the specified .
/// Thrown when
/// is null.
public static PipingStochasticSoilModel CreatePipingStochasticSoilModel(string name)
{
return CreatePipingStochasticSoilModel(name, new[]
{
new Point2D(1, 1),
new Point2D(2, 2)
});
}
///
/// Creates a new instance of .
///
/// A valid instance of .
public static PipingStochasticSoilModel CreatePipingStochasticSoilModel()
{
return CreatePipingStochasticSoilModel(string.Empty);
}
///
/// Creates a new instance of .
///
/// The name of the stochastic soil model.
/// The geometry of the stochastic soil model.
/// A valid instance of
/// with the specified and .
/// Thrown when any parameter is null.
/// Thrown when is empty.
public static PipingStochasticSoilModel CreatePipingStochasticSoilModel(string name, IEnumerable geometry)
{
return new PipingStochasticSoilModel(name, geometry, new[]
{
new PipingStochasticSoilProfile(0.5, PipingSoilProfileTestFactory.CreatePipingSoilProfile("A")),
new PipingStochasticSoilProfile(0.5, PipingSoilProfileTestFactory.CreatePipingSoilProfile("B"))
});
}
///
/// Creates a new instance of .
///
/// The name of the stochastic soil model.
/// The stochastic soil profiles of the soil model.
/// A valid instance of
/// with the specified and .
/// Thrown when any parameter is null.
/// Thrown when is empty.
public static PipingStochasticSoilModel CreatePipingStochasticSoilModel(string name, IEnumerable pipingStochasticSoilProfiles)
{
return new PipingStochasticSoilModel(name, new[]
{
new Point2D(1, 1),
new Point2D(2, 2)
}, pipingStochasticSoilProfiles);
}
///
/// Creates an instance of
/// with specified stochastic soil profiles and an empty name.
///
/// The geometry of the soil model.
/// A valid configured with the
/// specified .
/// Thrown when is null.
/// Thrown when is
/// empty.
public static PipingStochasticSoilModel CreatePipingStochasticSoilModel(IEnumerable stochasticSoilProfiles)
{
return CreatePipingStochasticSoilModel(string.Empty, stochasticSoilProfiles);
}
}
}