MoonTools.Structs/Tests/Transform2DTest.cs

68 lines
2.4 KiB
C#
Raw Normal View History

2019-09-06 07:13:49 +00:00
using FluentAssertions;
using NUnit.Framework;
2019-10-31 22:57:04 +00:00
2019-09-06 07:13:49 +00:00
using MoonTools.Core.Structs;
2019-10-31 22:57:04 +00:00
using System.Numerics;
2019-09-06 07:13:49 +00:00
namespace Tests
{
public class Transform2DTest
{
[Test]
public void Equals()
{
var transformA = new Transform2D(new Position2D(0, 1), 4f, new Vector2(2, 1));
var transformB = new Transform2D(new Position2D(0, 1), 4f, new Vector2(2, 1));
transformA.Equals(transformB).Should().BeTrue();
2019-09-06 07:13:49 +00:00
}
[Test]
public void NotEquals()
{
var transformA = new Transform2D(new Position2D(2, 3));
var transformB = new Transform2D(new Position2D(5, 1));
transformA.Equals(transformB).Should().BeFalse();
2019-09-06 07:13:49 +00:00
}
[Test]
public void EqualsOperator()
{
var transformA = new Transform2D(new Position2D(0, 1), 4f, new Vector2(2, 1));
var transformB = new Transform2D(new Position2D(0, 1), 4f, new Vector2(2, 1));
(transformA == transformB).Should().BeTrue();
}
[Test]
public void NotEqualsOperator()
{
var transformA = new Transform2D(new Position2D(2, 3));
var transformB = new Transform2D(new Position2D(5, 1));
(transformA != transformB).Should().BeTrue();
}
2019-09-06 07:13:49 +00:00
[Test]
public void Compose()
{
2019-10-31 23:01:15 +00:00
var transformA = new Transform2D(new Position2D(4, 1), (float)System.Math.PI / 2, new Vector2(3, 1));
var transformB = new Transform2D(new Position2D(15, 2), (float)System.Math.PI / 4, new Vector2(1, 2));
2019-09-06 07:13:49 +00:00
2019-10-31 23:01:15 +00:00
transformA.Compose(transformB).Should().BeEquivalentTo(new Transform2D(new Position2D(19, 3), 3 * (float)System.Math.PI / 4, new Vector2(3, 2)));
2019-09-06 07:13:49 +00:00
}
[Test]
public void Transform()
{
var transformA = new Transform2D(Position2D.Zero, (float)System.Math.PI / 2, Vector2.One);
var transformB = new Transform2D(new Vector2(0, 2), (float)System.Math.PI, Vector2.One);
var transformC = new Transform2D(new Vector2(-2, 0), (float)System.Math.PI * 2, new Vector2(3, 1));
Vector2.Transform(new Vector2(-1, 0), transformA.TransformMatrix).Should().Be(new Vector2(0, -1));
Vector2.Transform(new Vector2(-1, 0), transformB.TransformMatrix).Should().Be(new Vector2(1, 2));
Vector2.Transform(new Vector2(-1, 0), transformC.TransformMatrix).Should().Be(new Vector2(-5, 0));
}
2019-09-06 07:13:49 +00:00
}
}