aboutsummaryrefslogtreecommitdiff
path: root/RayRoom.Tests/MathTest.cs
diff options
context:
space:
mode:
Diffstat (limited to 'RayRoom.Tests/MathTest.cs')
-rw-r--r--RayRoom.Tests/MathTest.cs41
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