recrownedgtk/RecrownedGTK.Tests/Graphics/CameraTest.cs
2020-02-23 16:17:10 -05:00

68 lines
2.5 KiB
C#

using NUnit.Framework;
using RecrownedGTK.Graphics;
using OpenTK;
using System;
namespace RecrownedGTK.Tests.Graphics {
[TestFixture]
public class CameraTest {
Camera camera;
Vector4 position;
[SetUp]
public void Setup() {
camera = new Camera();
position = new Vector4();
position.X = 1;
position.W = 1;
}
[Test]
public void TestCameraTranslation() {
Console.WriteLine("Camera Transform Matrix Before:");
Console.WriteLine(camera.Transform);
Console.WriteLine("Vector Before:");
Console.WriteLine(position);
camera.Translate = new Vector3(1, 1, 0);
Console.WriteLine("Matrix After:");
Console.WriteLine(camera.Transform);
Vector4 result = camera.Transform * position;
Console.WriteLine("Vector After:");
Console.WriteLine(result);
Vector4 expected = new Vector4(2, 1, 0, 1);
Assert.AreEqual(expected, result);
}
[Test]
public void TestCameraRotation() {
Console.WriteLine("Camera Transform Matrix Before:");
Console.WriteLine(camera.Transform);
Console.WriteLine("Vector Before:");
Console.WriteLine(position);
camera.Rotation = new Vector3(0, 0, MathHelper.DegreesToRadians(90f));
Console.WriteLine("Matrix After:");
Console.WriteLine(camera.Transform);
Vector4 result = camera.Transform * position;
result.X = (float) Math.Round((float) result.X, 4);
Console.WriteLine("Vector After:");
Console.WriteLine(result);
Vector4 expected = new Vector4(0, 1, 0, 1);
Assert.AreEqual(expected, result);
}
[Test]
public void TestCameraScale() {
Console.WriteLine("Camera Transform Matrix Before:");
Console.WriteLine(camera.Transform);
Console.WriteLine("Vector Before:");
Console.WriteLine(position);
camera.Scale = new Vector3(2f);
Console.WriteLine("Matrix After:");
Console.WriteLine(camera.Transform);
Vector4 result = camera.Transform * position;
Console.WriteLine("Vector After:");
Console.WriteLine(result);
Vector4 expected = new Vector4(2, 0, 0, 1);
Assert.AreEqual(expected, result);
}
}
}