feat: add Chunk as a dense 16-cubed id array

This commit is contained in:
2026-05-28 11:56:49 +02:00
parent f4d3f9aab4
commit 90be1035d4
2 changed files with 59 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
using VoxelEngine.World;
using Xunit;
namespace VoxelEngine.Tests;
public class ChunkTests
{
[Fact]
public void Size_Is16()
{
Assert.Equal(16, Chunk.Size);
}
[Fact]
public void NewChunk_IsAllAir()
{
var chunk = new Chunk();
Assert.Equal((ushort)0, chunk[0, 0, 0]);
Assert.Equal((ushort)0, chunk[15, 15, 15]);
}
[Fact]
public void Indexer_StoresAndReturnsId()
{
var chunk = new Chunk();
chunk[1, 2, 3] = 7;
Assert.Equal((ushort)7, chunk[1, 2, 3]);
Assert.Equal((ushort)0, chunk[3, 2, 1]);
}
[Theory]
[InlineData(0, 0, 0, true)]
[InlineData(15, 15, 15, true)]
[InlineData(-1, 0, 0, false)]
[InlineData(0, 16, 0, false)]
public void InBounds_ChecksCoordinates(int x, int y, int z, bool expected)
{
Assert.Equal(expected, Chunk.InBounds(x, y, z));
}
}