From 4ef6f53a11b8a8af6bac045abe7dedaaae236819 Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Thu, 1 May 2008 13:59:58 +0000 Subject: * Adding unit test support to Environment for modules. * Written some unit tests for Terrain Module as an example. --- .../Modules/World/Terrain/Tests/TerrainTest.cs | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 OpenSim/Region/Environment/Modules/World/Terrain/Tests/TerrainTest.cs (limited to 'OpenSim/Region/Environment/Modules/World/Terrain') 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 0000000..ccb0561 --- /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 -- cgit v1.1