aboutsummaryrefslogtreecommitdiff
path: root/RayRoom.Tests
diff options
context:
space:
mode:
authorbonmas14 <bonmas14@gmail.com>2023-10-24 20:59:19 +0300
committerbonmas14 <bonmas14@gmail.com>2023-10-24 20:59:19 +0300
commitbb22f05857bf5358343de294e98a655370e327aa (patch)
tree482f7f193105619006fb552616224ec1712908b3 /RayRoom.Tests
parentaad3d0382c498f6a39e5dbf5c9682e18127df353 (diff)
downloadRayRoom-bb22f05857bf5358343de294e98a655370e327aa.tar.gz
RayRoom-bb22f05857bf5358343de294e98a655370e327aa.zip
- raycasting
- System.Drawing visualization - some tests
Diffstat (limited to 'RayRoom.Tests')
-rw-r--r--RayRoom.Tests/GlobalUsings.cs1
-rw-r--r--RayRoom.Tests/MathTest.cs41
-rw-r--r--RayRoom.Tests/RayRoom.Tests.csproj23
3 files changed, 65 insertions, 0 deletions
diff --git a/RayRoom.Tests/GlobalUsings.cs b/RayRoom.Tests/GlobalUsings.cs
new file mode 100644
index 0000000..ab67c7e
--- /dev/null
+++ b/RayRoom.Tests/GlobalUsings.cs
@@ -0,0 +1 @@
+global using Microsoft.VisualStudio.TestTools.UnitTesting; \ No newline at end of file
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
diff --git a/RayRoom.Tests/RayRoom.Tests.csproj b/RayRoom.Tests/RayRoom.Tests.csproj
new file mode 100644
index 0000000..ab4b2fe
--- /dev/null
+++ b/RayRoom.Tests/RayRoom.Tests.csproj
@@ -0,0 +1,23 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+ <PropertyGroup>
+ <TargetFramework>net6.0</TargetFramework>
+ <ImplicitUsings>enable</ImplicitUsings>
+ <Nullable>enable</Nullable>
+
+ <IsPackable>false</IsPackable>
+ <IsTestProject>true</IsTestProject>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
+ <PackageReference Include="MSTest.TestAdapter" Version="2.2.10" />
+ <PackageReference Include="MSTest.TestFramework" Version="2.2.10" />
+ <PackageReference Include="coverlet.collector" Version="3.2.0" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <ProjectReference Include="..\RayRoom\RayRoom.csproj" />
+ </ItemGroup>
+
+</Project>