diff --git a/SharedTests/GeometryTests.cs b/SharedTests/GeometryTests.cs index 7db8a79..a78e976 100644 --- a/SharedTests/GeometryTests.cs +++ b/SharedTests/GeometryTests.cs @@ -1,98 +1,97 @@ using Microsoft.Xna.Framework; -using Microsoft.VisualStudio.TestTools.UnitTesting; using System; +using Xunit; namespace SemiColinGames.Tests { - [TestClass] public class GeometryTests { - public void AssertVectorsAreEqual(Vector2 v1, Vector2 v2) { - Assert.AreEqual(v1.X, v2.X, 1e-5); - Assert.AreEqual(v1.Y, v2.Y, 1e-5); + private void AssertVectorsEqual(Vector2 v1, Vector2 v2) { + Assert.Equal(v1.X, v2.X, 5); + Assert.Equal(v1.Y, v2.Y, 5); } - [TestMethod] + [Fact] public void TestVector2Rotate() { Vector2 v = new Vector2(10, 0); - AssertVectorsAreEqual(new Vector2(10, 0), v.Rotate(FMath.DegToRad(0))); - AssertVectorsAreEqual(new Vector2(0, 10), v.Rotate(FMath.DegToRad(90))); - AssertVectorsAreEqual(new Vector2(-10, 0), v.Rotate(FMath.DegToRad(180))); - AssertVectorsAreEqual(new Vector2(0, -10), v.Rotate(FMath.DegToRad(270))); - AssertVectorsAreEqual(new Vector2(10, 0), v.Rotate(FMath.DegToRad(360))); - AssertVectorsAreEqual(new Vector2(0, 10), v.Rotate(FMath.DegToRad(450))); - - AssertVectorsAreEqual(new Vector2(0, -10), v.Rotate(FMath.DegToRad(-90))); - AssertVectorsAreEqual(new Vector2(-10, 0), v.Rotate(FMath.DegToRad(-180))); - AssertVectorsAreEqual(new Vector2(0, 10), v.Rotate(FMath.DegToRad(-270))); - AssertVectorsAreEqual(new Vector2(10, 0), v.Rotate(FMath.DegToRad(-360))); - AssertVectorsAreEqual(new Vector2(0, -10), v.Rotate(FMath.DegToRad(-450))); - - AssertVectorsAreEqual(new Vector2(7.0710678f, 7.0710678f), v.Rotate(FMath.DegToRad(45))); - AssertVectorsAreEqual(new Vector2(8.6602540f, 5f), v.Rotate(FMath.DegToRad(30))); - AssertVectorsAreEqual(new Vector2(5f, 8.6602540f), v.Rotate(FMath.DegToRad(60))); - AssertVectorsAreEqual(new Vector2(-5f, 8.6602540f), v.Rotate(FMath.DegToRad(120))); - AssertVectorsAreEqual(new Vector2(-8.6602540f, 5f), v.Rotate(FMath.DegToRad(150))); - - AssertVectorsAreEqual(new Vector2(7.0710678f, -7.0710678f), v.Rotate(FMath.DegToRad(-45))); - AssertVectorsAreEqual(new Vector2(8.6602540f, -5f), v.Rotate(FMath.DegToRad(-30))); - AssertVectorsAreEqual(new Vector2(5f, -8.6602540f), v.Rotate(FMath.DegToRad(-60))); - AssertVectorsAreEqual(new Vector2(-5f, -8.6602540f), v.Rotate(FMath.DegToRad(-120))); - AssertVectorsAreEqual(new Vector2(-8.6602540f, -5f), v.Rotate(FMath.DegToRad(-150))); + AssertVectorsEqual(new Vector2(10, 0), v.Rotate(FMath.DegToRad(0))); + AssertVectorsEqual(new Vector2(0, 10), v.Rotate(FMath.DegToRad(90))); + AssertVectorsEqual(new Vector2(-10, 0), v.Rotate(FMath.DegToRad(180))); + AssertVectorsEqual(new Vector2(0, -10), v.Rotate(FMath.DegToRad(270))); + AssertVectorsEqual(new Vector2(10, 0), v.Rotate(FMath.DegToRad(360))); + AssertVectorsEqual(new Vector2(0, 10), v.Rotate(FMath.DegToRad(450))); + + AssertVectorsEqual(new Vector2(0, -10), v.Rotate(FMath.DegToRad(-90))); + AssertVectorsEqual(new Vector2(-10, 0), v.Rotate(FMath.DegToRad(-180))); + AssertVectorsEqual(new Vector2(0, 10), v.Rotate(FMath.DegToRad(-270))); + AssertVectorsEqual(new Vector2(10, 0), v.Rotate(FMath.DegToRad(-360))); + AssertVectorsEqual(new Vector2(0, -10), v.Rotate(FMath.DegToRad(-450))); + + AssertVectorsEqual(new Vector2(7.0710678f, 7.0710678f), v.Rotate(FMath.DegToRad(45))); + AssertVectorsEqual(new Vector2(8.6602540f, 5f), v.Rotate(FMath.DegToRad(30))); + AssertVectorsEqual(new Vector2(5f, 8.6602540f), v.Rotate(FMath.DegToRad(60))); + AssertVectorsEqual(new Vector2(-5f, 8.6602540f), v.Rotate(FMath.DegToRad(120))); + AssertVectorsEqual(new Vector2(-8.6602540f, 5f), v.Rotate(FMath.DegToRad(150))); + + AssertVectorsEqual(new Vector2(7.0710678f, -7.0710678f), v.Rotate(FMath.DegToRad(-45))); + AssertVectorsEqual(new Vector2(8.6602540f, -5f), v.Rotate(FMath.DegToRad(-30))); + AssertVectorsEqual(new Vector2(5f, -8.6602540f), v.Rotate(FMath.DegToRad(-60))); + AssertVectorsEqual(new Vector2(-5f, -8.6602540f), v.Rotate(FMath.DegToRad(-120))); + AssertVectorsEqual(new Vector2(-8.6602540f, -5f), v.Rotate(FMath.DegToRad(-150))); } - [TestMethod] + [Fact] public void TestIntersectSegmentNotColliding() { AABB box = new AABB(new Vector2(0, 0), new Vector2(8, 8)); - Assert.IsNull(box.IntersectSegment(new Vector2(-16, -16), new Vector2(32, 0))); + Assert.Null(box.IntersectSegment(new Vector2(-16, -16), new Vector2(32, 0))); } - [TestMethod] + [Fact] public void TestIntersectSegmentHit() { AABB box = new AABB(new Vector2(0, 0), new Vector2(8, 8)); var point = new Vector2(-16, 4); var delta = new Vector2(32, 0); Hit? maybeHit = box.IntersectSegment(point, delta); - Assert.IsNotNull(maybeHit); + Assert.NotNull(maybeHit); Hit hit = (Hit) maybeHit; - Assert.AreEqual(box, hit.Collider); - Assert.AreEqual(0.25, hit.Time); + Assert.Equal(box, hit.Collider); + Assert.Equal(0.25, hit.Time); - Assert.AreEqual(point.X + delta.X * hit.Time, hit.Position.X); - Assert.AreEqual(point.Y + delta.Y * hit.Time, hit.Position.Y); + Assert.Equal(point.X + delta.X * hit.Time, hit.Position.X); + Assert.Equal(point.Y + delta.Y * hit.Time, hit.Position.Y); - Assert.AreEqual((1.0f - hit.Time) * -delta.X, hit.Delta.X); - Assert.AreEqual((1.0f - hit.Time) * -delta.Y, hit.Delta.Y); + Assert.Equal((1.0f - hit.Time) * -delta.X, hit.Delta.X); + Assert.Equal((1.0f - hit.Time) * -delta.Y, hit.Delta.Y); - Assert.AreEqual(-1, hit.Normal.X); - Assert.AreEqual(0, hit.Normal.Y); + Assert.Equal(-1, hit.Normal.X); + Assert.Equal(0, hit.Normal.Y); } - [TestMethod] + [Fact] public void TestIntersectSegmentFromInsideBox() { AABB box = new AABB(new Vector2(0, 0), new Vector2(8, 8)); var point = new Vector2(-4, 4); var delta = new Vector2(32, 0); Hit? maybeHit = box.IntersectSegment(point, delta); - Assert.IsNotNull(maybeHit); + Assert.NotNull(maybeHit); Hit hit = (Hit) maybeHit; - Assert.AreEqual(box, hit.Collider); - Assert.AreEqual(0.0, hit.Time); + Assert.Equal(box, hit.Collider); + Assert.Equal(0.0, hit.Time); - Assert.AreEqual(-4, hit.Position.X); - Assert.AreEqual(4, hit.Position.Y); + Assert.Equal(-4, hit.Position.X); + Assert.Equal(4, hit.Position.Y); - Assert.AreEqual(-delta.X, hit.Delta.X); - Assert.AreEqual(-delta.Y, hit.Delta.Y); + Assert.Equal(-delta.X, hit.Delta.X); + Assert.Equal(-delta.Y, hit.Delta.Y); - Assert.AreEqual(-1, hit.Normal.X); - Assert.AreEqual(0, hit.Normal.Y); + Assert.Equal(-1, hit.Normal.X); + Assert.Equal(0, hit.Normal.Y); } - [TestMethod] + [Fact] public void TestIntersectSegmentWithPadding() { AABB box = new AABB(new Vector2(0, 0), new Vector2(8, 8)); var point = new Vector2(-16, 4); @@ -100,62 +99,62 @@ namespace SemiColinGames.Tests { int padding = 4; Hit? maybeHit = box.IntersectSegment(point, delta, new Vector2(padding, padding)); - Assert.IsNotNull(maybeHit); + Assert.NotNull(maybeHit); Hit hit = (Hit) maybeHit; - Assert.AreEqual(box, hit.Collider); - Assert.AreEqual(0.125, hit.Time); + Assert.Equal(box, hit.Collider); + Assert.Equal(0.125, hit.Time); - Assert.AreEqual(point.X + delta.X * hit.Time, hit.Position.X); - Assert.AreEqual(point.Y + delta.Y * hit.Time, hit.Position.Y); + Assert.Equal(point.X + delta.X * hit.Time, hit.Position.X); + Assert.Equal(point.Y + delta.Y * hit.Time, hit.Position.Y); - Assert.AreEqual((1.0f - hit.Time) * -delta.X, hit.Delta.X); - Assert.AreEqual((1.0f - hit.Time) * -delta.Y, hit.Delta.Y); + Assert.Equal((1.0f - hit.Time) * -delta.X, hit.Delta.X); + Assert.Equal((1.0f - hit.Time) * -delta.Y, hit.Delta.Y); - Assert.AreEqual(-1, hit.Normal.X); - Assert.AreEqual(0, hit.Normal.Y); + Assert.Equal(-1, hit.Normal.X); + Assert.Equal(0, hit.Normal.Y); } - [TestMethod] + [Fact] public void TestIntersectSegmentFromTwoDirections() { AABB box = new AABB(new Vector2(0, 0), new Vector2(32, 32)); var farPos = new Vector2(64, 0); var farToNearDelta = new Vector2(-32, 0); - Assert.IsNull(box.IntersectSegment(farPos, farToNearDelta)); + Assert.Null(box.IntersectSegment(farPos, farToNearDelta)); var nearPos = new Vector2(32, 0); var nearToFarDelta = new Vector2(32, 0); - Assert.IsNull(box.IntersectSegment(nearPos, nearToFarDelta)); + Assert.Null(box.IntersectSegment(nearPos, nearToFarDelta)); } - [TestMethod] + [Fact] public void TestIntersectSegmentXAxisAligned() { AABB box = new AABB(new Vector2(0, 0), new Vector2(16, 16)); var pos = new Vector2(-32, 0); var delta = new Vector2(64, 0); Hit? maybeHit = box.IntersectSegment(pos, delta); - Assert.IsNotNull(maybeHit); + Assert.NotNull(maybeHit); Hit hit = (Hit) maybeHit; - Assert.AreEqual(0.25, hit.Time); - Assert.AreEqual(-1, hit.Normal.X); - Assert.AreEqual(0, hit.Normal.Y); + Assert.Equal(0.25, hit.Time); + Assert.Equal(-1, hit.Normal.X); + Assert.Equal(0, hit.Normal.Y); } - [TestMethod] + [Fact] public void TestIntersectSegmentYAxisAligned() { AABB box = new AABB(new Vector2(0, 0), new Vector2(16, 16)); var pos = new Vector2(0, -32); var delta = new Vector2(0, 64); Hit? maybeHit = box.IntersectSegment(pos, delta); - Assert.IsNotNull(maybeHit); + Assert.NotNull(maybeHit); Hit hit = (Hit) maybeHit; - Assert.AreEqual(0.25, hit.Time); - Assert.AreEqual(0, hit.Normal.X); - Assert.AreEqual(-1, hit.Normal.Y); + Assert.Equal(0.25, hit.Time); + Assert.Equal(0, hit.Normal.X); + Assert.Equal(-1, hit.Normal.Y); } } } \ No newline at end of file diff --git a/SharedTests/HistoryTests.cs b/SharedTests/HistoryTests.cs index 0dc8ff5..9d92249 100644 --- a/SharedTests/HistoryTests.cs +++ b/SharedTests/HistoryTests.cs @@ -1,8 +1,8 @@ -using Microsoft.VisualStudio.TestTools.UnitTesting; using System; +using Xunit; namespace SemiColinGames.Tests { - [TestClass] + public class HistoryTests { public static int[] ToArray(History history) { int[] result = new int[history.Length]; @@ -12,44 +12,44 @@ namespace SemiColinGames.Tests { return result; } - [TestMethod] + [Fact] public void TestLength() { var h = new History(3); - Assert.AreEqual(3, h.Length); + Assert.Equal(3, h.Length); } - [TestMethod] + [Fact] public void TestGetFromEmpty() { var ints = new History(3); - Assert.AreEqual(0, ints[0]); - Assert.AreEqual(0, ints[1]); - Assert.AreEqual(0, ints[2]); + Assert.Equal(0, ints[0]); + Assert.Equal(0, ints[1]); + Assert.Equal(0, ints[2]); var objects = new History(1); - Assert.AreEqual(null, objects[0]); + Assert.Null(objects[0]); } - [TestMethod] + [Fact] public void TestAdds() { var h = new History(3); - Assert.AreEqual("0 0 0", String.Join(" ", ToArray(h))); + Assert.Equal("0 0 0", String.Join(" ", ToArray(h))); h.Add(2); - Assert.AreEqual("2 0 0", String.Join(" ", ToArray(h))); + Assert.Equal("2 0 0", String.Join(" ", ToArray(h))); h.Add(3); h.Add(5); - Assert.AreEqual("5 3 2", String.Join(" ", ToArray(h))); + Assert.Equal("5 3 2", String.Join(" ", ToArray(h))); h.Add(7); - Assert.AreEqual("7 5 3", String.Join(" ", ToArray(h))); + Assert.Equal("7 5 3", String.Join(" ", ToArray(h))); h.Add(11); h.Add(13); - Assert.AreEqual("13 11 7", String.Join(" ", ToArray(h))); + Assert.Equal("13 11 7", String.Join(" ", ToArray(h))); } - [TestMethod] + [Fact] public void TestThrowsExceptions() { var h = new History(3); - Assert.ThrowsException(() => h[-1]); - Assert.ThrowsException(() => h[3]); + Assert.Throws(() => h[-1]); + Assert.Throws(() => h[3]); } } } diff --git a/SharedTests/LineTests.cs b/SharedTests/LineTests.cs index e9e14c6..b2ad368 100644 --- a/SharedTests/LineTests.cs +++ b/SharedTests/LineTests.cs @@ -1,21 +1,20 @@ -using Microsoft.VisualStudio.TestTools.UnitTesting; -using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework; using System; using System.Collections.Generic; +using Xunit; namespace SemiColinGames.Tests { - [TestClass] public class LineTests { - [TestMethod] + [Fact] public void TestRasterizeSinglePoint() { var p1 = new Point(10, 10); var expected = new Point[] { p1 }; var result = new List(); Line.Rasterize(p1, p1, result); - CollectionAssert.AreEqual(expected, result); + Assert.Equal(expected, result); } - [TestMethod] + [Fact] public void TestRasterizeHorizontal() { var p1 = new Point(10, 10); var p2 = new Point(15, 10); @@ -29,10 +28,10 @@ namespace SemiColinGames.Tests { }; var result = new List(); Line.Rasterize(p1, p2, result); - CollectionAssert.AreEqual(expected, result); + Assert.Equal(expected, result); } - [TestMethod] + [Fact] public void TestRasterizeHorizontalReverse() { var p1 = new Point(15, 10); var p2 = new Point(10, 10); @@ -46,10 +45,10 @@ namespace SemiColinGames.Tests { }; var result = new List(); Line.Rasterize(p1, p2, result); - CollectionAssert.AreEqual(expected, result); + Assert.Equal(expected, result); } - [TestMethod] + [Fact] public void TestRasterizeVertical() { var p1 = new Point(10, 10); var p2 = new Point(10, 15); @@ -63,10 +62,10 @@ namespace SemiColinGames.Tests { }; var result = new List(); Line.Rasterize(p1, p2, result); - CollectionAssert.AreEqual(expected, result); + Assert.Equal(expected, result); } - [TestMethod] + [Fact] public void TestRasterizeVerticalReverse() { var p1 = new Point(10, 15); var p2 = new Point(10, 10); @@ -80,10 +79,10 @@ namespace SemiColinGames.Tests { }; var result = new List(); Line.Rasterize(p1, p2, result); - CollectionAssert.AreEqual(expected, result); + Assert.Equal(expected, result); } - [TestMethod] + [Fact] public void TestRasterizeDiagonalPosPos() { var p1 = new Point(0, 0); var p2 = new Point(5, 5); @@ -97,10 +96,10 @@ namespace SemiColinGames.Tests { }; var result = new List(); Line.Rasterize(p1, p2, result); - CollectionAssert.AreEqual(expected, result); + Assert.Equal(expected, result); } - [TestMethod] + [Fact] public void TestRasterizeDiagonalPosNeg() { var p1 = new Point(0, 5); var p2 = new Point(5, 0); @@ -114,10 +113,10 @@ namespace SemiColinGames.Tests { }; var result = new List(); Line.Rasterize(p1, p2, result); - CollectionAssert.AreEqual(expected, result); + Assert.Equal(expected, result); } - [TestMethod] + [Fact] public void TestRasterizeDiagonalNegPos() { var p1 = new Point(5, 0); var p2 = new Point(0, 5); @@ -131,10 +130,10 @@ namespace SemiColinGames.Tests { }; var result = new List(); Line.Rasterize(p1, p2, result); - CollectionAssert.AreEqual(expected, result); + Assert.Equal(expected, result); } - [TestMethod] + [Fact] public void TestRasterizeDiagonalNegNeg() { var p1 = new Point(5, 5); var p2 = new Point(0, 0); @@ -148,10 +147,10 @@ namespace SemiColinGames.Tests { }; var result = new List(); Line.Rasterize(p1, p2, result); - CollectionAssert.AreEqual(expected, result); + Assert.Equal(expected, result); } - [TestMethod] + [Fact] public void TestRasterizeDoubleSlope() { var p1 = new Point(0, 0); var p2 = new Point(4, 9); @@ -169,10 +168,10 @@ namespace SemiColinGames.Tests { }; var result = new List(); Line.Rasterize(p1, p2, result); - CollectionAssert.AreEqual(expected, result); + Assert.Equal(expected, result); } - [TestMethod] + [Fact] public void TestRasterizeDoubleSlopePlusOne() { var p1 = new Point(0, 0); var p2 = new Point(5, 10); @@ -191,10 +190,10 @@ namespace SemiColinGames.Tests { }; var result = new List(); Line.Rasterize(p1, p2, result); - CollectionAssert.AreEqual(expected, result); + Assert.Equal(expected, result); } - [TestMethod] + [Fact] public void TestRasterizeDoubleSlopePlusOneReverse() { var p1 = new Point(5, 10); var p2 = new Point(0, 0); @@ -213,10 +212,10 @@ namespace SemiColinGames.Tests { }; var result = new List(); Line.Rasterize(p1, p2, result); - CollectionAssert.AreEqual(expected, result); + Assert.Equal(expected, result); } - [TestMethod] + [Fact] public void TestRasterizeHalfSlope() { var p1 = new Point(0, 0); var p2 = new Point(9, 4); @@ -234,10 +233,10 @@ namespace SemiColinGames.Tests { }; var result = new List(); Line.Rasterize(p1, p2, result); - CollectionAssert.AreEqual(expected, result); + Assert.Equal(expected, result); } - [TestMethod] + [Fact] public void TestRasterizeHalfSlopePlusOne() { var p1 = new Point(0, 0); var p2 = new Point(10, 5); @@ -256,10 +255,10 @@ namespace SemiColinGames.Tests { }; var result = new List(); Line.Rasterize(p1, p2, result); - CollectionAssert.AreEqual(expected, result); + Assert.Equal(expected, result); } - [TestMethod] + [Fact] public void TestRasterizeHalfSlopePlusOneReverse() { var p1 = new Point(10, 5); var p2 = new Point(0, 0); @@ -278,7 +277,7 @@ namespace SemiColinGames.Tests { }; var result = new List(); Line.Rasterize(p1, p2, result); - CollectionAssert.AreEqual(expected, result); + Assert.Equal(expected, result); } } } diff --git a/SharedTests/Properties/AssemblyInfo.cs b/SharedTests/Properties/AssemblyInfo.cs deleted file mode 100644 index b93fdbf..0000000 --- a/SharedTests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -[assembly: AssemblyTitle("SharedTests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("SharedTests")] -[assembly: AssemblyCopyright("Copyright © 2020")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -[assembly: ComVisible(false)] - -[assembly: Guid("c86694a5-dd99-4421-aa2c-1230f11c10f8")] - -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/SharedTests/SharedTests.csproj b/SharedTests/SharedTests.csproj index 01b2dde..4a4eb81 100644 --- a/SharedTests/SharedTests.csproj +++ b/SharedTests/SharedTests.csproj @@ -1,81 +1,15 @@ - - - - + + - Debug - AnyCPU - {C86694A5-DD99-4421-AA2C-1230F11C10F8} - Library - Properties - SemiColinGames.Tests - latest - SharedTests - v4.7.2 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 15.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - + netcoreapp5.0 - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - ..\..\packages\MSTest.TestFramework.2.1.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll - - - ..\..\packages\MSTest.TestFramework.2.1.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll - - - ..\..\packages\MonoGame.Framework.DesktopGL.3.8.0.1641\lib\net452\MonoGame.Framework.dll - - - ..\..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll - - - - - - - - - - + - - + + + + + - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - - - \ No newline at end of file + diff --git a/SharedTests/app.config b/SharedTests/app.config deleted file mode 100644 index 3a1a497..0000000 --- a/SharedTests/app.config +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/SharedTests/packages.config b/SharedTests/packages.config deleted file mode 100644 index 5a9bee5..0000000 --- a/SharedTests/packages.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file