diff options
Diffstat (limited to 'Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tests/Shapes/PolygonFTests.cs')
-rw-r--r-- | Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tests/Shapes/PolygonFTests.cs | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tests/Shapes/PolygonFTests.cs b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tests/Shapes/PolygonFTests.cs new file mode 100644 index 0000000..d052908 --- /dev/null +++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tests/Shapes/PolygonFTests.cs @@ -0,0 +1,87 @@ +using Microsoft.Xna.Framework; +using MonoGame.Extended.Shapes; +using Xunit; + +namespace MonoGame.Extended.Tests.Shapes +{ + public class PolygonFTests + { + [Fact] + public void Polygon_Contains_Point_Test() + { + var vertices = new[] + { + new Vector2(0, 0), + new Vector2(10, 0), + new Vector2(10, 10), + new Vector2(0, 10) + }; + + var polygon = new Polygon(vertices); + + Assert.True(polygon.Contains(new Vector2(5, 5))); + Assert.True(polygon.Contains(new Vector2(0.01f, 0.01f))); + Assert.True(polygon.Contains(new Vector2(9.99f, 9.99f))); + Assert.False(polygon.Contains(new Vector2(-1f, -1f))); + Assert.False(polygon.Contains(new Vector2(-11f, -11f))); + } + + [Fact] + public void Polygon_Transform_Translation_Test() + { + var vertices = new[] + { + new Vector2(0, 0), + new Vector2(10, 0), + new Vector2(10, 10), + new Vector2(0, 10) + }; + + var polygon = new Polygon(vertices); + polygon.Offset(new Vector2(2, 3)); + + Assert.Equal(new Vector2(2, 3), polygon.Vertices[0]); + Assert.Equal(new Vector2(12, 3), polygon.Vertices[1]); + Assert.Equal(new Vector2(12, 13), polygon.Vertices[2]); + Assert.Equal(new Vector2(2, 13), polygon.Vertices[3]); + } + + [Fact] + public void Polygon_Transform_Rotation_Test() + { + var vertices = new[] + { + new Vector2(-5, -5), + new Vector2(5, 10), + new Vector2(-5, 10) + }; + + var polygon = new Polygon(vertices); + polygon.Rotate(MathHelper.ToRadians(90)); + + const float tolerance = 0.01f; + Assert.True(new Vector2(5, -5).EqualsWithTolerence(polygon.Vertices[0], tolerance)); + Assert.True(new Vector2(-10, 5).EqualsWithTolerence(polygon.Vertices[1], tolerance)); + Assert.True(new Vector2(-10, -5).EqualsWithTolerence(polygon.Vertices[2], tolerance)); + } + + [Fact] + public void Polygon_Transform_Scale_Test() + { + var vertices = new[] + { + new Vector2(0, -1), + new Vector2(1, 1), + new Vector2(-1, 1) + }; + + var polygon = new Polygon(vertices); + polygon.Scale(new Vector2(1, -0.5f)); + + const float tolerance = 0.01f; + Assert.True(new Vector2(0, -0.5f).EqualsWithTolerence(polygon.Vertices[0], tolerance), "0"); + Assert.True(new Vector2(2f, 0.5f).EqualsWithTolerence(polygon.Vertices[1], tolerance), "1"); + Assert.True(new Vector2(-2f, 0.5f).EqualsWithTolerence(polygon.Vertices[2], tolerance), "2"); + } + } +} |