aboutsummaryrefslogtreecommitdiff
path: root/RayRoom.Tests/MathTest.cs
blob: 804f32cdf50c74976777c0ee212948a067a5ad1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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());
        }
    }
}