NavisworksTransport/UnitTests/CoordinateSystem/ProjectReferenceFrameTests.cs

39 lines
1.6 KiB
C#

using Microsoft.VisualStudio.TestTools.UnitTesting;
using NavisworksTransport.Utils.CoordinateSystem;
using System.Numerics;
namespace NavisworksTransport.UnitTests.CoordinateSystem
{
[TestClass]
public class ProjectReferenceFrameTests
{
[TestMethod]
public void DefaultForYUp_ShouldUseCanonicalUpAndYUpModelConvention()
{
ProjectReferenceFrame frame = ProjectReferenceFrame.CreateDefault(CoordinateSystemType.YUp);
Assert.AreEqual(0.0, frame.SphereCenterInCanonical3.X, 1e-9);
Assert.AreEqual(0.0, frame.SphereCenterInCanonical3.Y, 1e-9);
Assert.AreEqual(0.0, frame.SphereCenterInCanonical3.Z, 1e-9);
Assert.AreEqual(0.0, frame.ProjectUpInCanonical3.X, 1e-9);
Assert.AreEqual(0.0, frame.ProjectUpInCanonical3.Y, 1e-9);
Assert.AreEqual(1.0, frame.ProjectUpInCanonical3.Z, 1e-9);
Assert.AreEqual(LocalAxisDirection.PositiveX, frame.DefaultModelAxisConvention.ForwardAxis);
Assert.AreEqual(LocalAxisDirection.PositiveY, frame.DefaultModelAxisConvention.UpAxis);
}
[TestMethod]
public void Constructor_ShouldNormalizeProjectUp()
{
var frame = new ProjectReferenceFrame(
new Vector3(1, 2, 3),
new Vector3(0, 0, 10),
ModelAxisConvention.CreateDefaultForHost(CoordinateSystemType.ZUp));
Assert.AreEqual(0.0, frame.ProjectUpInCanonical3.X, 1e-9);
Assert.AreEqual(0.0, frame.ProjectUpInCanonical3.Y, 1e-9);
Assert.AreEqual(1.0, frame.ProjectUpInCanonical3.Z, 1e-9);
}
}
}