From a32ef2a0eb44eee7a765b484d7736570a6f7fb76 Mon Sep 17 00:00:00 2001 From: Colin McMillen Date: Sat, 15 Feb 2020 16:49:20 -0500 Subject: [PATCH] Add unit tests for Geometry.Rotate(Vector2). Fixes #20. GitOrigin-RevId: 45cd5e99a2c841235e2d9ed29744fe22900ce167 --- SharedTests/GeometryTests.cs | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/SharedTests/GeometryTests.cs b/SharedTests/GeometryTests.cs index 4ae36f2..7db8a79 100644 --- a/SharedTests/GeometryTests.cs +++ b/SharedTests/GeometryTests.cs @@ -5,6 +5,41 @@ using System; 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); + } + + [TestMethod] + 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))); + } + [TestMethod] public void TestIntersectSegmentNotColliding() { AABB box = new AABB(new Vector2(0, 0), new Vector2(8, 8));