public void TestToEdgeCase()
    {
        Vector3 to    = -Vector3.UnitZ;
        var     swing = Swing.To(CartesianAxis.Z, to);

        var swungTwistAxisV = swing.TransformTwistAxis(CartesianAxis.Z);

        MathAssert.AreEqual(to, swungTwistAxisV, Acc);
    }
    public void TestTo()
    {
        Vector3 to = Vector3.Normalize(new Vector3(1, -2, 3));

        var swing = Swing.To(CartesianAxis.Z, to);

        var swungTwistAxisV = swing.TransformTwistAxis(CartesianAxis.Z);

        MathAssert.AreEqual(to, swungTwistAxisV, Acc);

        var q                     = swing.AsQuaternion(CartesianAxis.Z);
        var twistAxisV            = new Vector3(0, 0, 1);
        var swungTwistAxisUsingQV = Vector3.Transform(twistAxisV, q);

        MathAssert.AreEqual(to, swungTwistAxisUsingQV, Acc);
    }