| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- using System;
- using System.Linq;
- using Microsoft.Xna.Framework;
- using MonoGame.Extended.Tilemaps;
- namespace MonoGame.Extended.Tests;
- public sealed class TilemapPolygonObjectTests
- {
- [Fact]
- public void Constructor_SetsProperties()
- {
- var points = new Vector2[]
- {
- new(0, 0),
- new(10, 0),
- new(10, 10),
- new(0, 10)
- };
- var obj = new TilemapPolygonObject(1, new Vector2(5, 5), points);
- Assert.Equal(1, obj.Id);
- Assert.Equal(new Vector2(5, 5), obj.Position);
- Assert.Equal(points, obj.Points);
- }
- [Fact]
- public void WorldPoints_TransformsPointsToWorldCoordinates()
- {
- var points = new Vector2[]
- {
- new(0, 0),
- new(10, 0),
- new(10, 10)
- };
- var obj = new TilemapPolygonObject(1, new Vector2(5, 5), points);
- var worldPoints = obj.WorldPoints.ToList();
- Assert.Equal(3, worldPoints.Count);
- Assert.Equal(new Vector2(5, 5), worldPoints[0]);
- Assert.Equal(new Vector2(15, 5), worldPoints[1]);
- Assert.Equal(new Vector2(15, 15), worldPoints[2]);
- }
- [Fact]
- public void Bounds_CalculatesMinimumEnclosingRectangle()
- {
- var points = new Vector2[]
- {
- new(0, 0),
- new(20, 0),
- new(10, 15)
- };
- var obj = new TilemapPolygonObject(1, new Vector2(10, 10), points);
- var bounds = obj.Bounds;
- // World points: (10,10), (30,10), (20,25)
- // Min: (10,10), Max: (30,25)
- Assert.Equal(10, bounds.X);
- Assert.Equal(10, bounds.Y);
- Assert.Equal(20, bounds.Width);
- Assert.Equal(15, bounds.Height);
- }
- [Fact]
- public void Bounds_WithEmptyPoints_ReturnsZeroSizeAtPosition()
- {
- var obj = new TilemapPolygonObject(1, new Vector2(10, 20), Array.Empty<Vector2>());
- var bounds = obj.Bounds;
- Assert.Equal(10, bounds.X);
- Assert.Equal(20, bounds.Y);
- Assert.Equal(0, bounds.Width);
- Assert.Equal(0, bounds.Height);
- }
- [Fact]
- public void Points_CanBeModified()
- {
- var obj = new TilemapPolygonObject(1, new Vector2(0, 0), new Vector2[] { new(0, 0) });
- var newPoints = new Vector2[] { new(5, 5), new(10, 10) };
- obj.Points = newPoints;
- Assert.Equal(newPoints, obj.Points);
- // Act
- }
- }
|