mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-02-14 19:29:36 +01:00
Robust.UnitTesting was both ALL tests for RT, and also API surface for content tests. Tests are now split into separate projects as appropriate, and the API side has also been split off.
91 lines
3.0 KiB
C#
91 lines
3.0 KiB
C#
using System.Numerics;
|
|
using NUnit.Framework;
|
|
|
|
namespace Robust.Shared.Maths.Tests
|
|
{
|
|
[TestFixture]
|
|
[Parallelizable(ParallelScope.All | ParallelScope.Fixtures)]
|
|
[TestOf(typeof(Vector2))]
|
|
internal 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));
|
|
}
|
|
}
|
|
}
|