mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-09-04 11:07:12 +02:00
Robust.UnitTesting was both ALL tests for RT, and also API surface for content tests. Tests are now split into separate projects as appropriate, and the API side has also been split off.
75 lines
2.0 KiB
C#
75 lines
2.0 KiB
C#
using NUnit.Framework;
|
|
using Robust.Shared.Map;
|
|
using Robust.Shared.Maths;
|
|
|
|
namespace Robust.UnitTesting.Shared.Map
|
|
{
|
|
[TestFixture, Parallelizable, TestOf(typeof(GridChunkPartition))]
|
|
internal sealed class GridChunkPartition_Tests : OurRobustUnitTest
|
|
{
|
|
// origin is top left
|
|
private static readonly int[] _testMiscTiles = {
|
|
1, 1, 0, 0,
|
|
0, 1, 1, 0,
|
|
0, 1, 1, 1,
|
|
1, 1, 0, 0,
|
|
};
|
|
|
|
[Test]
|
|
public void PartitionChunk_MiscTiles()
|
|
{
|
|
// Arrange
|
|
var chunk = ChunkFactory(4, _testMiscTiles);
|
|
|
|
// Act
|
|
GridChunkPartition.PartitionChunk(chunk, out var bounds, out _);
|
|
|
|
// box origin is top left
|
|
// algorithm goes down columns of array, starting on left side, then moves right, expanding rectangles to the right
|
|
/*
|
|
0 2 . .
|
|
. 2 3 .
|
|
. 2 3 4
|
|
1 2 . .
|
|
*/
|
|
|
|
Assert.That(bounds, Is.EqualTo(new Box2i(0,0,4,4)));
|
|
}
|
|
|
|
// origin is top left
|
|
private static readonly int[] _testJoinTiles = {
|
|
0, 1, 1, 0,
|
|
0, 1, 1, 0,
|
|
0, 1, 1, 0,
|
|
0, 0, 0, 0,
|
|
};
|
|
|
|
[Test]
|
|
public void PartitionChunk_JoinTiles()
|
|
{
|
|
// Arrange
|
|
var chunk = ChunkFactory(4, _testJoinTiles);
|
|
|
|
// Act
|
|
GridChunkPartition.PartitionChunk(chunk, out var bounds, out _);
|
|
|
|
Assert.That(bounds, Is.EqualTo(new Box2i(1, 0, 3, 3)));
|
|
}
|
|
|
|
private static MapChunk ChunkFactory(ushort size, int[] tiles)
|
|
{
|
|
var chunk = new MapChunk(0, 0, size);
|
|
|
|
for (var i = 0; i < tiles.Length; i++)
|
|
{
|
|
var x = i % size;
|
|
var y = i / size;
|
|
|
|
chunk.TrySetTile((ushort)x, (ushort)y, new Tile((ushort)tiles[i]), out _, out _);
|
|
}
|
|
|
|
return chunk;
|
|
}
|
|
}
|
|
}
|