diff --git a/CubicNoise/Builders/NoiseBuilder.cs b/CubicNoise/Builders/NoiseBuilder.cs deleted file mode 100644 index 62ff9b4..0000000 --- a/CubicNoise/Builders/NoiseBuilder.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using CubicNoise.Contracts; - -namespace CubicNoise.Builders -{ - public sealed class NoiseBuilder - { - public NoiseTypes NoiseType { get; set; } = NoiseTypes.UNKNOWN; - - public int NoiseSeed { get; set; } = new Random().Next(); - - public Dictionary NoiseIntParameters = new Dictionary(); - - private NoiseBuilder() - { - } - - public static NoiseBuilder New() - { - return new NoiseBuilder(); - } - - public NoiseBuilder Type(NoiseTypes type) - { - this.NoiseType = type; - return this; - } - - public NoiseBuilder Seed(int seed) - { - this.NoiseSeed = seed; - return this; - } - - public NoiseBuilder Seed(string seed) - { - this.NoiseSeed = seed.GetHashCode(); - return this; - } - - public NoiseBuilder SetParam(IParameterName param, int value) - { - this.NoiseIntParameters[param] = value; - return this; - } - } -} diff --git a/CubicNoise/Builders/Parameters.cs b/CubicNoise/Builders/Parameters.cs deleted file mode 100644 index 593a55c..0000000 --- a/CubicNoise/Builders/Parameters.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using CubicNoise.Noisers; - -namespace CubicNoise.Builders -{ - public sealed class Parameters - { - private Parameters() - { - } - - public static CubicNoiseParameterKinds Cubic(CubicNoiseParameterKinds kind) - { - return kind; - } - } -} diff --git a/CubicNoise/CubicNoise.csproj b/CubicNoise/CubicNoise.csproj index 34a562b..e6c458a 100644 --- a/CubicNoise/CubicNoise.csproj +++ b/CubicNoise/CubicNoise.csproj @@ -12,6 +12,10 @@ LICENSE + + C:\Users\Thorsten\Downloads\repos\CubicNoise\CubicNoise\CubicNoise.xml + + True diff --git a/CubicNoise/CubicNoise.xml b/CubicNoise/CubicNoise.xml new file mode 100644 index 0000000..a5432eb --- /dev/null +++ b/CubicNoise/CubicNoise.xml @@ -0,0 +1,8 @@ + + + + CubicNoise + + + + diff --git a/CubicNoise/EngineParameters.cs b/CubicNoise/EngineParameters.cs new file mode 100644 index 0000000..135be2e --- /dev/null +++ b/CubicNoise/EngineParameters.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Text; +using CubicNoise.Contracts; + +namespace CubicNoise +{ + public sealed class EngineParameters + { + public int Seed { get; set; } = new Random().Next(); + + public NoiseTypes Type { get; set; } = NoiseTypes.UNKNOWN; + + public Dictionary IntParameters { get; set; } + } +} diff --git a/CubicNoise/NoiseEngine.cs b/CubicNoise/NoiseEngine.cs index add8248..1688915 100644 --- a/CubicNoise/NoiseEngine.cs +++ b/CubicNoise/NoiseEngine.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Text; -using CubicNoise.Builders; using CubicNoise.Contracts; using CubicNoise.Noisers; @@ -23,7 +22,7 @@ namespace CubicNoise }; } - public static NoiseEngine CreateEngine(NoiseBuilder builder) => new NoiseEngine(builder.NoiseType, builder.NoiseSeed, builder.NoiseIntParameters); + public static NoiseEngine Create(EngineParameters parameters) => new NoiseEngine(parameters.Type, parameters.Seed, parameters?.IntParameters); public float Get(float x) => this.engine.Get(x); diff --git a/CubicNoise/Noisers/CubicNoiseIntParameters.cs b/CubicNoise/Noisers/CubicNoiseIntParameters.cs index 73f8de9..c9f0741 100644 --- a/CubicNoise/Noisers/CubicNoiseIntParameters.cs +++ b/CubicNoise/Noisers/CubicNoiseIntParameters.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Text; -using CubicNoise.Builders; using CubicNoise.Contracts; namespace CubicNoise.Noisers diff --git a/CubicNoise/Noisers/CubicNoiseParameterKinds.cs b/CubicNoise/Noisers/CubicNoiseParameterKinds.cs deleted file mode 100644 index deeedb1..0000000 --- a/CubicNoise/Noisers/CubicNoiseParameterKinds.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Dynamic; -using System.Text; -using CubicNoise.Builders; -using CubicNoise.Contracts; - -namespace CubicNoise.Noisers -{ - public sealed class CubicNoiseParameterKinds - { - private CubicNoiseParameterKinds() - { - } - - public static CubicNoiseParameterKinds Int { get; } = new CubicNoiseParameterKinds(); - - public IParameterName Use(CubicNoiseIntParameters name) => name; - } -} diff --git a/CubicNoiseTests/NoiseBuilderTests.cs b/CubicNoiseTests/NoiseBuilderTests.cs index 075f7de..4a17797 100644 --- a/CubicNoiseTests/NoiseBuilderTests.cs +++ b/CubicNoiseTests/NoiseBuilderTests.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Text; using CubicNoise; -using CubicNoise.Builders; +using CubicNoise.Contracts; using CubicNoise.Noisers; using NUnit.Framework; @@ -11,9 +11,92 @@ namespace CubicNoiseTests public class NoiseBuilderTests { [Test] - public void SimpleBuild() + public void StraightCreation() { - var engine = NoiseEngine.CreateEngine(NoiseBuilder.New().Type(NoiseTypes.CUBIC_NOISE).Seed("test seed").SetParam(Parameters.Cubic(CubicNoiseParameterKinds.Int.Use(CubicNoiseIntParameters.OCTAVE)))) + var engine = NoiseEngine.Create(new EngineParameters + { + Seed = "test seed".GetHashCode(), + Type = NoiseTypes.CUBIC_NOISE, + IntParameters = new Dictionary + { + { CubicNoiseIntParameters.OCTAVE, 57 }, + { CubicNoiseIntParameters.PERIOD_X, 12 }, + { CubicNoiseIntParameters.PERIOD_Y, 16 }, + }, + }); + + Assert.That(engine, Is.Not.Null); + + try + { + engine.Get(16f); + engine.Get(16f, 18f); + } + catch + { + Assert.Fail("Noise engine seems not to be implemented."); + } + } + + [Test] + public void NoParameters() + { + var engine = NoiseEngine.Create(new EngineParameters()); + + Assert.That(engine, Is.Not.Null); + + try + { + engine.Get(16f); + engine.Get(16f, 18f); + Assert.That(true); + } + catch + { + Assert.Fail("Noise engine seems not to be implemented."); + } + } + + [Test] + public void NullCheck() + { + try + { + var engine = NoiseEngine.Create(null); + Assert.Fail("Null instead of parameters should not work."); + } + catch + { + Assert.That(true); + } + } + + [Test] + public void PartialParameters() + { + var engine = NoiseEngine.Create(new EngineParameters + { + Seed = "test seed".GetHashCode(), + Type = NoiseTypes.CUBIC_NOISE, + IntParameters = new Dictionary + { + { CubicNoiseIntParameters.OCTAVE, 57 }, + { CubicNoiseIntParameters.PERIOD_X, 12 }, + //{ CubicNoiseIntParameters.PERIOD_Y, 16 }, // is missing! + }, + }); + + Assert.That(engine, Is.Not.Null); + + try + { + engine.Get(16f); + engine.Get(16f, 18f); + } + catch + { + Assert.Fail("Noise engine seems not to be implemented."); + } } } }