mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-09-06 17:58:05 +02:00
92 lines
3.1 KiB
C#
92 lines
3.1 KiB
C#
using System.Numerics;
|
|
using NUnit.Framework;
|
|
using Robust.Shared.Maths;
|
|
|
|
namespace Robust.UnitTesting.Shared.Maths
|
|
{
|
|
[TestFixture]
|
|
[Parallelizable(ParallelScope.All | ParallelScope.Fixtures)]
|
|
[TestOf(typeof(Vector2))]
|
|
public sealed class Vector2_Test
|
|
{
|
|
[Test]
|
|
[Sequential]
|
|
public void ConstructorTest([Random(-1.0f, 1.0f, 5)] float x,
|
|
[Random(-1.0f, 1.0f, 5)] float y)
|
|
{
|
|
var vec = new Vector2(x, y);
|
|
Assert.That(vec.X, Is.EqualTo(x));
|
|
Assert.That(vec.Y, Is.EqualTo(y));
|
|
|
|
Assert.That(Vector2.One, Is.EqualTo(new Vector2(1, 1)));
|
|
Assert.That(Vector2.Zero, Is.EqualTo(new Vector2(0, 0)));
|
|
Assert.That(new Vector2(), Is.EqualTo(new Vector2(0, 0)));
|
|
}
|
|
|
|
// Testing basic operators: +, -, *, /
|
|
[Test]
|
|
[Sequential]
|
|
public void ArithmeticTest([Random(-1.0f, 1.0f, 5)] float x1,
|
|
[Random(-1.0f, 1.0f, 5)] float y1,
|
|
[Random(-1.0f, 1.0f, 5)] float x2,
|
|
[Random(-1.0f, 1.0f, 5)] float y2,
|
|
[Random(-1.0f, 1.0f, 5)] float scale)
|
|
{
|
|
var vec1 = new Vector2(x1, y1);
|
|
var vec2 = new Vector2(x2, y2);
|
|
|
|
var add = vec1 + vec2;
|
|
Assert.That(add.X, Is.EqualTo(x1 + x2));
|
|
Assert.That(add.Y, Is.EqualTo(y1 + y2));
|
|
|
|
var sub = vec1 - vec2;
|
|
Assert.That(sub.X, Is.EqualTo(x1 - x2));
|
|
Assert.That(sub.Y, Is.EqualTo(y1 - y2));
|
|
|
|
var neg = -vec1;
|
|
Assert.That(neg.X, Is.EqualTo(-x1));
|
|
Assert.That(neg.Y, Is.EqualTo(-y1));
|
|
|
|
var mul = vec1 * vec2;
|
|
Assert.That(mul.X, Is.EqualTo(x1 * x2));
|
|
Assert.That(mul.Y, Is.EqualTo(y1 * y2));
|
|
|
|
var muls = vec1 * scale;
|
|
Assert.That(muls.X, Is.EqualTo(x1 * scale));
|
|
Assert.That(muls.Y, Is.EqualTo(y1 * scale));
|
|
|
|
var div = vec1 / vec2;
|
|
Assert.That(div.X, Is.EqualTo(x1 / x2));
|
|
Assert.That(div.Y, Is.EqualTo(y1 / y2));
|
|
|
|
var divs = vec1 / scale;
|
|
Assert.That(divs.X, Is.EqualTo(x1 / scale));
|
|
Assert.That(divs.Y, Is.EqualTo(y1 / scale));
|
|
}
|
|
|
|
[Test]
|
|
public void ComponentMinMaxTest()
|
|
{
|
|
var vec1 = new Vector2(-1, 1);
|
|
var vec2 = new Vector2(1, -1);
|
|
|
|
Assert.That(Vector2.Min(vec1, vec2), Is.EqualTo(new Vector2(-1, -1)));
|
|
Assert.That(Vector2.Max(vec1, vec2), Is.EqualTo(new Vector2(1, 1)));
|
|
}
|
|
|
|
[Test]
|
|
[Sequential]
|
|
public void OpenTKConversionTest([Random(-1.0f, 1.0f, 5)] float x,
|
|
[Random(-1.0f, 1.0f, 5)] float y)
|
|
{
|
|
var vec = new Vector2(x, y);
|
|
Vector2 ovec = vec;
|
|
|
|
Assert.That(ovec.X, Is.EqualTo(x));
|
|
Assert.That(ovec.Y, Is.EqualTo(y));
|
|
|
|
Assert.That(ovec, Is.EqualTo(vec));
|
|
}
|
|
}
|
|
}
|