TilemapEllipseObjectTests.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using Microsoft.Xna.Framework;
  2. using MonoGame.Extended.Tilemaps;
  3. namespace MonoGame.Extended.Tests;
  4. public sealed class TilemapEllipseObjectTests
  5. {
  6. [Fact]
  7. public void Constructor_SetsProperties()
  8. {
  9. var obj = new TilemapEllipseObject(1, new Vector2(10, 20), new Vector2(50, 30));
  10. // Assert
  11. Assert.Equal(1, obj.Id);
  12. Assert.Equal(new Vector2(10, 20), obj.Position);
  13. Assert.Equal(new Vector2(50, 30), obj.Size);
  14. }
  15. [Fact]
  16. public void Bounds_ReturnsCorrectRectangle()
  17. {
  18. var obj = new TilemapEllipseObject(1, new Vector2(10, 20), new Vector2(50, 30));
  19. var bounds = obj.Bounds;
  20. // Assert
  21. Assert.Equal(10, bounds.X);
  22. Assert.Equal(20, bounds.Y);
  23. Assert.Equal(50, bounds.Width);
  24. Assert.Equal(30, bounds.Height);
  25. }
  26. [Fact]
  27. public void Center_ReturnsCorrectPosition()
  28. {
  29. var obj = new TilemapEllipseObject(1, new Vector2(10, 20), new Vector2(50, 30));
  30. // (10 + 50/2, 20 + 30/2) = (35,35)
  31. Assert.Equal(new Vector2(35, 35), obj.Center);
  32. }
  33. [Fact]
  34. public void RadiusX_ReturnsHalfWidth()
  35. {
  36. var obj = new TilemapEllipseObject(1, new Vector2(10, 20), new Vector2(50, 30));
  37. // 50 / 2 = 25
  38. Assert.Equal(25, obj.RadiusX);
  39. }
  40. [Fact]
  41. public void RadiusY_ReturnsHalfHeight()
  42. {
  43. var obj = new TilemapEllipseObject(1, new Vector2(10, 20), new Vector2(50, 30));
  44. // 30 / 2 = 15
  45. Assert.Equal(15, obj.RadiusY);
  46. }
  47. [Fact]
  48. public void CircleEllipse_RadiiAreEqual()
  49. {
  50. var obj = new TilemapEllipseObject(1, new Vector2(0, 0), new Vector2(40, 40));
  51. Assert.Equal(20, obj.RadiusX);
  52. Assert.Equal(20, obj.RadiusY);
  53. }
  54. }