using System.Numerics; using AcDream.Core.World.Cells; using Xunit; namespace AcDream.Core.Tests.World.Cells; public class EnvCellTests { private static EnvCell Make(Vector3 min, Vector3 max, Matrix4x4? transform = null) { var t = transform ?? Matrix4x4.Identity; Matrix4x4.Invert(t, out var inv); return new EnvCell(0xA9B40174u, t, inv, min, max, System.Array.Empty(), System.Array.Empty(), seenOutside: false, containmentBsp: null); } [Fact] public void PointInCell_NullBsp_Aabb_InsideIsTrue() => Assert.True(Make(new Vector3(0,0,0), new Vector3(10,10,10)).PointInCell(new Vector3(5,5,5))); [Fact] public void PointInCell_NullBsp_Aabb_OutsideIsFalse() => Assert.False(Make(new Vector3(0,0,0), new Vector3(10,10,10)).PointInCell(new Vector3(20,5,5))); [Fact] public void PointInCell_TransformsWorldToLocalBeforeTesting() { var c = Make(new Vector3(0,0,0), new Vector3(10,10,10), Matrix4x4.CreateTranslation(100,0,0)); Assert.True(c.PointInCell(new Vector3(105,5,5))); Assert.False(c.PointInCell(new Vector3(5,5,5))); } }