diff options
Diffstat (limited to 'RayRoom.Tests/MathTest.cs')
-rw-r--r-- | RayRoom.Tests/MathTest.cs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/RayRoom.Tests/MathTest.cs b/RayRoom.Tests/MathTest.cs new file mode 100644 index 0000000..804f32c --- /dev/null +++ b/RayRoom.Tests/MathTest.cs @@ -0,0 +1,41 @@ +using RayRoom.Core; +using System.Numerics; + +namespace RayRoom.Tests +{ + [TestClass] + public class MathTest + { + [TestMethod] + public void TestRayCollision() + { + Ray a = new Ray(Vector2.Zero, Vector2.UnitY); + Ray b = new Ray(new Vector2(4, 5), -Vector2.UnitX); + Ray c = new Ray(Vector2.One, -Vector2.UnitX); + Ray d = new Ray(Vector2.One, Vector2.UnitX); + + Assert.IsTrue(CollisionHelpers.RaycastRayToRay(a, b, out CastInfo info)); + Console.WriteLine(info.ToString()); + Assert.IsTrue(CollisionHelpers.RaycastRayToRay(a, c, out info)); + Console.WriteLine(info.ToString()); + Assert.IsFalse(CollisionHelpers.RaycastRayToRay(a, d, out info)); + Console.WriteLine(info.ToString()); + } + + [TestMethod] + public void TestRayToLineCollision() + { + Line a = new Line(Vector2.Zero, new Vector2(0, 4)); + Ray b = new Ray(new Vector2(4, 5), -Vector2.UnitX); + Ray c = new Ray(Vector2.One, -Vector2.UnitX); + Ray d = new Ray(Vector2.One, Vector2.UnitX); + + Assert.IsFalse(CollisionHelpers.RaycastRayToLine(a, b, out CastInfo info)); + Console.WriteLine(info.ToString()); + Assert.IsTrue(CollisionHelpers.RaycastRayToLine(a, c, out info)); + Console.WriteLine(info.ToString()); + Assert.IsFalse(CollisionHelpers.RaycastRayToLine(a, d, out info)); + Console.WriteLine(info.ToString()); + } + } +}
\ No newline at end of file |