57 lines
1.7 KiB
C#
57 lines
1.7 KiB
C#
using AcDream.Core.Physics;
|
|
using Xunit;
|
|
|
|
namespace AcDream.Core.Tests.Physics;
|
|
|
|
public class PhysicsEngineIsLandblockLoadedTests
|
|
{
|
|
private static TerrainSurface MakeFlatTerrain()
|
|
{
|
|
var heights = new byte[81];
|
|
Array.Fill(heights, (byte)50);
|
|
var heightTable = new float[256];
|
|
for (int i = 0; i < 256; i++) heightTable[i] = i * 1f;
|
|
return new TerrainSurface(heights, heightTable);
|
|
}
|
|
|
|
[Fact]
|
|
public void IsLandblockLoaded_AbsentId_ReturnsFalse()
|
|
{
|
|
var engine = new PhysicsEngine();
|
|
Assert.False(engine.IsLandblockLoaded(0xA9B4FFFFu));
|
|
}
|
|
|
|
[Fact]
|
|
public void IsLandblockLoaded_AddedId_ReturnsTrue()
|
|
{
|
|
var engine = new PhysicsEngine();
|
|
engine.AddLandblock(0xA9B4FFFFu, MakeFlatTerrain(),
|
|
Array.Empty<CellSurface>(), Array.Empty<PortalPlane>(),
|
|
worldOffsetX: 0f, worldOffsetY: 0f);
|
|
|
|
Assert.True(engine.IsLandblockLoaded(0xA9B4FFFFu));
|
|
}
|
|
|
|
[Fact]
|
|
public void IsLandblockLoaded_AnotherIdAbsent_ReturnsFalse()
|
|
{
|
|
var engine = new PhysicsEngine();
|
|
engine.AddLandblock(0xA9B4FFFFu, MakeFlatTerrain(),
|
|
Array.Empty<CellSurface>(), Array.Empty<PortalPlane>(),
|
|
worldOffsetX: 0f, worldOffsetY: 0f);
|
|
|
|
Assert.False(engine.IsLandblockLoaded(0xDEADBEEFu));
|
|
}
|
|
|
|
[Fact]
|
|
public void IsLandblockLoaded_AfterRemove_ReturnsFalse()
|
|
{
|
|
var engine = new PhysicsEngine();
|
|
engine.AddLandblock(0xA9B4FFFFu, MakeFlatTerrain(),
|
|
Array.Empty<CellSurface>(), Array.Empty<PortalPlane>(),
|
|
worldOffsetX: 0f, worldOffsetY: 0f);
|
|
engine.RemoveLandblock(0xA9B4FFFFu);
|
|
|
|
Assert.False(engine.IsLandblockLoaded(0xA9B4FFFFu));
|
|
}
|
|
}
|