diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/Tests/TerrainTest.cs b/OpenSim/Region/Environment/Modules/World/Terrain/Tests/TerrainTest.cs new file mode 100644 index 0000000000..ccb056183b --- /dev/null +++ b/OpenSim/Region/Environment/Modules/World/Terrain/Tests/TerrainTest.cs @@ -0,0 +1,59 @@ +using System; +using NUnit.Framework; +using OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes; + +namespace OpenSim.Region.Environment.Modules.World.Terrain.Tests +{ + [TestFixture] + public class TerrainTest + { + [Test] + public void BrushTest() + { + TerrainChannel x = new TerrainChannel(256, 256); + ITerrainPaintableEffect effect = new RaiseSphere(); + + effect.PaintEffect(x, 128.0, 128.0, 50, 0.1); + Assert.That(x[128, 128] > 0.0, "Raise brush not raising values."); + Assert.That(x[0, 128] > 0.0, "Raise brush lowering edge values."); + + x = new TerrainChannel(256, 256); + effect = new LowerSphere(); + + effect.PaintEffect(x, 128.0, 128.0, 50, 0.1); + Assert.That(x[128, 128] < 0.0, "Lower not lowering values."); + Assert.That(x[0, 128] < 0.0, "Lower brush affecting edge values."); + } + + [Test] + public void TerrainChannelTest() + { + TerrainChannel x = new TerrainChannel(256, 256); + Assert.That(x[0, 0] == 0.0, "Terrain not initialising correctly."); + + x[0, 0] = 1.0; + Assert.That(x[0, 0] == 1.0, "Terrain not setting values correctly."); + + x[0, 0] = 0; + x[0, 0] += 5.0; + x[0, 0] -= 1.0; + Assert.That(x[0, 0] == 4.0, "Terrain addition/subtraction error."); + + x[0, 0] = Math.PI; + double[,] doublesExport = x.GetDoubles(); + Assert.That(doublesExport[0, 0] == Math.PI, "Export to double[,] array not working correctly."); + + x[0, 0] = 1.0; + float[] floatsExport = x.GetFloatsSerialised(); + Assert.That(floatsExport[0] == 1.0f, "Export to float[] not working correctly."); + + x[0, 0] = 1.0; + Assert.That(x.Tainted(0, 0), "Terrain channel tainting not working correctly."); + Assert.That(!x.Tainted(0, 0), "Terrain channel tainting not working correctly."); + + TerrainChannel y = x.Copy(); + Assert.That(!ReferenceEquals(x, y), "Terrain copy not duplicating correctly."); + Assert.That(!ReferenceEquals(x.GetDoubles(), y.GetDoubles()), "Terrain array not duplicating correctly."); + } + } +} \ No newline at end of file diff --git a/prebuild.xml b/prebuild.xml index d0a6e2bbf2..485e70db4b 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -791,6 +791,9 @@ + + +