1
0
mirror of https://github.com/oliverbooth/X10D synced 2024-10-19 02:06:10 +00:00
X10D/X10D.Tests/src/Numerics/Vector3Tests.cs

91 lines
3.2 KiB
C#
Raw Normal View History

using System.Numerics;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using X10D.Numerics;
namespace X10D.Tests.Numerics;
[TestClass]
public class Vector3Tests
{
2022-05-16 09:30:55 +00:00
[TestMethod]
public void Deconstruct_ShouldReturnCorrectValues()
{
var vector = new Vector3(1, 2, 3);
(float x, float y, float z) = vector;
Assert.AreEqual(1, x);
Assert.AreEqual(2, y);
Assert.AreEqual(3, z);
}
[TestMethod]
public void Round_ShouldRoundToNearestInteger_GivenNoParameters()
{
var vector = new Vector3(1.5f, 2.6f, -5.2f);
var rounded = vector.Round();
Assert.AreEqual(2, rounded.X);
Assert.AreEqual(3, rounded.Y);
Assert.AreEqual(-5, rounded.Z);
}
[TestMethod]
public void Round_ShouldRoundToNearest10_GivenPrecision10()
{
var vector = new Vector3(1.5f, 25.2f, -12.5f);
var rounded = vector.Round(10);
Assert.AreEqual(0, rounded.X);
Assert.AreEqual(30, rounded.Y);
Assert.AreEqual(-10, rounded.Z);
}
[TestMethod]
public void WithX_ShouldReturnVectorWithNewX_GivenVector()
{
Assert.AreEqual(new Vector3(0, 1, 1), Vector3.One.WithX(0));
Assert.AreEqual(Vector3.Zero, Vector3.Zero.WithX(0));
Assert.AreEqual(Vector3.Zero, Vector3.UnitX.WithX(0));
Assert.AreEqual(Vector3.UnitY, Vector3.UnitY.WithX(0));
Assert.AreEqual(Vector3.UnitZ, Vector3.UnitZ.WithX(0));
Assert.AreEqual(Vector3.One, Vector3.One.WithX(1));
Assert.AreEqual(Vector3.UnitX, Vector3.Zero.WithX(1));
Assert.AreEqual(Vector3.UnitX, Vector3.UnitX.WithX(1));
Assert.AreEqual(new Vector3(1, 1, 0), Vector3.UnitY.WithX(1));
Assert.AreEqual(new Vector3(1, 0, 1), Vector3.UnitZ.WithX(1));
}
[TestMethod]
public void WithY_ShouldReturnVectorWithNewY_GivenVector()
{
Assert.AreEqual(new Vector3(1, 0, 1), Vector3.One.WithY(0));
Assert.AreEqual(Vector3.Zero, Vector3.Zero.WithY(0));
Assert.AreEqual(Vector3.UnitX, Vector3.UnitX.WithY(0));
Assert.AreEqual(Vector3.Zero, Vector3.UnitY.WithY(0));
Assert.AreEqual(Vector3.UnitZ, Vector3.UnitZ.WithY(0));
Assert.AreEqual(Vector3.One, Vector3.One.WithY(1));
Assert.AreEqual(Vector3.UnitY, Vector3.Zero.WithY(1));
Assert.AreEqual(new Vector3(1, 1, 0), Vector3.UnitX.WithY(1));
Assert.AreEqual(Vector3.UnitY, Vector3.UnitY.WithY(1));
Assert.AreEqual(new Vector3(0, 1, 1), Vector3.UnitZ.WithY(1));
}
[TestMethod]
public void WithZ_ShouldReturnVectorWithNewZ_GivenVector()
{
Assert.AreEqual(new Vector3(1, 1, 0), Vector3.One.WithZ(0));
Assert.AreEqual(Vector3.Zero, Vector3.Zero.WithZ(0));
Assert.AreEqual(Vector3.UnitX, Vector3.UnitX.WithZ(0));
Assert.AreEqual(Vector3.UnitY, Vector3.UnitY.WithZ(0));
Assert.AreEqual(Vector3.Zero, Vector3.UnitZ.WithZ(0));
Assert.AreEqual(Vector3.One, Vector3.One.WithZ(1));
Assert.AreEqual(Vector3.UnitZ, Vector3.Zero.WithZ(1));
Assert.AreEqual(new Vector3(1, 0, 1), Vector3.UnitX.WithZ(1));
Assert.AreEqual(new Vector3(0, 1, 1), Vector3.UnitY.WithZ(1));
Assert.AreEqual(Vector3.UnitZ, Vector3.UnitZ.WithZ(1));
}
}