using System;
using NUnit.Framework;
using Robust.Shared.GameObjects;
using Robust.Shared.Map;
using Robust.Shared.Maths;
using Robust.UnitTesting.Server;
namespace Robust.UnitTesting.Shared.GameObjects
{
[TestFixture]
public sealed class TransformComponent_Tests
{
///
/// Verify that WorldPosition and WorldRotation return the same result as the faster helper method.
///
[Test]
public void TestGetWorldMatches()
{
var server = RobustServerSimulation.NewSimulation().InitializeInstance();
var entManager = server.Resolve();
var mapManager = server.Resolve();
var mapId = mapManager.CreateMap();
var ent1 = entManager.SpawnEntity(null, new MapCoordinates(Vector2.Zero, mapId));
var ent2 = entManager.SpawnEntity(null, new MapCoordinates(new Vector2(100f, 0f), mapId));
var xform1 = entManager.GetComponent(ent1);
var xform2 = entManager.GetComponent(ent2);
xform2.AttachParent(xform1);
xform1.LocalRotation = MathF.PI;
var (worldPos, worldRot, worldMatrix) = xform1.GetWorldPositionRotationMatrix();
Assert.That(worldPos, Is.EqualTo(xform1.WorldPosition));
Assert.That(worldRot, Is.EqualTo(xform1.WorldRotation));
Assert.That(worldMatrix, Is.EqualTo(xform1.WorldMatrix));
}
}
}