using System; using System.Numerics; using AcDream.Core.Physics; using Xunit; namespace AcDream.Core.Tests.Physics; public class PhysicsEngineResidencyTests { [Fact] public void IsLandblockTerrainResident_trueOnlyAfterAddLandblock() { var eng = new PhysicsEngine(); uint canonical = 0xA9B4FFFFu; // canonical (streaming) form uint lbId = canonical & 0xFFFF0000u; // AddLandblock id Assert.False(eng.IsLandblockTerrainResident(canonical)); eng.AddLandblock(lbId, terrain: null!, cells: Array.Empty(), portals: Array.Empty(), worldOffsetX: 0f, worldOffsetY: 0f); Assert.True(eng.IsLandblockTerrainResident(canonical)); } [Fact] public void IsLandblockTerrainResident_matchesOnHigh16_acceptsCellResolvedId() { var eng = new PhysicsEngine(); eng.AddLandblock(0xA9B40000u, null!, Array.Empty(), Array.Empty(), 0f, 0f); Assert.True(eng.IsLandblockTerrainResident(0xA9B40019u)); // cell-resolved id, same LB Assert.False(eng.IsLandblockTerrainResident(0xC6A90019u)); // different LB } }