| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- using System;
- using System.Linq;
- using Microsoft.Xna.Framework;
- using MonoGame.Extended.Tilemaps;
- namespace MonoGame.Extended.Tests;
- public sealed class TilemapPolylineObjectTests
- {
- [Fact]
- public void Constructor_SetsProperties()
- {
- var points = new Vector2[]
- {
- new(0, 0),
- new(10, 0),
- new(10, 10)
- };
- var obj = new TilemapPolylineObject(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 TilemapPolylineObject(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, 5),
- new(10, 15)
- };
- var obj = new TilemapPolylineObject(1, new Vector2(10, 10), points);
- var bounds = obj.Bounds;
- // World points: (10,10), (30,15), (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 TilemapPolylineObject(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);
- }
- }
|