45 lines
1.8 KiB
C#
45 lines
1.8 KiB
C#
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using NavisworksTransport.Utils.CoordinateSystem;
|
|
|
|
namespace NavisworksTransport.UnitTests.CoordinateSystem
|
|
{
|
|
[TestClass]
|
|
public class ObjectStartPlacementRequestTests
|
|
{
|
|
[TestMethod]
|
|
public void TranslationOnly_ShouldPreserveInitialPoseAndClearRotationCorrection()
|
|
{
|
|
var request = ObjectStartPlacementRequest.TranslationOnly;
|
|
|
|
Assert.AreEqual(ObjectStartPlacementMode.PreserveInitialPose, request.PlacementMode);
|
|
Assert.IsTrue(request.PreserveInitialPose);
|
|
Assert.AreEqual(LocalEulerRotationCorrection.Zero, request.RotationCorrection);
|
|
Assert.AreEqual(0.0, request.VerticalLiftInMeters, 1e-9);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void RotationCorrectionRequest_ShouldKeepCorrectionAndAlignToPathPose()
|
|
{
|
|
var correction = new LocalEulerRotationCorrection(15.0, 30.0, 45.0);
|
|
|
|
var request = ObjectStartPlacementRequest.CreateRotationCorrection(correction, 0.35);
|
|
|
|
Assert.AreEqual(ObjectStartPlacementMode.AlignToPathPose, request.PlacementMode);
|
|
Assert.IsFalse(request.PreserveInitialPose);
|
|
Assert.AreEqual(correction, request.RotationCorrection);
|
|
Assert.AreEqual(0.35, request.VerticalLiftInMeters, 1e-9);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void TranslationOnlyRequest_ShouldKeepVerticalLift()
|
|
{
|
|
var request = ObjectStartPlacementRequest.CreateTranslationOnly(0.28);
|
|
|
|
Assert.AreEqual(ObjectStartPlacementMode.PreserveInitialPose, request.PlacementMode);
|
|
Assert.IsTrue(request.PreserveInitialPose);
|
|
Assert.AreEqual(LocalEulerRotationCorrection.Zero, request.RotationCorrection);
|
|
Assert.AreEqual(0.28, request.VerticalLiftInMeters, 1e-9);
|
|
}
|
|
}
|
|
}
|