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); } } }