diff options
Diffstat (limited to 'Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tests/Primitives/BoundingRectangleTests.cs')
| -rw-r--r-- | Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tests/Primitives/BoundingRectangleTests.cs | 396 | 
1 files changed, 396 insertions, 0 deletions
| diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tests/Primitives/BoundingRectangleTests.cs b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tests/Primitives/BoundingRectangleTests.cs new file mode 100644 index 0000000..6f95cf5 --- /dev/null +++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tests/Primitives/BoundingRectangleTests.cs @@ -0,0 +1,396 @@ +//using System.Collections.Generic; +//using System.Globalization; +//using Microsoft.Xna.Framework; +//using Xunit; + +//namespace MonoGame.Extended.Tests.Primitives +//{ +//     +//    public class BoundingRectangleTests +//    { +//        public IEnumerable<TestCaseData> ConstructorTestCases +//        { +//            get +//            { +//                yield return +//                    new TestCaseData(new Point2(), new Vector2()).SetName( +//                        "The empty bounding rectangle has the expected position and radii."); +//                yield return +//                    new TestCaseData(new Point2(5, 5), new Vector2(15, 15)).SetName( +//                        "A non-empty bounding rectangle has the expected position and radii."); +//            } +//        } + +//        [Fact] +//        [TestCaseSource(nameof(ConstructorTestCases))] +//        public void Constructor(Point2 centre, Vector2 radii) +//        { +//            var boundingRectangle = new BoundingRectangle(centre, radii); +//            Assert.Equal(centre, boundingRectangle.Center); +//            Assert.Equal(radii, boundingRectangle.HalfExtents); +//        } + +//        public IEnumerable<TestCaseData> CreateFromMinimumMaximumTestCases +//        { +//            get +//            { +//                yield return +//                    new TestCaseData(new Point2(), new Point2(), new BoundingRectangle()).SetName( +//                        "The bounding rectangle created from the zero minimum point and zero maximum point is the empty bounding rectangle.") +//                    ; +//                yield return +//                    new TestCaseData(new Point2(5, 5), new Point2(15, 15), +//                        new BoundingRectangle(new Point2(10, 10), new Size2(5, 5))).SetName( +//                        "The bounding rectangle created from the non-zero minimum point and the non-zero maximum point is the expected bounding rectangle.") +//                    ; +//            } +//        } + +//        [Fact] +//        [TestCaseSource(nameof(CreateFromMinimumMaximumTestCases))] +//        public void CreateFromMinimumMaximum(Point2 minimum, Point2 maximum, BoundingRectangle expectedBoundingRectangle) +//        { +//            var actualBoundingRectangle = BoundingRectangle.CreateFrom(minimum, maximum); +//            Assert.Equal(expectedBoundingRectangle, actualBoundingRectangle); +//        } + +//        public IEnumerable<TestCaseData> CreateFromPointsTestCases +//        { +//            get +//            { +//                yield return +//                    new TestCaseData(null, new BoundingRectangle()).SetName( +//                        "The bounding rectangle created from null points is the empty bounding rectangle."); +//                yield return +//                    new TestCaseData(new Point2[0], new BoundingRectangle()).SetName( +//                        "The bounding rectangle created from the empty set of points is the empty bounding rectangle."); +//                yield return +//                    new TestCaseData( +//                        new[] +//                        { +//                            new Point2(5, 5), new Point2(10, 10), new Point2(15, 15), new Point2(-5, -5), +//                            new Point2(-15, -15) +//                        }, new BoundingRectangle(new Point2(0, 0), new Size2(15, 15))).SetName( +//                        "The bounding rectangle created from a non-empty set of points is the expected bounding rectangle."); +//            } +//        } + +//        [Fact] +//        [TestCaseSource(nameof(CreateFromPointsTestCases))] +//        public void CreateFromPoints(Point2[] points, BoundingRectangle expectedBoundingRectangle) +//        { +//            var actualBoundingRectangle = BoundingRectangle.CreateFrom(points); +//            Assert.Equal(expectedBoundingRectangle, actualBoundingRectangle); +//        } + +//        public IEnumerable<TestCaseData> CreateFromTransformedTestCases +//        { +//            get +//            { +//                yield return +//                    new TestCaseData(new BoundingRectangle(), Matrix2.Identity, new BoundingRectangle()).SetName( +//                        "The bounding rectangle created from the empty bounding rectangle transformed by the identity matrix is the empty bounding rectangle.") +//                    ; +//                yield return +//                    new TestCaseData(new BoundingRectangle(new Point2(0, 0), new Size2(20, 20)), Matrix2.CreateScale(2), new BoundingRectangle(new Point2(0, 0), new Size2(40, 40))).SetName( +//                        "The bounding rectangle created from a non-empty bounding rectangle transformed by a non-identity matrix is the expected bounding rectangle.") +//                    ; +//            } +//        } + +//        [Fact] +//        [TestCaseSource(nameof(CreateFromTransformedTestCases))] +//        public void CreateFromTransformed(BoundingRectangle boundingRectangle, Matrix2 transformMatrix, +//            BoundingRectangle expectedBoundingRectangle) +//        { +//            var actualBoundingRectangle = BoundingRectangle.Transform(boundingRectangle, ref transformMatrix); +//            Assert.Equal(expectedBoundingRectangle, actualBoundingRectangle); +//        } + +//        public IEnumerable<TestCaseData> UnionTestCases +//        { +//            get +//            { +//                yield return +//                    new TestCaseData(new BoundingRectangle(), new BoundingRectangle(), new BoundingRectangle()).SetName( +//                        "The union of two empty bounding rectangles is the empty bounding rectangle."); +//                yield return +//                    new TestCaseData(new BoundingRectangle(new Point2(0, 0), new Size2(15, 15)), +//                            new BoundingRectangle(new Point2(20, 20), new Size2(40, 40)), new BoundingRectangle(new Point2(20, 20), new Size2(40, 40))) +//                        .SetName( +//                            "The union of two non-empty bounding rectangles is the expected bounding rectangle."); +//            } +//        } + +//        [Fact] +//        [TestCaseSource(nameof(UnionTestCases))] +//        public void Union(BoundingRectangle boundingRectangle1, BoundingRectangle boundingRectangle2, BoundingRectangle expectedBoundingRectangle) +//        { +//            Assert.Equal(expectedBoundingRectangle, boundingRectangle1.Union(boundingRectangle2)); +//            Assert.Equal(expectedBoundingRectangle, BoundingRectangle.Union(boundingRectangle1, boundingRectangle2)); +//        } + +//        public IEnumerable<TestCaseData> IntersectionTestCases +//        { +//            get +//            { +//                yield return +//                    new TestCaseData(new BoundingRectangle(), new BoundingRectangle(), new BoundingRectangle()).SetName( +//                        "The intersection of two empty bounding rectangles is the empty bounding box."); +//                yield return +//                    new TestCaseData(new BoundingRectangle(new Point2(-10, -10), new Size2(15, 15)), +//                        new BoundingRectangle(new Point2(20, 20), new Size2(40, 40)), +//                        new BoundingRectangle(new Point2(-7.5f, -7.5f), new Size2(12.5f, 12.5f))).SetName( +//                        "The intersection of two overlapping non-empty bounding rectangles is the expected bounding rectangle."); +//                yield return +//                    new TestCaseData(new BoundingRectangle(new Point2(-30, -30), new Size2(15, 15)), +//                        new BoundingRectangle(new Point2(20, 20), new Size2(10, 10)), +//                        BoundingRectangle.Empty).SetName( +//                        "The intersection of two non-overlapping non-empty bounding rectangles is the empty bounding rectangle."); +//            } +//        } + +//        [Fact] +//        [TestCaseSource(nameof(IntersectionTestCases))] +//        public void Intersection(BoundingRectangle boundingRectangle1, BoundingRectangle boundingRectangle2, +//            BoundingRectangle? expectedBoundingRectangle) +//        { +//            Assert.Equal(expectedBoundingRectangle, boundingRectangle1.Intersection(boundingRectangle2)); +//            Assert.Equal(expectedBoundingRectangle, BoundingRectangle.Intersection(boundingRectangle1, boundingRectangle2)); +//        } + +//        public IEnumerable<TestCaseData> IntersectsTestCases +//        { +//            get +//            { +//                yield return +//                    new TestCaseData(new BoundingRectangle(), new BoundingRectangle(), true).SetName( +//                        "Two empty bounding rectangles intersect."); +//                yield return +//                    new TestCaseData(new BoundingRectangle(new Point2(-10, -10), new Size2(15, 15)), +//                        new BoundingRectangle(new Point2(20, 20), new Size2(40, 40)), true).SetName( +//                        "Two overlapping non-empty bounding rectangles intersect."); +//                yield return +//                    new TestCaseData(new BoundingRectangle(new Point2(-40, -50), new Size2(15, 15)), +//                        new BoundingRectangle(new Point2(20, 20), new Size2(15, 15)), false).SetName( +//                        "Two non-overlapping non-empty bounding rectangles do not intersect."); +//            } +//        } + +//        [Fact] +//        [TestCaseSource(nameof(IntersectsTestCases))] +//        public void Intersects(BoundingRectangle boundingRectangle1, BoundingRectangle boundingRectangle2, bool expectedToIntersect) +//        { +//            Assert.Equal(expectedToIntersect, boundingRectangle1.Intersects(boundingRectangle2)); +//            Assert.Equal(expectedToIntersect, BoundingRectangle.Intersects(boundingRectangle1, boundingRectangle2)); +//        } + +//        public IEnumerable<TestCaseData> ContainsPointTestCases +//        { +//            get +//            { +//                yield return +//                    new TestCaseData(new BoundingRectangle(), new Point2(), true).SetName( +//                        "The empty bounding rectangle contains the zero point."); +//                yield return +//                    new TestCaseData(new BoundingRectangle(new Point2(0, 0), new Size2(15, 15)), new Point2(-15, -15), true) +//                        .SetName( +//                            "A non-empty bounding rectangle contains a point inside it."); +//                yield return +//                    new TestCaseData(new BoundingRectangle(new Point2(0, 0), new Size2(15, 15)), new Point2(-16, 15), false) +//                        .SetName( +//                            "A non-empty bounding rectangle does not contain a point outside it."); +//            } +//        } + +//        [Fact] +//        [TestCaseSource(nameof(ContainsPointTestCases))] +//        public void ContainsPoint(BoundingRectangle boundingRectangle, Point2 point, bool expectedToContainPoint) +//        { +//            Assert.Equal(expectedToContainPoint, boundingRectangle.Contains(point)); +//            Assert.Equal(expectedToContainPoint, BoundingRectangle.Contains(boundingRectangle, point)); +//        } + +//        public IEnumerable<TestCaseData> ClosestPointTestCases +//        { +//            get +//            { +//                yield return +//                    new TestCaseData(new BoundingRectangle(), new Point2(), new Point2()).SetName( +//                        "The closest point on the empty bounding rectangle to the zero point is the zero point."); +//                yield return +//                    new TestCaseData(new BoundingRectangle(new Point2(0, 0), new Point2(50, 50)), new Point2(25, 25), +//                        new Point2(25, 25)).SetName( +//                        "The closest point on a non-empty bounding rectangle to a point which is inside the bounding rectangle is that point.") +//                    ; +//                yield return +//                    new TestCaseData(new BoundingRectangle(new Point2(0, 0), new Point2(50, 50)), new Point2(400, 0), +//                        new Point2(50, 0)).SetName( +//                        "The closest point on a non-empty bounding rectangle to a point which is outside the bounding rectangle is the expected point.") +//                    ; +//            } +//        } + +//        [Fact] +//        [TestCaseSource(nameof(ClosestPointTestCases))] +//        public void ClosestPoint(BoundingRectangle boundingRectangle, Point2 point, Point2 expectedClosestPoint) +//        { +//            var actualClosestPoint = boundingRectangle.ClosestPointTo(point); +//            Assert.Equal(expectedClosestPoint, actualClosestPoint); +//        } + +//        public IEnumerable<TestCaseData> EqualityTestCases +//        { +//            get +//            { +//                yield return +//                    new TestCaseData(new BoundingRectangle(), new BoundingRectangle(), true).SetName( +//                        "Empty bounding rectangles are equal.") +//                    ; +//                yield return +//                    new TestCaseData( +//                        new BoundingRectangle(new Point2(0, 0), new Size2(float.MaxValue, float.MinValue)), +//                        new BoundingRectangle(new Point2(0, 0), +//                            new Point2(float.MinValue, float.MaxValue)), false).SetName( +//                        "Two different non-empty bounding rectangles are not equal."); +//                yield return +//                    new TestCaseData( +//                        new BoundingRectangle(new Point2(0, 0), new Size2(float.MinValue, float.MaxValue)), +//                        new BoundingRectangle(new Point2(0, 0), +//                            new Size2(float.MinValue, float.MaxValue)), true).SetName( +//                        "Two identical non-empty bounding rectangles are equal."); +//            } +//        } + +//        [Fact] +//        [TestCaseSource(nameof(EqualityTestCases))] +//        public void Equality(BoundingRectangle boundingRectangle1, BoundingRectangle boundingRectangle2, bool expectedToBeEqual) +//        { +//            Assert.IsTrue(Equals(boundingRectangle1, boundingRectangle2) == expectedToBeEqual); +//            Assert.IsTrue(boundingRectangle1 == boundingRectangle2 == expectedToBeEqual); +//            Assert.IsFalse(boundingRectangle1 == boundingRectangle2 != expectedToBeEqual); +//            Assert.IsTrue(boundingRectangle1.Equals(boundingRectangle2) == expectedToBeEqual); + +//            if (expectedToBeEqual) +//                Assert.Equal(boundingRectangle1.GetHashCode(), boundingRectangle2.GetHashCode()); +//        } + +//        public IEnumerable<TestCaseData> InequalityTestCases +//        { +//            get +//            { +//                yield return +//                    new TestCaseData(new BoundingRectangle(), null, false).SetName( +//                        "A bounding rectangle is not equal to a null object."); +//                yield return +//                    new TestCaseData(new BoundingRectangle(), new object(), false).SetName( +//                        "A bounding rectangle is not equal to an instantiated object."); +//            } +//        } + +//        [Fact] +//        [TestCaseSource(nameof(InequalityTestCases))] +//        public void Inequality(BoundingRectangle boundingRectangle, object obj, bool expectedToBeEqual) +//        { +//            Assert.IsTrue(boundingRectangle.Equals(obj) == expectedToBeEqual); +//        } + +//        public IEnumerable<TestCaseData> HashCodeTestCases +//        { +//            get +//            { +//                yield return +//                    new TestCaseData(new BoundingRectangle(), new BoundingRectangle(), true).SetName( +//                        "Two empty bounding rectangles have the same hash code."); +//                yield return +//                    new TestCaseData(new BoundingRectangle(new Point2(0, 0), new Size2(50, 50)), +//                        new BoundingRectangle(new Point2(0, 0), new Size2(50, 50)), true).SetName( +//                        "Two indentical non-empty bounding rectangles have the same hash code."); +//                yield return +//                    new TestCaseData(new BoundingRectangle(new Point2(0, 0), new Size2(50, 50)), +//                        new BoundingRectangle(new Point2(50, 50), new Size2(50, 50)), false).SetName( +//                        "Two different non-empty bounding rectangles do not have the same hash code."); +//            } +//        } + +//        [Fact] +//        [TestCaseSource(nameof(HashCodeTestCases))] +//        public void HashCode(BoundingRectangle boundingRectangle1, BoundingRectangle boundingRectangle2, bool expectedThatHashCodesAreEqual) +//        { +//            var hashCode1 = boundingRectangle1.GetHashCode(); +//            var hashCode2 = boundingRectangle2.GetHashCode(); +//            if (expectedThatHashCodesAreEqual) +//                Assert.Equal(hashCode1, hashCode2); +//            else +//                Assert.AreNotEqual(hashCode1, hashCode2); +//        } + +//        public IEnumerable<TestCaseData> ToRectangleTestCases +//        { +//            get +//            { +//                yield return +//                    new TestCaseData(new BoundingRectangle(), new Rectangle()).SetName( +//                        "The empty bounding rectangle point converted to a rectangle is the empty rectangle."); +//                yield return +//                    new TestCaseData(new BoundingRectangle(new Point2(25, 25), new Size2(25, 25)), +//                        new Rectangle(0, 0, 50, 50)).SetName( +//                        "A non-empty bounding rectangle converted to a rectangle is the expected rectangle."); +//            } +//        } + +//        [Fact] +//        [TestCaseSource(nameof(ToRectangleTestCases))] +//        public void ToRectangle(BoundingRectangle boundingRectangle, Rectangle expectedRectangle) +//        { +//            var actualRectangle = (Rectangle)boundingRectangle; +//            Assert.Equal(expectedRectangle, actualRectangle); +//        } + +//        public IEnumerable<TestCaseData> FromRectangleTestCases +//        { +//            get +//            { +//                yield return +//                    new TestCaseData(new Rectangle(), new BoundingRectangle()).SetName( +//                        "The empty rectangle converted to a bounding rectangle is the empty bounding rectangle."); +//                yield return +//                    new TestCaseData(new Rectangle(0, 0, 50, 50), +//                        new BoundingRectangle(new Point2(25, 25), new Size2(25, 25))).SetName( +//                        "A non-empty rectangle converted to a bounding rectangle is the expected bounding rectangle."); +//            } +//        } + +//        [Fact] +//        [TestCaseSource(nameof(FromRectangleTestCases))] +//        public void FromRectangle(Rectangle rectangle, BoundingRectangle expectedBoundingRectangle) +//        { +//            var actualBoundingRectangle = (BoundingRectangle)rectangle; +//            Assert.Equal(expectedBoundingRectangle, actualBoundingRectangle); +//        } + +//        public IEnumerable<TestCaseData> StringCases +//        { +//            get +//            { +//                yield return +//                    new TestCaseData(new BoundingRectangle(), +//                        string.Format(CultureInfo.CurrentCulture, "Centre: {0}, Radii: {1}", new Point2(), +//                            new Vector2())).SetName( +//                        "The empty bounding rectangle has the expected string representation using the current culture."); +//                yield return new TestCaseData(new BoundingRectangle(new Point2(5.1f, -5.123f), new Size2(5.4f, -5.4123f)), +//                    string.Format(CultureInfo.CurrentCulture, "Centre: {0}, Radii: {1}", new Point2(5.1f, -5.123f), +//                        new Vector2(5.4f, -5.4123f))).SetName( +//                    "A non-empty bounding rectangle has the expected string representation using the current culture."); +//            } +//        } + +//        [Fact] +//        [TestCaseSource(nameof(StringCases))] +//        public void String(BoundingRectangle boundingRectangle, string expectedString) +//        { +//            var actualString = boundingRectangle.ToString(); +//            Assert.Equal(expectedString, actualString); +//        } +//    } +//} | 
