Abacus.DoublePrecision.Vector4Tests.TestStaticFn_TransformQuaternion_i C# (CSharp) Method

TestStaticFn_TransformQuaternion_i() private method

private TestStaticFn_TransformQuaternion_i ( ) : void
return void
        public void TestStaticFn_TransformQuaternion_i ()
        {
            Vector4 v1 = new Vector4 (10, 50, -20, 100);

            Quaternion quatmati = new Quaternion (0, 0, 0, 1); // identity
            Quaternion quatmat1 = new Quaternion (1, 0, 0, 0);
            Quaternion quatmat2 = new Quaternion (0, 1, 0, 0);
            Quaternion quatmat3 = new Quaternion (0, 0, 1, 0);

            var tests = new Tuple<Vector4, Quaternion, Vector4>[]
            {
                //vector -> transform -> expected
                new Tuple<Vector4, Quaternion, Vector4>(
                    v1, quatmati, v1),

                new Tuple<Vector4, Quaternion, Vector4>(
                    v1, quatmat1, new Vector4 ( 10, -50,  20, 100)),

                new Tuple<Vector4, Quaternion, Vector4>(
                    v1, quatmat2, new Vector4 (-10,  50,  20, 100)),

                new Tuple<Vector4, Quaternion, Vector4>(
                    v1, quatmat3, new Vector4 (-10, -50, -20, 100)),
            };

            foreach (var test in tests)
            {
                Vector4 vec = test.Item1;
                Quaternion trans = test.Item2;
                Vector4 expected = test.Item3;

                Vector4 result;
                Vector4.Transform (ref vec, ref trans, out result);
                AssertEqualWithinReason(result, expected);
            }
        }
Vector4Tests