46 lines
1.4 KiB
C#
46 lines
1.4 KiB
C#
// tests/AcDream.Core.Tests/World/WorldViewTests.cs
|
|
using AcDream.Core.World;
|
|
|
|
namespace AcDream.Core.Tests.World;
|
|
|
|
public class WorldViewTests
|
|
{
|
|
[Fact]
|
|
public void NeighborIds_Center_Returns9Ids()
|
|
{
|
|
var ids = WorldView.NeighborLandblockIds(0xA9B4FFFFu).ToList();
|
|
|
|
Assert.Equal(9, ids.Count);
|
|
Assert.Contains(0xA9B4FFFFu, ids); // center
|
|
Assert.Contains(0xA8B3FFFFu, ids); // NW
|
|
Assert.Contains(0xAAB5FFFFu, ids); // SE
|
|
}
|
|
|
|
[Fact]
|
|
public void NeighborIds_LowerEdge_ClampsUnderflow()
|
|
{
|
|
// Landblock 0x0000FFFF — no west or south neighbors.
|
|
var ids = WorldView.NeighborLandblockIds(0x0000FFFFu).ToList();
|
|
|
|
// 4 neighbors should exist: center + E + N + NE
|
|
Assert.Equal(4, ids.Count);
|
|
Assert.Contains(0x0000FFFFu, ids);
|
|
Assert.Contains(0x0100FFFFu, ids);
|
|
Assert.Contains(0x0001FFFFu, ids);
|
|
Assert.Contains(0x0101FFFFu, ids);
|
|
}
|
|
|
|
[Fact]
|
|
public void NeighborIds_UpperEdge_ClampsOverflow()
|
|
{
|
|
// Landblock 0xFFFFFFFF — no east or north neighbors.
|
|
var ids = WorldView.NeighborLandblockIds(0xFFFFFFFFu).ToList();
|
|
|
|
// 4 neighbors: center + W + S + SW
|
|
Assert.Equal(4, ids.Count);
|
|
Assert.Contains(0xFFFFFFFFu, ids);
|
|
Assert.Contains(0xFEFFFFFFu, ids);
|
|
Assert.Contains(0xFFFEFFFFu, ids);
|
|
Assert.Contains(0xFEFEFFFFu, ids);
|
|
}
|
|
}
|