experiments-monogame/Dakota/DakotaTests/TestDakotaUtils.cs

48 lines
1.8 KiB
C#
Raw Normal View History

2024-09-06 23:47:51 +00:00
using System;
using Dakota.Utils;
using Microsoft.Xna.Framework;
using NUnit.Framework;
namespace DakotaTests
{
public class DakotaUtilTests
{
[SetUp]
public void Setup()
{
}
private Vector2 UpVector = new(0, -1);
private Vector2 RightVector = new(1, 0);
private Vector2 DownVector = new(0, 1);
private Vector2 LeftVector = new(-1, 0);
private const float Epsilon = 0.00001f;
private const float UpAngle = 0f;
private const float RightAngle = (float) Math.PI / 2f;
private const float DownAngle = (float) Math.PI;
private const float LeftAngle = (float) Math.PI * 1.5f;
[Test]
public void TestToAngle()
{
// going around the clock
Assert.AreEqual(UpAngle, DakotaUtils.ToAngle(UpVector));
Assert.AreEqual(RightAngle, DakotaUtils.ToAngle(RightVector));
Assert.AreEqual(DownAngle, DakotaUtils.ToAngle(DownVector));
Assert.AreEqual(LeftAngle, DakotaUtils.ToAngle(LeftVector));
}
[Test]
public void TestFromAngle()
{
Assert.AreEqual(UpVector.X, DakotaUtils.VecFromAngle(UpAngle).X, Epsilon);
Assert.AreEqual(UpVector.Y, DakotaUtils.VecFromAngle(UpAngle).Y, Epsilon);
Assert.AreEqual(RightVector.X, DakotaUtils.VecFromAngle(RightAngle).X, Epsilon);
Assert.AreEqual(RightVector.Y, DakotaUtils.VecFromAngle(RightAngle).Y, Epsilon);
Assert.AreEqual(DownVector.X, DakotaUtils.VecFromAngle(DownAngle).X, Epsilon);
Assert.AreEqual(DownVector.Y, DakotaUtils.VecFromAngle(DownAngle).Y, Epsilon);
Assert.AreEqual(LeftVector.X, DakotaUtils.VecFromAngle(LeftAngle).X, Epsilon);
Assert.AreEqual(LeftVector.Y, DakotaUtils.VecFromAngle(LeftAngle).Y, Epsilon);
}
}
}