using Microsoft.Xna.Framework; using MonoGame.Extended.Tilemaps; namespace MonoGame.Extended.Tests; public sealed class TilemapEllipseObjectTests { [Fact] public void Constructor_SetsProperties() { var obj = new TilemapEllipseObject(1, new Vector2(10, 20), new Vector2(50, 30)); // Assert Assert.Equal(1, obj.Id); Assert.Equal(new Vector2(10, 20), obj.Position); Assert.Equal(new Vector2(50, 30), obj.Size); } [Fact] public void Bounds_ReturnsCorrectRectangle() { var obj = new TilemapEllipseObject(1, new Vector2(10, 20), new Vector2(50, 30)); var bounds = obj.Bounds; // Assert Assert.Equal(10, bounds.X); Assert.Equal(20, bounds.Y); Assert.Equal(50, bounds.Width); Assert.Equal(30, bounds.Height); } [Fact] public void Center_ReturnsCorrectPosition() { var obj = new TilemapEllipseObject(1, new Vector2(10, 20), new Vector2(50, 30)); // (10 + 50/2, 20 + 30/2) = (35,35) Assert.Equal(new Vector2(35, 35), obj.Center); } [Fact] public void RadiusX_ReturnsHalfWidth() { var obj = new TilemapEllipseObject(1, new Vector2(10, 20), new Vector2(50, 30)); // 50 / 2 = 25 Assert.Equal(25, obj.RadiusX); } [Fact] public void RadiusY_ReturnsHalfHeight() { var obj = new TilemapEllipseObject(1, new Vector2(10, 20), new Vector2(50, 30)); // 30 / 2 = 15 Assert.Equal(15, obj.RadiusY); } [Fact] public void CircleEllipse_RadiiAreEqual() { var obj = new TilemapEllipseObject(1, new Vector2(0, 0), new Vector2(40, 40)); Assert.Equal(20, obj.RadiusX); Assert.Equal(20, obj.RadiusY); } }