diff options
Diffstat (limited to 'tests')
7 files changed, 1862 insertions, 1892 deletions
diff --git a/tests/auto/gui/math3d/qmatrixnxn/tst_qmatrixnxn.cpp b/tests/auto/gui/math3d/qmatrixnxn/tst_qmatrixnxn.cpp index c89d10a543..c72955e9c1 100644 --- a/tests/auto/gui/math3d/qmatrixnxn/tst_qmatrixnxn.cpp +++ b/tests/auto/gui/math3d/qmatrixnxn/tst_qmatrixnxn.cpp @@ -171,149 +171,161 @@ private slots: void metaTypes(); private: - static void setMatrix(QMatrix2x2& m, const qreal *values); - static void setMatrixDirect(QMatrix2x2& m, const qreal *values); - static bool isSame(const QMatrix2x2& m, const qreal *values); + static void setMatrix(QMatrix2x2& m, const float *values); + static void setMatrixDirect(QMatrix2x2& m, const float *values); + static bool isSame(const QMatrix2x2& m, const float *values); static bool isIdentity(const QMatrix2x2& m); - static void setMatrix(QMatrix3x3& m, const qreal *values); - static void setMatrixDirect(QMatrix3x3& m, const qreal *values); - static bool isSame(const QMatrix3x3& m, const qreal *values); + static void setMatrix(QMatrix3x3& m, const float *values); + static void setMatrixDirect(QMatrix3x3& m, const float *values); + static bool isSame(const QMatrix3x3& m, const float *values); static bool isIdentity(const QMatrix3x3& m); - static void setMatrix(QMatrix4x4& m, const qreal *values); - static void setMatrixDirect(QMatrix4x4& m, const qreal *values); - static bool isSame(const QMatrix4x4& m, const qreal *values); + static void setMatrix(QMatrix4x4& m, const float *values); + static void setMatrixDirect(QMatrix4x4& m, const float *values); + static bool isSame(const QMatrix4x4& m, const float *values); static bool isIdentity(const QMatrix4x4& m); - static void setMatrix(QMatrix4x3& m, const qreal *values); - static void setMatrixDirect(QMatrix4x3& m, const qreal *values); - static bool isSame(const QMatrix4x3& m, const qreal *values); + static void setMatrix(QMatrix4x3& m, const float *values); + static void setMatrixDirect(QMatrix4x3& m, const float *values); + static bool isSame(const QMatrix4x3& m, const float *values); static bool isIdentity(const QMatrix4x3& m); }; -static const qreal nullValues2[] = +static const float nullValues2[] = {0.0f, 0.0f, 0.0f, 0.0f}; -static qreal const identityValues2[16] = +static float const identityValues2[16] = {1.0f, 0.0f, 0.0f, 1.0f}; -static const qreal doubleIdentity2[] = +static const float doubleIdentity2[] = {2.0f, 0.0f, 0.0f, 2.0f}; -static qreal const uniqueValues2[16] = +static float const uniqueValues2[16] = {1.0f, 2.0f, 5.0f, 6.0f}; -static qreal const transposedValues2[16] = +static float const transposedValues2[16] = {1.0f, 5.0f, 2.0f, 6.0f}; -static const qreal nullValues3[] = +static const float nullValues3[] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}; -static qreal const identityValues3[16] = +static float const identityValues3[16] = {1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f}; -static const qreal doubleIdentity3[] = +static const float doubleIdentity3[] = {2.0f, 0.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 0.0f, 2.0f}; -static qreal const uniqueValues3[16] = +static float const uniqueValues3[16] = {1.0f, 2.0f, 3.0f, 5.0f, 6.0f, 7.0f, 9.0f, 10.0f, 11.0f}; -static qreal const transposedValues3[16] = +static float const transposedValues3[16] = {1.0f, 5.0f, 9.0f, 2.0f, 6.0f, 10.0f, 3.0f, 7.0f, 11.0f}; -static const qreal nullValues4[] = +static const float nullValues4[] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}; -static qreal const identityValues4[16] = +static float const identityValues4[16] = {1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; -static const qreal doubleIdentity4[] = +static const float doubleIdentity4[] = {2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f}; -static qreal const uniqueValues4[16] = +static float const uniqueValues4[16] = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f}; -static qreal const transposedValues4[16] = +static float const transposedValues4[16] = {1.0f, 5.0f, 9.0f, 13.0f, 2.0f, 6.0f, 10.0f, 14.0f, 3.0f, 7.0f, 11.0f, 15.0f, 4.0f, 8.0f, 12.0f, 16.0f}; -static const qreal nullValues4x3[] = +static const float nullValues4x3[] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}; -static qreal const identityValues4x3[12] = +static float const identityValues4x3[12] = {1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f}; -static qreal const doubleIdentity4x3[12] = +static float const doubleIdentity4x3[12] = {2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f, 0.0f}; -static qreal const uniqueValues4x3[12] = +static float const uniqueValues4x3[12] = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}; -static qreal const transposedValues3x4[12] = +static float const transposedValues3x4[12] = {1.0f, 5.0f, 9.0f, 2.0f, 6.0f, 10.0f, 3.0f, 7.0f, 11.0f, 4.0f, 8.0f, 12.0f}; +// We use a slightly better implementation of qFuzzyCompare here that +// handles the case where one of the values is exactly 0 +static inline bool fuzzyCompare(float p1, float p2) +{ + if (qFuzzyIsNull(p1)) + return qFuzzyIsNull(p2); + else if (qFuzzyIsNull(p2)) + return false; + else + return qFuzzyCompare(p1, p2); +} + // Set a matrix to a specified array of values, which are assumed // to be in row-major order. This sets the values using floating-point. -void tst_QMatrixNxN::setMatrix(QMatrix2x2& m, const qreal *values) +void tst_QMatrixNxN::setMatrix(QMatrix2x2& m, const float *values) { for (int row = 0; row < 2; ++row) for (int col = 0; col < 2; ++col) m(row, col) = values[row * 2 + col]; } -void tst_QMatrixNxN::setMatrix(QMatrix3x3& m, const qreal *values) +void tst_QMatrixNxN::setMatrix(QMatrix3x3& m, const float *values) { for (int row = 0; row < 3; ++row) for (int col = 0; col < 3; ++col) m(row, col) = values[row * 3 + col]; } -void tst_QMatrixNxN::setMatrix(QMatrix4x4& m, const qreal *values) +void tst_QMatrixNxN::setMatrix(QMatrix4x4& m, const float *values) { for (int row = 0; row < 4; ++row) for (int col = 0; col < 4; ++col) m(row, col) = values[row * 4 + col]; } -void tst_QMatrixNxN::setMatrix(QMatrix4x3& m, const qreal *values) +void tst_QMatrixNxN::setMatrix(QMatrix4x3& m, const float *values) { for (int row = 0; row < 3; ++row) for (int col = 0; col < 4; ++col) @@ -323,36 +335,36 @@ void tst_QMatrixNxN::setMatrix(QMatrix4x3& m, const qreal *values) // Set a matrix to a specified array of values, which are assumed // to be in row-major order. This sets the values directly into // the internal data() array. -void tst_QMatrixNxN::setMatrixDirect(QMatrix2x2& m, const qreal *values) +void tst_QMatrixNxN::setMatrixDirect(QMatrix2x2& m, const float *values) { - qreal *data = m.data(); + float *data = m.data(); for (int row = 0; row < 2; ++row) { for (int col = 0; col < 2; ++col) { data[row + col * 2] = values[row * 2 + col]; } } } -void tst_QMatrixNxN::setMatrixDirect(QMatrix3x3& m, const qreal *values) +void tst_QMatrixNxN::setMatrixDirect(QMatrix3x3& m, const float *values) { - qreal *data = m.data(); + float *data = m.data(); for (int row = 0; row < 3; ++row) { for (int col = 0; col < 3; ++col) { data[row + col * 3] = values[row * 3 + col]; } } } -void tst_QMatrixNxN::setMatrixDirect(QMatrix4x4& m, const qreal *values) +void tst_QMatrixNxN::setMatrixDirect(QMatrix4x4& m, const float *values) { - qreal *data = m.data(); + float *data = m.data(); for (int row = 0; row < 4; ++row) { for (int col = 0; col < 4; ++col) { data[row + col * 4] = values[row * 4 + col]; } } } -void tst_QMatrixNxN::setMatrixDirect(QMatrix4x3& m, const qreal *values) +void tst_QMatrixNxN::setMatrixDirect(QMatrix4x3& m, const float *values) { - qreal *data = m.data(); + float *data = m.data(); for (int row = 0; row < 3; ++row) { for (int col = 0; col < 4; ++col) { data[row + col * 3] = values[row * 4 + col]; @@ -360,31 +372,11 @@ void tst_QMatrixNxN::setMatrixDirect(QMatrix4x3& m, const qreal *values) } } -// QVector2/3/4D use float internally, which can sometimes lead -// to precision issues when converting to and from qreal during -// operations involving QMatrix4x4. This fuzzy compare is slightly -// "fuzzier" than the default qFuzzyCompare for qreal to compensate. -static bool fuzzyCompare(qreal x, qreal y) -{ - return qFuzzyIsNull((float)(x - y)); -} - -static bool fuzzyCompare(const QVector3D &v1, const QVector3D &v2) -{ - if (!fuzzyCompare(v1.x(), v2.x())) - return false; - if (!fuzzyCompare(v1.y(), v2.y())) - return false; - if (!fuzzyCompare(v1.z(), v2.z())) - return false; - return true; -} - // Determine if a matrix is the same as a specified array of values. // The values are assumed to be specified in row-major order. -bool tst_QMatrixNxN::isSame(const QMatrix2x2& m, const qreal *values) +bool tst_QMatrixNxN::isSame(const QMatrix2x2& m, const float *values) { - const qreal *mv = m.constData(); + const float *mv = m.constData(); for (int row = 0; row < 2; ++row) { for (int col = 0; col < 2; ++col) { // Check the values using the operator() function. @@ -403,9 +395,9 @@ bool tst_QMatrixNxN::isSame(const QMatrix2x2& m, const qreal *values) } return true; } -bool tst_QMatrixNxN::isSame(const QMatrix3x3& m, const qreal *values) +bool tst_QMatrixNxN::isSame(const QMatrix3x3& m, const float *values) { - const qreal *mv = m.constData(); + const float *mv = m.constData(); for (int row = 0; row < 3; ++row) { for (int col = 0; col < 3; ++col) { // Check the values using the operator() access function. @@ -424,9 +416,9 @@ bool tst_QMatrixNxN::isSame(const QMatrix3x3& m, const qreal *values) } return true; } -bool tst_QMatrixNxN::isSame(const QMatrix4x4& m, const qreal *values) +bool tst_QMatrixNxN::isSame(const QMatrix4x4& m, const float *values) { - const qreal *mv = m.constData(); + const float *mv = m.constData(); for (int row = 0; row < 4; ++row) { for (int col = 0; col < 4; ++col) { // Check the values using the operator() access function. @@ -445,9 +437,9 @@ bool tst_QMatrixNxN::isSame(const QMatrix4x4& m, const qreal *values) } return true; } -bool tst_QMatrixNxN::isSame(const QMatrix4x3& m, const qreal *values) +bool tst_QMatrixNxN::isSame(const QMatrix4x3& m, const float *values) { - const qreal *mv = m.constData(); + const float *mv = m.constData(); for (int row = 0; row < 3; ++row) { for (int col = 0; col < 4; ++col) { // Check the values using the operator() access function. @@ -514,7 +506,7 @@ void tst_QMatrixNxN::create2x2() QMatrix2x2 m6(uniqueValues2); QVERIFY(isSame(m6, uniqueValues2)); - qreal vals[4]; + float vals[4]; m6.copyDataTo(vals); for (int index = 0; index < 4; ++index) QCOMPARE(vals[index], uniqueValues2[index]); @@ -549,7 +541,7 @@ void tst_QMatrixNxN::create3x3() QMatrix3x3 m6(uniqueValues3); QVERIFY(isSame(m6, uniqueValues3)); - qreal vals[9]; + float vals[9]; m6.copyDataTo(vals); for (int index = 0; index < 9; ++index) QCOMPARE(vals[index], uniqueValues3[index]); @@ -584,7 +576,7 @@ void tst_QMatrixNxN::create4x4() QMatrix4x4 m6(uniqueValues4); QVERIFY(isSame(m6, uniqueValues4)); - qreal vals[16]; + float vals[16]; m6.copyDataTo(vals); for (int index = 0; index < 16; ++index) QCOMPARE(vals[index], uniqueValues4[index]); @@ -626,7 +618,7 @@ void tst_QMatrixNxN::create4x3() QMatrix4x3 m6(uniqueValues4x3); QVERIFY(isSame(m6, uniqueValues4x3)); - qreal vals[12]; + float vals[12]; m6.copyDataTo(vals); for (int index = 0; index < 12; ++index) QCOMPARE(vals[index], uniqueValues4x3[index]); @@ -795,7 +787,7 @@ void tst_QMatrixNxN::transposed4x3() { QMatrix4x3 m3(uniqueValues4x3); QMatrix3x4 m4 = m3.transposed(); - qreal values[12]; + float values[12]; m4.copyDataTo(values); for (int index = 0; index < 12; ++index) QCOMPARE(values[index], transposedValues3x4[index]); @@ -817,7 +809,7 @@ void tst_QMatrixNxN::add2x2_data() QTest::newRow("identity/identity") << (void *)identityValues2 << (void *)identityValues2 << (void *)doubleIdentity2; - static qreal const sumValues[16] = + static float const sumValues[16] = {2.0f, 7.0f, 7.0f, 12.0f}; QTest::newRow("unique") @@ -829,16 +821,16 @@ void tst_QMatrixNxN::add2x2() QFETCH(void *, m2Values); QFETCH(void *, m3Values); - QMatrix2x2 m1((const qreal *)m1Values); - QMatrix2x2 m2((const qreal *)m2Values); + QMatrix2x2 m1((const float *)m1Values); + QMatrix2x2 m2((const float *)m2Values); QMatrix2x2 m4(m1); m4 += m2; - QVERIFY(isSame(m4, (const qreal *)m3Values)); + QVERIFY(isSame(m4, (const float *)m3Values)); QMatrix2x2 m5; m5 = m1 + m2; - QVERIFY(isSame(m5, (const qreal *)m3Values)); + QVERIFY(isSame(m5, (const float *)m3Values)); } // Test matrix addition for 3x3 matrices. @@ -857,7 +849,7 @@ void tst_QMatrixNxN::add3x3_data() QTest::newRow("identity/identity") << (void *)identityValues3 << (void *)identityValues3 << (void *)doubleIdentity3; - static qreal const sumValues[16] = + static float const sumValues[16] = {2.0f, 7.0f, 12.0f, 7.0f, 12.0f, 17.0f, 12.0f, 17.0f, 22.0f}; @@ -870,16 +862,16 @@ void tst_QMatrixNxN::add3x3() QFETCH(void *, m2Values); QFETCH(void *, m3Values); - QMatrix3x3 m1((const qreal *)m1Values); - QMatrix3x3 m2((const qreal *)m2Values); + QMatrix3x3 m1((const float *)m1Values); + QMatrix3x3 m2((const float *)m2Values); QMatrix3x3 m4(m1); m4 += m2; - QVERIFY(isSame(m4, (const qreal *)m3Values)); + QVERIFY(isSame(m4, (const float *)m3Values)); QMatrix3x3 m5; m5 = m1 + m2; - QVERIFY(isSame(m5, (const qreal *)m3Values)); + QVERIFY(isSame(m5, (const float *)m3Values)); } // Test matrix addition for 4x4 matrices. @@ -898,7 +890,7 @@ void tst_QMatrixNxN::add4x4_data() QTest::newRow("identity/identity") << (void *)identityValues4 << (void *)identityValues4 << (void *)doubleIdentity4; - static qreal const sumValues[16] = + static float const sumValues[16] = {2.0f, 7.0f, 12.0f, 17.0f, 7.0f, 12.0f, 17.0f, 22.0f, 12.0f, 17.0f, 22.0f, 27.0f, @@ -912,16 +904,16 @@ void tst_QMatrixNxN::add4x4() QFETCH(void *, m2Values); QFETCH(void *, m3Values); - QMatrix4x4 m1((const qreal *)m1Values); - QMatrix4x4 m2((const qreal *)m2Values); + QMatrix4x4 m1((const float *)m1Values); + QMatrix4x4 m2((const float *)m2Values); QMatrix4x4 m4(m1); m4 += m2; - QVERIFY(isSame(m4, (const qreal *)m3Values)); + QVERIFY(isSame(m4, (const float *)m3Values)); QMatrix4x4 m5; m5 = m1 + m2; - QVERIFY(isSame(m5, (const qreal *)m3Values)); + QVERIFY(isSame(m5, (const float *)m3Values)); } // Test matrix addition for 4x3 matrices. @@ -940,7 +932,7 @@ void tst_QMatrixNxN::add4x3_data() QTest::newRow("identity/identity") << (void *)identityValues4x3 << (void *)identityValues4x3 << (void *)doubleIdentity4x3; - static qreal const sumValues[16] = + static float const sumValues[16] = {2.0f, 7.0f, 12.0f, 6.0f, 11.0f, 16.0f, 10.0f, 15.0f, 20.0f, 14.0f, 19.0f, 24.0f}; @@ -953,16 +945,16 @@ void tst_QMatrixNxN::add4x3() QFETCH(void *, m2Values); QFETCH(void *, m3Values); - QMatrix4x3 m1((const qreal *)m1Values); - QMatrix4x3 m2((const qreal *)m2Values); + QMatrix4x3 m1((const float *)m1Values); + QMatrix4x3 m2((const float *)m2Values); QMatrix4x3 m4(m1); m4 += m2; - QVERIFY(isSame(m4, (const qreal *)m3Values)); + QVERIFY(isSame(m4, (const float *)m3Values)); QMatrix4x3 m5; m5 = m1 + m2; - QVERIFY(isSame(m5, (const qreal *)m3Values)); + QVERIFY(isSame(m5, (const float *)m3Values)); } // Test matrix subtraction for 2x2 matrices. @@ -977,25 +969,25 @@ void tst_QMatrixNxN::subtract2x2() QFETCH(void *, m2Values); QFETCH(void *, m3Values); - QMatrix2x2 m1((const qreal *)m1Values); - QMatrix2x2 m2((const qreal *)m2Values); - QMatrix2x2 m3((const qreal *)m3Values); + QMatrix2x2 m1((const float *)m1Values); + QMatrix2x2 m2((const float *)m2Values); + QMatrix2x2 m3((const float *)m3Values); QMatrix2x2 m4(m3); m4 -= m1; - QVERIFY(isSame(m4, (const qreal *)m2Values)); + QVERIFY(isSame(m4, (const float *)m2Values)); QMatrix2x2 m5; m5 = m3 - m1; - QVERIFY(isSame(m5, (const qreal *)m2Values)); + QVERIFY(isSame(m5, (const float *)m2Values)); QMatrix2x2 m6(m3); m6 -= m2; - QVERIFY(isSame(m6, (const qreal *)m1Values)); + QVERIFY(isSame(m6, (const float *)m1Values)); QMatrix2x2 m7; m7 = m3 - m2; - QVERIFY(isSame(m7, (const qreal *)m1Values)); + QVERIFY(isSame(m7, (const float *)m1Values)); } // Test matrix subtraction for 3x3 matrices. @@ -1010,25 +1002,25 @@ void tst_QMatrixNxN::subtract3x3() QFETCH(void *, m2Values); QFETCH(void *, m3Values); - QMatrix3x3 m1((const qreal *)m1Values); - QMatrix3x3 m2((const qreal *)m2Values); - QMatrix3x3 m3((const qreal *)m3Values); + QMatrix3x3 m1((const float *)m1Values); + QMatrix3x3 m2((const float *)m2Values); + QMatrix3x3 m3((const float *)m3Values); QMatrix3x3 m4(m3); m4 -= m1; - QVERIFY(isSame(m4, (const qreal *)m2Values)); + QVERIFY(isSame(m4, (const float *)m2Values)); QMatrix3x3 m5; m5 = m3 - m1; - QVERIFY(isSame(m5, (const qreal *)m2Values)); + QVERIFY(isSame(m5, (const float *)m2Values)); QMatrix3x3 m6(m3); m6 -= m2; - QVERIFY(isSame(m6, (const qreal *)m1Values)); + QVERIFY(isSame(m6, (const float *)m1Values)); QMatrix3x3 m7; m7 = m3 - m2; - QVERIFY(isSame(m7, (const qreal *)m1Values)); + QVERIFY(isSame(m7, (const float *)m1Values)); } // Test matrix subtraction for 4x4 matrices. @@ -1043,25 +1035,25 @@ void tst_QMatrixNxN::subtract4x4() QFETCH(void *, m2Values); QFETCH(void *, m3Values); - QMatrix4x4 m1((const qreal *)m1Values); - QMatrix4x4 m2((const qreal *)m2Values); - QMatrix4x4 m3((const qreal *)m3Values); + QMatrix4x4 m1((const float *)m1Values); + QMatrix4x4 m2((const float *)m2Values); + QMatrix4x4 m3((const float *)m3Values); QMatrix4x4 m4(m3); m4 -= m1; - QVERIFY(isSame(m4, (const qreal *)m2Values)); + QVERIFY(isSame(m4, (const float *)m2Values)); QMatrix4x4 m5; m5 = m3 - m1; - QVERIFY(isSame(m5, (const qreal *)m2Values)); + QVERIFY(isSame(m5, (const float *)m2Values)); QMatrix4x4 m6(m3); m6 -= m2; - QVERIFY(isSame(m6, (const qreal *)m1Values)); + QVERIFY(isSame(m6, (const float *)m1Values)); QMatrix4x4 m7; m7 = m3 - m2; - QVERIFY(isSame(m7, (const qreal *)m1Values)); + QVERIFY(isSame(m7, (const float *)m1Values)); } // Test matrix subtraction for 4x3 matrices. @@ -1076,25 +1068,25 @@ void tst_QMatrixNxN::subtract4x3() QFETCH(void *, m2Values); QFETCH(void *, m3Values); - QMatrix4x3 m1((const qreal *)m1Values); - QMatrix4x3 m2((const qreal *)m2Values); - QMatrix4x3 m3((const qreal *)m3Values); + QMatrix4x3 m1((const float *)m1Values); + QMatrix4x3 m2((const float *)m2Values); + QMatrix4x3 m3((const float *)m3Values); QMatrix4x3 m4(m3); m4 -= m1; - QVERIFY(isSame(m4, (const qreal *)m2Values)); + QVERIFY(isSame(m4, (const float *)m2Values)); QMatrix4x3 m5; m5 = m3 - m1; - QVERIFY(isSame(m5, (const qreal *)m2Values)); + QVERIFY(isSame(m5, (const float *)m2Values)); QMatrix4x3 m6(m3); m6 -= m2; - QVERIFY(isSame(m6, (const qreal *)m1Values)); + QVERIFY(isSame(m6, (const float *)m1Values)); QMatrix4x3 m7; m7 = m3 - m2; - QVERIFY(isSame(m7, (const qreal *)m1Values)); + QVERIFY(isSame(m7, (const float *)m1Values)); } // Test matrix multiplication for 2x2 matrices. @@ -1119,10 +1111,10 @@ void tst_QMatrixNxN::multiply2x2_data() QTest::newRow("identity/unique") << (void *)identityValues2 << (void *)uniqueValues2 << (void *)uniqueValues2; - static qreal uniqueResult[4]; + static float uniqueResult[4]; for (int row = 0; row < 2; ++row) { for (int col = 0; col < 2; ++col) { - qreal sum = 0.0f; + float sum = 0.0f; for (int j = 0; j < 2; ++j) sum += uniqueValues2[row * 2 + j] * transposedValues2[j * 2 + col]; uniqueResult[row * 2 + col] = sum; @@ -1138,12 +1130,12 @@ void tst_QMatrixNxN::multiply2x2() QFETCH(void *, m2Values); QFETCH(void *, m3Values); - QMatrix2x2 m1((const qreal *)m1Values); - QMatrix2x2 m2((const qreal *)m2Values); + QMatrix2x2 m1((const float *)m1Values); + QMatrix2x2 m2((const float *)m2Values); QMatrix2x2 m5; m5 = m1 * m2; - QVERIFY(isSame(m5, (const qreal *)m3Values)); + QVERIFY(isSame(m5, (const float *)m3Values)); } // Test matrix multiplication for 3x3 matrices. @@ -1168,10 +1160,10 @@ void tst_QMatrixNxN::multiply3x3_data() QTest::newRow("identity/unique") << (void *)identityValues3 << (void *)uniqueValues3 << (void *)uniqueValues3; - static qreal uniqueResult[9]; + static float uniqueResult[9]; for (int row = 0; row < 3; ++row) { for (int col = 0; col < 3; ++col) { - qreal sum = 0.0f; + float sum = 0.0f; for (int j = 0; j < 3; ++j) sum += uniqueValues3[row * 3 + j] * transposedValues3[j * 3 + col]; uniqueResult[row * 3 + col] = sum; @@ -1187,12 +1179,12 @@ void tst_QMatrixNxN::multiply3x3() QFETCH(void *, m2Values); QFETCH(void *, m3Values); - QMatrix3x3 m1((const qreal *)m1Values); - QMatrix3x3 m2((const qreal *)m2Values); + QMatrix3x3 m1((const float *)m1Values); + QMatrix3x3 m2((const float *)m2Values); QMatrix3x3 m5; m5 = m1 * m2; - QVERIFY(isSame(m5, (const qreal *)m3Values)); + QVERIFY(isSame(m5, (const float *)m3Values)); } // Test matrix multiplication for 4x4 matrices. @@ -1217,10 +1209,10 @@ void tst_QMatrixNxN::multiply4x4_data() QTest::newRow("identity/unique") << (void *)identityValues4 << (void *)uniqueValues4 << (void *)uniqueValues4; - static qreal uniqueResult[16]; + static float uniqueResult[16]; for (int row = 0; row < 4; ++row) { for (int col = 0; col < 4; ++col) { - qreal sum = 0.0f; + float sum = 0.0f; for (int j = 0; j < 4; ++j) sum += uniqueValues4[row * 4 + j] * transposedValues4[j * 4 + col]; uniqueResult[row * 4 + col] = sum; @@ -1236,17 +1228,17 @@ void tst_QMatrixNxN::multiply4x4() QFETCH(void *, m2Values); QFETCH(void *, m3Values); - QMatrix4x4 m1((const qreal *)m1Values); - QMatrix4x4 m2((const qreal *)m2Values); + QMatrix4x4 m1((const float *)m1Values); + QMatrix4x4 m2((const float *)m2Values); QMatrix4x4 m4; m4 = m1; m4 *= m2; - QVERIFY(isSame(m4, (const qreal *)m3Values)); + QVERIFY(isSame(m4, (const float *)m3Values)); QMatrix4x4 m5; m5 = m1 * m2; - QVERIFY(isSame(m5, (const qreal *)m3Values)); + QVERIFY(isSame(m5, (const float *)m3Values)); } // Test matrix multiplication for 4x3 matrices. @@ -1265,10 +1257,10 @@ void tst_QMatrixNxN::multiply4x3_data() QTest::newRow("unique/null") << (void *)uniqueValues4x3 << (void *)nullValues4x3 << (void *)nullValues3; - static qreal uniqueResult[9]; + static float uniqueResult[9]; for (int row = 0; row < 3; ++row) { for (int col = 0; col < 3; ++col) { - qreal sum = 0.0f; + float sum = 0.0f; for (int j = 0; j < 4; ++j) sum += uniqueValues4x3[row * 4 + j] * transposedValues3x4[j * 3 + col]; uniqueResult[row * 3 + col] = sum; @@ -1284,243 +1276,243 @@ void tst_QMatrixNxN::multiply4x3() QFETCH(void *, m2Values); QFETCH(void *, m3Values); - QMatrix4x3 m1((const qreal *)m1Values); - QMatrix3x4 m2((const qreal *)m2Values); + QMatrix4x3 m1((const float *)m1Values); + QMatrix3x4 m2((const float *)m2Values); - QGenericMatrix<3, 3, qreal> m4; + QGenericMatrix<3, 3, float> m4; m4 = m1 * m2; - qreal values[9]; + float values[9]; m4.copyDataTo(values); for (int index = 0; index < 9; ++index) - QCOMPARE(values[index], ((const qreal *)m3Values)[index]); + QCOMPARE(values[index], ((const float *)m3Values)[index]); } // Test matrix multiplication by a factor for 2x2 matrices. void tst_QMatrixNxN::multiplyFactor2x2_data() { QTest::addColumn<void *>("m1Values"); - QTest::addColumn<qreal>("factor"); + QTest::addColumn<float>("factor"); QTest::addColumn<void *>("m2Values"); QTest::newRow("null") - << (void *)nullValues2 << (qreal)1.0f << (void *)nullValues2; + << (void *)nullValues2 << (float)1.0f << (void *)nullValues2; QTest::newRow("double identity") - << (void *)identityValues2 << (qreal)2.0f << (void *)doubleIdentity2; + << (void *)identityValues2 << (float)2.0f << (void *)doubleIdentity2; - static qreal const values[16] = + static float const values[16] = {1.0f, 2.0f, 5.0f, 6.0f}; - static qreal const doubleValues[16] = + static float const doubleValues[16] = {2.0f, 4.0f, 10.0f, 12.0f}; - static qreal const negDoubleValues[16] = + static float const negDoubleValues[16] = {-2.0f, -4.0f, -10.0f, -12.0f}; QTest::newRow("unique") - << (void *)values << (qreal)2.0f << (void *)doubleValues; + << (void *)values << (float)2.0f << (void *)doubleValues; QTest::newRow("neg") - << (void *)values << (qreal)-2.0f << (void *)negDoubleValues; + << (void *)values << (float)-2.0f << (void *)negDoubleValues; QTest::newRow("zero") - << (void *)values << (qreal)0.0f << (void *)nullValues4; + << (void *)values << (float)0.0f << (void *)nullValues4; } void tst_QMatrixNxN::multiplyFactor2x2() { QFETCH(void *, m1Values); - QFETCH(qreal, factor); + QFETCH(float, factor); QFETCH(void *, m2Values); - QMatrix2x2 m1((const qreal *)m1Values); + QMatrix2x2 m1((const float *)m1Values); QMatrix2x2 m3; m3 = m1; m3 *= factor; - QVERIFY(isSame(m3, (const qreal *)m2Values)); + QVERIFY(isSame(m3, (const float *)m2Values)); QMatrix2x2 m4; m4 = m1 * factor; - QVERIFY(isSame(m4, (const qreal *)m2Values)); + QVERIFY(isSame(m4, (const float *)m2Values)); QMatrix2x2 m5; m5 = factor * m1; - QVERIFY(isSame(m5, (const qreal *)m2Values)); + QVERIFY(isSame(m5, (const float *)m2Values)); } // Test matrix multiplication by a factor for 3x3 matrices. void tst_QMatrixNxN::multiplyFactor3x3_data() { QTest::addColumn<void *>("m1Values"); - QTest::addColumn<qreal>("factor"); + QTest::addColumn<float>("factor"); QTest::addColumn<void *>("m2Values"); QTest::newRow("null") - << (void *)nullValues3 << (qreal)1.0f << (void *)nullValues3; + << (void *)nullValues3 << (float)1.0f << (void *)nullValues3; QTest::newRow("double identity") - << (void *)identityValues3 << (qreal)2.0f << (void *)doubleIdentity3; + << (void *)identityValues3 << (float)2.0f << (void *)doubleIdentity3; - static qreal const values[16] = + static float const values[16] = {1.0f, 2.0f, 3.0f, 5.0f, 6.0f, 7.0f, 9.0f, 10.0f, 11.0f}; - static qreal const doubleValues[16] = + static float const doubleValues[16] = {2.0f, 4.0f, 6.0f, 10.0f, 12.0f, 14.0f, 18.0f, 20.0f, 22.0f}; - static qreal const negDoubleValues[16] = + static float const negDoubleValues[16] = {-2.0f, -4.0f, -6.0f, -10.0f, -12.0f, -14.0f, -18.0f, -20.0f, -22.0f}; QTest::newRow("unique") - << (void *)values << (qreal)2.0f << (void *)doubleValues; + << (void *)values << (float)2.0f << (void *)doubleValues; QTest::newRow("neg") - << (void *)values << (qreal)-2.0f << (void *)negDoubleValues; + << (void *)values << (float)-2.0f << (void *)negDoubleValues; QTest::newRow("zero") - << (void *)values << (qreal)0.0f << (void *)nullValues4; + << (void *)values << (float)0.0f << (void *)nullValues4; } void tst_QMatrixNxN::multiplyFactor3x3() { QFETCH(void *, m1Values); - QFETCH(qreal, factor); + QFETCH(float, factor); QFETCH(void *, m2Values); - QMatrix3x3 m1((const qreal *)m1Values); + QMatrix3x3 m1((const float *)m1Values); QMatrix3x3 m3; m3 = m1; m3 *= factor; - QVERIFY(isSame(m3, (const qreal *)m2Values)); + QVERIFY(isSame(m3, (const float *)m2Values)); QMatrix3x3 m4; m4 = m1 * factor; - QVERIFY(isSame(m4, (const qreal *)m2Values)); + QVERIFY(isSame(m4, (const float *)m2Values)); QMatrix3x3 m5; m5 = factor * m1; - QVERIFY(isSame(m5, (const qreal *)m2Values)); + QVERIFY(isSame(m5, (const float *)m2Values)); } // Test matrix multiplication by a factor for 4x4 matrices. void tst_QMatrixNxN::multiplyFactor4x4_data() { QTest::addColumn<void *>("m1Values"); - QTest::addColumn<qreal>("factor"); + QTest::addColumn<float>("factor"); QTest::addColumn<void *>("m2Values"); QTest::newRow("null") - << (void *)nullValues4 << (qreal)1.0f << (void *)nullValues4; + << (void *)nullValues4 << (float)1.0f << (void *)nullValues4; QTest::newRow("double identity") - << (void *)identityValues4 << (qreal)2.0f << (void *)doubleIdentity4; + << (void *)identityValues4 << (float)2.0f << (void *)doubleIdentity4; - static qreal const values[16] = + static float const values[16] = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f}; - static qreal const doubleValues[16] = + static float const doubleValues[16] = {2.0f, 4.0f, 6.0f, 8.0f, 10.0f, 12.0f, 14.0f, 16.0f, 18.0f, 20.0f, 22.0f, 24.0f, 26.0f, 28.0f, 30.0f, 32.0f}; - static qreal const negDoubleValues[16] = + static float const negDoubleValues[16] = {-2.0f, -4.0f, -6.0f, -8.0f, -10.0f, -12.0f, -14.0f, -16.0f, -18.0f, -20.0f, -22.0f, -24.0f, -26.0f, -28.0f, -30.0f, -32.0f}; QTest::newRow("unique") - << (void *)values << (qreal)2.0f << (void *)doubleValues; + << (void *)values << (float)2.0f << (void *)doubleValues; QTest::newRow("neg") - << (void *)values << (qreal)-2.0f << (void *)negDoubleValues; + << (void *)values << (float)-2.0f << (void *)negDoubleValues; QTest::newRow("zero") - << (void *)values << (qreal)0.0f << (void *)nullValues4; + << (void *)values << (float)0.0f << (void *)nullValues4; } void tst_QMatrixNxN::multiplyFactor4x4() { QFETCH(void *, m1Values); - QFETCH(qreal, factor); + QFETCH(float, factor); QFETCH(void *, m2Values); - QMatrix4x4 m1((const qreal *)m1Values); + QMatrix4x4 m1((const float *)m1Values); QMatrix4x4 m3; m3 = m1; m3 *= factor; - QVERIFY(isSame(m3, (const qreal *)m2Values)); + QVERIFY(isSame(m3, (const float *)m2Values)); QMatrix4x4 m4; m4 = m1 * factor; - QVERIFY(isSame(m4, (const qreal *)m2Values)); + QVERIFY(isSame(m4, (const float *)m2Values)); QMatrix4x4 m5; m5 = factor * m1; - QVERIFY(isSame(m5, (const qreal *)m2Values)); + QVERIFY(isSame(m5, (const float *)m2Values)); } // Test matrix multiplication by a factor for 4x3 matrices. void tst_QMatrixNxN::multiplyFactor4x3_data() { QTest::addColumn<void *>("m1Values"); - QTest::addColumn<qreal>("factor"); + QTest::addColumn<float>("factor"); QTest::addColumn<void *>("m2Values"); QTest::newRow("null") - << (void *)nullValues4x3 << (qreal)1.0f << (void *)nullValues4x3; + << (void *)nullValues4x3 << (float)1.0f << (void *)nullValues4x3; QTest::newRow("double identity") - << (void *)identityValues4x3 << (qreal)2.0f << (void *)doubleIdentity4x3; + << (void *)identityValues4x3 << (float)2.0f << (void *)doubleIdentity4x3; - static qreal const values[12] = + static float const values[12] = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}; - static qreal const doubleValues[12] = + static float const doubleValues[12] = {2.0f, 4.0f, 6.0f, 8.0f, 10.0f, 12.0f, 14.0f, 16.0f, 18.0f, 20.0f, 22.0f, 24.0f}; - static qreal const negDoubleValues[12] = + static float const negDoubleValues[12] = {-2.0f, -4.0f, -6.0f, -8.0f, -10.0f, -12.0f, -14.0f, -16.0f, -18.0f, -20.0f, -22.0f, -24.0f}; QTest::newRow("unique") - << (void *)values << (qreal)2.0f << (void *)doubleValues; + << (void *)values << (float)2.0f << (void *)doubleValues; QTest::newRow("neg") - << (void *)values << (qreal)-2.0f << (void *)negDoubleValues; + << (void *)values << (float)-2.0f << (void *)negDoubleValues; QTest::newRow("zero") - << (void *)values << (qreal)0.0f << (void *)nullValues4x3; + << (void *)values << (float)0.0f << (void *)nullValues4x3; } void tst_QMatrixNxN::multiplyFactor4x3() { QFETCH(void *, m1Values); - QFETCH(qreal, factor); + QFETCH(float, factor); QFETCH(void *, m2Values); - QMatrix4x3 m1((const qreal *)m1Values); + QMatrix4x3 m1((const float *)m1Values); QMatrix4x3 m3; m3 = m1; m3 *= factor; - QVERIFY(isSame(m3, (const qreal *)m2Values)); + QVERIFY(isSame(m3, (const float *)m2Values)); QMatrix4x3 m4; m4 = m1 * factor; - QVERIFY(isSame(m4, (const qreal *)m2Values)); + QVERIFY(isSame(m4, (const float *)m2Values)); QMatrix4x3 m5; m5 = factor * m1; - QVERIFY(isSame(m5, (const qreal *)m2Values)); + QVERIFY(isSame(m5, (const float *)m2Values)); } // Test matrix division by a factor for 2x2 matrices. @@ -1532,22 +1524,22 @@ void tst_QMatrixNxN::divideFactor2x2_data() void tst_QMatrixNxN::divideFactor2x2() { QFETCH(void *, m1Values); - QFETCH(qreal, factor); + QFETCH(float, factor); QFETCH(void *, m2Values); if (factor == 0.0f) return; - QMatrix2x2 m2((const qreal *)m2Values); + QMatrix2x2 m2((const float *)m2Values); QMatrix2x2 m3; m3 = m2; m3 /= factor; - QVERIFY(isSame(m3, (const qreal *)m1Values)); + QVERIFY(isSame(m3, (const float *)m1Values)); QMatrix2x2 m4; m4 = m2 / factor; - QVERIFY(isSame(m4, (const qreal *)m1Values)); + QVERIFY(isSame(m4, (const float *)m1Values)); } // Test matrix division by a factor for 3x3 matrices. @@ -1559,22 +1551,22 @@ void tst_QMatrixNxN::divideFactor3x3_data() void tst_QMatrixNxN::divideFactor3x3() { QFETCH(void *, m1Values); - QFETCH(qreal, factor); + QFETCH(float, factor); QFETCH(void *, m2Values); if (factor == 0.0f) return; - QMatrix3x3 m2((const qreal *)m2Values); + QMatrix3x3 m2((const float *)m2Values); QMatrix3x3 m3; m3 = m2; m3 /= factor; - QVERIFY(isSame(m3, (const qreal *)m1Values)); + QVERIFY(isSame(m3, (const float *)m1Values)); QMatrix3x3 m4; m4 = m2 / factor; - QVERIFY(isSame(m4, (const qreal *)m1Values)); + QVERIFY(isSame(m4, (const float *)m1Values)); } // Test matrix division by a factor for 4x4 matrices. @@ -1586,22 +1578,22 @@ void tst_QMatrixNxN::divideFactor4x4_data() void tst_QMatrixNxN::divideFactor4x4() { QFETCH(void *, m1Values); - QFETCH(qreal, factor); + QFETCH(float, factor); QFETCH(void *, m2Values); if (factor == 0.0f) return; - QMatrix4x4 m2((const qreal *)m2Values); + QMatrix4x4 m2((const float *)m2Values); QMatrix4x4 m3; m3 = m2; m3 /= factor; - QVERIFY(isSame(m3, (const qreal *)m1Values)); + QVERIFY(isSame(m3, (const float *)m1Values)); QMatrix4x4 m4; m4 = m2 / factor; - QVERIFY(isSame(m4, (const qreal *)m1Values)); + QVERIFY(isSame(m4, (const float *)m1Values)); } // Test matrix division by a factor for 4x3 matrices. @@ -1613,22 +1605,22 @@ void tst_QMatrixNxN::divideFactor4x3_data() void tst_QMatrixNxN::divideFactor4x3() { QFETCH(void *, m1Values); - QFETCH(qreal, factor); + QFETCH(float, factor); QFETCH(void *, m2Values); if (factor == 0.0f) return; - QMatrix4x3 m2((const qreal *)m2Values); + QMatrix4x3 m2((const float *)m2Values); QMatrix4x3 m3; m3 = m2; m3 /= factor; - QVERIFY(isSame(m3, (const qreal *)m1Values)); + QVERIFY(isSame(m3, (const float *)m1Values)); QMatrix4x3 m4; m4 = m2 / factor; - QVERIFY(isSame(m4, (const qreal *)m1Values)); + QVERIFY(isSame(m4, (const float *)m1Values)); } // Test matrix negation for 2x2 matrices. @@ -1641,11 +1633,11 @@ void tst_QMatrixNxN::negate2x2() { QFETCH(void *, m1Values); - const qreal *values = (const qreal *)m1Values; + const float *values = (const float *)m1Values; QMatrix2x2 m1(values); - qreal negated[4]; + float negated[4]; for (int index = 0; index < 4; ++index) negated[index] = -values[index]; @@ -1664,11 +1656,11 @@ void tst_QMatrixNxN::negate3x3() { QFETCH(void *, m1Values); - const qreal *values = (const qreal *)m1Values; + const float *values = (const float *)m1Values; QMatrix3x3 m1(values); - qreal negated[9]; + float negated[9]; for (int index = 0; index < 9; ++index) negated[index] = -values[index]; @@ -1687,11 +1679,11 @@ void tst_QMatrixNxN::negate4x4() { QFETCH(void *, m1Values); - const qreal *values = (const qreal *)m1Values; + const float *values = (const float *)m1Values; QMatrix4x4 m1(values); - qreal negated[16]; + float negated[16]; for (int index = 0; index < 16; ++index) negated[index] = -values[index]; @@ -1710,11 +1702,11 @@ void tst_QMatrixNxN::negate4x3() { QFETCH(void *, m1Values); - const qreal *values = (const qreal *)m1Values; + const float *values = (const float *)m1Values; QMatrix4x3 m1(values); - qreal negated[12]; + float negated[12]; for (int index = 0; index < 12; ++index) negated[index] = -values[index]; @@ -1730,14 +1722,14 @@ void tst_QMatrixNxN::negate4x3() struct Matrix3 { - qreal v[9]; + float v[9]; }; struct Matrix4 { - qreal v[16]; + float v[16]; }; -static qreal m3Determinant(const Matrix3& m) +static float m3Determinant(const Matrix3& m) { return m.v[0] * (m.v[4] * m.v[8] - m.v[7] * m.v[5]) - m.v[1] * (m.v[3] * m.v[8] - m.v[6] * m.v[5]) + @@ -1746,7 +1738,7 @@ static qreal m3Determinant(const Matrix3& m) static bool m3Inverse(const Matrix3& min, Matrix3& mout) { - qreal det = m3Determinant(min); + float det = m3Determinant(min); if (det == 0.0f) return false; mout.v[0] = (min.v[4] * min.v[8] - min.v[5] * min.v[7]) / det; @@ -1779,11 +1771,11 @@ static void m4Submatrix(const Matrix4& min, Matrix3& mout, int i, int j) } } -static qreal m4Determinant(const Matrix4& m) +static float m4Determinant(const Matrix4& m) { - qreal det; - qreal result = 0.0f; - qreal i = 1.0f; + float det; + float result = 0.0f; + float i = 1.0f; Matrix3 msub; for (int n = 0; n < 4; ++n, i *= -1.0f) { m4Submatrix(m, msub, 0, n); @@ -1795,11 +1787,11 @@ static qreal m4Determinant(const Matrix4& m) static void m4Inverse(const Matrix4& min, Matrix4& mout) { - qreal det = m4Determinant(min); + float det = m4Determinant(min); Matrix3 msub; for (int i = 0; i < 4; ++i) { for (int j = 0; j < 4; ++j) { - qreal sign = 1.0f - ((i + j) % 2) * 2.0f; + float sign = 1.0f - ((i + j) % 2) * 2.0f; m4Submatrix(min, msub, i, j); mout.v[i + j * 4] = (m3Determinant(msub) * sign) / det; } @@ -1868,7 +1860,7 @@ void tst_QMatrixNxN::inverted4x4() QFETCH(void *, m2Values); QFETCH(bool, invertible); - QMatrix4x4 m1((const qreal *)m1Values); + QMatrix4x4 m1((const float *)m1Values); if (invertible) QVERIFY(m1.determinant() != 0.0f); @@ -1876,14 +1868,14 @@ void tst_QMatrixNxN::inverted4x4() QVERIFY(m1.determinant() == 0.0f); Matrix4 m1alt; - memcpy(m1alt.v, (const qreal *)m1Values, sizeof(m1alt.v)); + memcpy(m1alt.v, (const float *)m1Values, sizeof(m1alt.v)); QCOMPARE(m1.determinant(), m4Determinant(m1alt)); QMatrix4x4 m2; bool inv; m2 = m1.inverted(&inv); - QVERIFY(isSame(m2, (const qreal *)m2Values)); + QVERIFY(isSame(m2, (const float *)m2Values)); if (invertible) { QVERIFY(inv); @@ -1906,7 +1898,7 @@ void tst_QMatrixNxN::inverted4x4() // Test again, after inferring the special matrix type. m1.optimize(); m2 = m1.inverted(&inv); - QVERIFY(isSame(m2, (const qreal *)m2Values)); + QVERIFY(isSame(m2, (const float *)m2Values)); QCOMPARE(inv, invertible); } @@ -1947,62 +1939,62 @@ void tst_QMatrixNxN::orthonormalInverse4x4() // Test the generation and use of 4x4 scale matrices. void tst_QMatrixNxN::scale4x4_data() { - QTest::addColumn<qreal>("x"); - QTest::addColumn<qreal>("y"); - QTest::addColumn<qreal>("z"); + QTest::addColumn<float>("x"); + QTest::addColumn<float>("y"); + QTest::addColumn<float>("z"); QTest::addColumn<void *>("resultValues"); - static const qreal nullScale[] = + static const float nullScale[] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (void *)nullScale; + << (float)0.0f << (float)0.0f << (float)0.0f << (void *)nullScale; QTest::newRow("identity") - << (qreal)1.0f << (qreal)1.0f << (qreal)1.0f << (void *)identityValues4; + << (float)1.0f << (float)1.0f << (float)1.0f << (void *)identityValues4; - static const qreal doubleScale[] = + static const float doubleScale[] = {2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; QTest::newRow("double") - << (qreal)2.0f << (qreal)2.0f << (qreal)2.0f << (void *)doubleScale; + << (float)2.0f << (float)2.0f << (float)2.0f << (void *)doubleScale; - static const qreal complexScale[] = + static const float complexScale[] = {2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 11.0f, 0.0f, 0.0f, 0.0f, 0.0f, -6.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; QTest::newRow("complex") - << (qreal)2.0f << (qreal)11.0f << (qreal)-6.5f << (void *)complexScale; + << (float)2.0f << (float)11.0f << (float)-6.5f << (void *)complexScale; - static const qreal complexScale2D[] = + static const float complexScale2D[] = {2.0f, 0.0f, 0.0f, 0.0f, 0.0f, -11.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; QTest::newRow("complex2D") - << (qreal)2.0f << (qreal)-11.0f << (qreal)1.0f << (void *)complexScale2D; + << (float)2.0f << (float)-11.0f << (float)1.0f << (void *)complexScale2D; } void tst_QMatrixNxN::scale4x4() { - QFETCH(qreal, x); - QFETCH(qreal, y); - QFETCH(qreal, z); + QFETCH(float, x); + QFETCH(float, y); + QFETCH(float, z); QFETCH(void *, resultValues); - QMatrix4x4 result((const qreal *)resultValues); + QMatrix4x4 result((const float *)resultValues); QMatrix4x4 m1; m1.scale(QVector3D(x, y, z)); - QVERIFY(isSame(m1, (const qreal *)resultValues)); + QVERIFY(isSame(m1, (const float *)resultValues)); QMatrix4x4 m2; m2.scale(x, y, z); - QVERIFY(isSame(m2, (const qreal *)resultValues)); + QVERIFY(isSame(m2, (const float *)resultValues)); if (z == 1.0f) { QMatrix4x4 m2b; @@ -2012,27 +2004,27 @@ void tst_QMatrixNxN::scale4x4() QVector3D v1(2.0f, 3.0f, -4.0f); QVector3D v2 = m1 * v1; - QCOMPARE(v2.x(), (qreal)(2.0f * x)); - QCOMPARE(v2.y(), (qreal)(3.0f * y)); - QCOMPARE(v2.z(), (qreal)(-4.0f * z)); + QCOMPARE(v2.x(), (float)(2.0f * x)); + QCOMPARE(v2.y(), (float)(3.0f * y)); + QCOMPARE(v2.z(), (float)(-4.0f * z)); v2 = v1 * m1; - QCOMPARE(v2.x(), (qreal)(2.0f * x)); - QCOMPARE(v2.y(), (qreal)(3.0f * y)); - QCOMPARE(v2.z(), (qreal)(-4.0f * z)); + QCOMPARE(v2.x(), (float)(2.0f * x)); + QCOMPARE(v2.y(), (float)(3.0f * y)); + QCOMPARE(v2.z(), (float)(-4.0f * z)); QVector4D v3(2.0f, 3.0f, -4.0f, 34.0f); QVector4D v4 = m1 * v3; - QCOMPARE(v4.x(), (qreal)(2.0f * x)); - QCOMPARE(v4.y(), (qreal)(3.0f * y)); - QCOMPARE(v4.z(), (qreal)(-4.0f * z)); - QCOMPARE(v4.w(), (qreal)34.0f); + QCOMPARE(v4.x(), (float)(2.0f * x)); + QCOMPARE(v4.y(), (float)(3.0f * y)); + QCOMPARE(v4.z(), (float)(-4.0f * z)); + QCOMPARE(v4.w(), (float)34.0f); v4 = v3 * m1; - QCOMPARE(v4.x(), (qreal)(2.0f * x)); - QCOMPARE(v4.y(), (qreal)(3.0f * y)); - QCOMPARE(v4.z(), (qreal)(-4.0f * z)); - QCOMPARE(v4.w(), (qreal)34.0f); + QCOMPARE(v4.x(), (float)(2.0f * x)); + QCOMPARE(v4.y(), (float)(3.0f * y)); + QCOMPARE(v4.z(), (float)(-4.0f * z)); + QCOMPARE(v4.w(), (float)34.0f); QPoint p1(2, 3); QPoint p2 = m1 * p1; @@ -2045,12 +2037,12 @@ void tst_QMatrixNxN::scale4x4() QPointF p3(2.0f, 3.0f); QPointF p4 = m1 * p3; - QCOMPARE(p4.x(), (qreal)(2.0f * x)); - QCOMPARE(p4.y(), (qreal)(3.0f * y)); + QCOMPARE(p4.x(), (float)(2.0f * x)); + QCOMPARE(p4.y(), (float)(3.0f * y)); p4 = p3 * m1; - QCOMPARE(p4.x(), (qreal)(2.0f * x)); - QCOMPARE(p4.y(), (qreal)(3.0f * y)); + QCOMPARE(p4.x(), (float)(2.0f * x)); + QCOMPARE(p4.y(), (float)(3.0f * y)); QMatrix4x4 m3(uniqueValues4); QMatrix4x4 m4(m3); @@ -2060,7 +2052,7 @@ void tst_QMatrixNxN::scale4x4() if (x == y && y == z) { QMatrix4x4 m5; m5.scale(x); - QVERIFY(isSame(m5, (const qreal *)resultValues)); + QVERIFY(isSame(m5, (const float *)resultValues)); } if (z == 1.0f) { @@ -2074,81 +2066,81 @@ void tst_QMatrixNxN::scale4x4() QMatrix4x4 m6; m6(0, 0) = 1.0f; m6.scale(QVector3D(x, y, z)); - QVERIFY(isSame(m6, (const qreal *)resultValues)); + QVERIFY(isSame(m6, (const float *)resultValues)); QMatrix4x4 m7; m7(0, 0) = 1.0f; m7.scale(x, y, z); - QVERIFY(isSame(m7, (const qreal *)resultValues)); + QVERIFY(isSame(m7, (const float *)resultValues)); if (x == y && y == z) { QMatrix4x4 m8; m8(0, 0) = 1.0f; m8.scale(x); - QVERIFY(isSame(m8, (const qreal *)resultValues)); + QVERIFY(isSame(m8, (const float *)resultValues)); m8.optimize(); m8.scale(1.0f); - QVERIFY(isSame(m8, (const qreal *)resultValues)); + QVERIFY(isSame(m8, (const float *)resultValues)); QMatrix4x4 m9; m9.translate(0.0f, 0.0f, 0.0f); m9.scale(x); - QVERIFY(isSame(m9, (const qreal *)resultValues)); + QVERIFY(isSame(m9, (const float *)resultValues)); } } // Test the generation and use of 4x4 translation matrices. void tst_QMatrixNxN::translate4x4_data() { - QTest::addColumn<qreal>("x"); - QTest::addColumn<qreal>("y"); - QTest::addColumn<qreal>("z"); + QTest::addColumn<float>("x"); + QTest::addColumn<float>("y"); + QTest::addColumn<float>("z"); QTest::addColumn<void *>("resultValues"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (void *)identityValues4; + << (float)0.0f << (float)0.0f << (float)0.0f << (void *)identityValues4; - static const qreal identityTranslate[] = + static const float identityTranslate[] = {1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f}; QTest::newRow("identity") - << (qreal)1.0f << (qreal)1.0f << (qreal)1.0f << (void *)identityTranslate; + << (float)1.0f << (float)1.0f << (float)1.0f << (void *)identityTranslate; - static const qreal complexTranslate[] = + static const float complexTranslate[] = {1.0f, 0.0f, 0.0f, 2.0f, 0.0f, 1.0f, 0.0f, 11.0f, 0.0f, 0.0f, 1.0f, -6.5f, 0.0f, 0.0f, 0.0f, 1.0f}; QTest::newRow("complex") - << (qreal)2.0f << (qreal)11.0f << (qreal)-6.5f << (void *)complexTranslate; + << (float)2.0f << (float)11.0f << (float)-6.5f << (void *)complexTranslate; - static const qreal complexTranslate2D[] = + static const float complexTranslate2D[] = {1.0f, 0.0f, 0.0f, 2.0f, 0.0f, 1.0f, 0.0f, -11.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; QTest::newRow("complex2D") - << (qreal)2.0f << (qreal)-11.0f << (qreal)0.0f << (void *)complexTranslate2D; + << (float)2.0f << (float)-11.0f << (float)0.0f << (void *)complexTranslate2D; } void tst_QMatrixNxN::translate4x4() { - QFETCH(qreal, x); - QFETCH(qreal, y); - QFETCH(qreal, z); + QFETCH(float, x); + QFETCH(float, y); + QFETCH(float, z); QFETCH(void *, resultValues); - QMatrix4x4 result((const qreal *)resultValues); + QMatrix4x4 result((const float *)resultValues); QMatrix4x4 m1; m1.translate(QVector3D(x, y, z)); - QVERIFY(isSame(m1, (const qreal *)resultValues)); + QVERIFY(isSame(m1, (const float *)resultValues)); QMatrix4x4 m2; m2.translate(x, y, z); - QVERIFY(isSame(m2, (const qreal *)resultValues)); + QVERIFY(isSame(m2, (const float *)resultValues)); if (z == 0.0f) { QMatrix4x4 m2b; @@ -2158,23 +2150,23 @@ void tst_QMatrixNxN::translate4x4() QVector3D v1(2.0f, 3.0f, -4.0f); QVector3D v2 = m1 * v1; - QCOMPARE(v2.x(), (qreal)(2.0f + x)); - QCOMPARE(v2.y(), (qreal)(3.0f + y)); - QCOMPARE(v2.z(), (qreal)(-4.0f + z)); + QCOMPARE(v2.x(), (float)(2.0f + x)); + QCOMPARE(v2.y(), (float)(3.0f + y)); + QCOMPARE(v2.z(), (float)(-4.0f + z)); QVector4D v3(2.0f, 3.0f, -4.0f, 1.0f); QVector4D v4 = m1 * v3; - QCOMPARE(v4.x(), (qreal)(2.0f + x)); - QCOMPARE(v4.y(), (qreal)(3.0f + y)); - QCOMPARE(v4.z(), (qreal)(-4.0f + z)); - QCOMPARE(v4.w(), (qreal)1.0f); + QCOMPARE(v4.x(), (float)(2.0f + x)); + QCOMPARE(v4.y(), (float)(3.0f + y)); + QCOMPARE(v4.z(), (float)(-4.0f + z)); + QCOMPARE(v4.w(), (float)1.0f); QVector4D v5(2.0f, 3.0f, -4.0f, 34.0f); QVector4D v6 = m1 * v5; - QCOMPARE(v6.x(), (qreal)(2.0f + x * 34.0f)); - QCOMPARE(v6.y(), (qreal)(3.0f + y * 34.0f)); - QCOMPARE(v6.z(), (qreal)(-4.0f + z * 34.0f)); - QCOMPARE(v6.w(), (qreal)34.0f); + QCOMPARE(v6.x(), (float)(2.0f + x * 34.0f)); + QCOMPARE(v6.y(), (float)(3.0f + y * 34.0f)); + QCOMPARE(v6.z(), (float)(-4.0f + z * 34.0f)); + QCOMPARE(v6.w(), (float)34.0f); QPoint p1(2, 3); QPoint p2 = m1 * p1; @@ -2183,8 +2175,8 @@ void tst_QMatrixNxN::translate4x4() QPointF p3(2.0f, 3.0f); QPointF p4 = m1 * p3; - QCOMPARE(p4.x(), (qreal)(2.0f + x)); - QCOMPARE(p4.y(), (qreal)(3.0f + y)); + QCOMPARE(p4.x(), (float)(2.0f + x)); + QCOMPARE(p4.y(), (float)(3.0f + y)); QMatrix4x4 m3(uniqueValues4); QMatrix4x4 m4(m3); @@ -2201,116 +2193,116 @@ void tst_QMatrixNxN::translate4x4() // Test the generation and use of 4x4 rotation matrices. void tst_QMatrixNxN::rotate4x4_data() { - QTest::addColumn<qreal>("angle"); - QTest::addColumn<qreal>("x"); - QTest::addColumn<qreal>("y"); - QTest::addColumn<qreal>("z"); + QTest::addColumn<float>("angle"); + QTest::addColumn<float>("x"); + QTest::addColumn<float>("y"); + QTest::addColumn<float>("z"); QTest::addColumn<void *>("resultValues"); - static const qreal nullRotate[] = + static const float nullRotate[] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; QTest::newRow("null") - << (qreal)90.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f + << (float)90.0f + << (float)0.0f << (float)0.0f << (float)0.0f << (void *)nullRotate; - static const qreal noRotate[] = + static const float noRotate[] = {1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; QTest::newRow("zerodegrees") - << (qreal)0.0f - << (qreal)2.0f << (qreal)3.0f << (qreal)-4.0f + << (float)0.0f + << (float)2.0f << (float)3.0f << (float)-4.0f << (void *)noRotate; - static const qreal xRotate[] = + static const float xRotate[] = {1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; QTest::newRow("xrotate") - << (qreal)90.0f - << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f + << (float)90.0f + << (float)1.0f << (float)0.0f << (float)0.0f << (void *)xRotate; - static const qreal xRotateNeg[] = + static const float xRotateNeg[] = {1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; QTest::newRow("-xrotate") - << (qreal)90.0f - << (qreal)-1.0f << (qreal)0.0f << (qreal)0.0f + << (float)90.0f + << (float)-1.0f << (float)0.0f << (float)0.0f << (void *)xRotateNeg; - static const qreal yRotate[] = + static const float yRotate[] = {0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; QTest::newRow("yrotate") - << (qreal)90.0f - << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f + << (float)90.0f + << (float)0.0f << (float)1.0f << (float)0.0f << (void *)yRotate; - static const qreal yRotateNeg[] = + static const float yRotateNeg[] = {0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; QTest::newRow("-yrotate") - << (qreal)90.0f - << (qreal)0.0f << (qreal)-1.0f << (qreal)0.0f + << (float)90.0f + << (float)0.0f << (float)-1.0f << (float)0.0f << (void *)yRotateNeg; - static const qreal zRotate[] = + static const float zRotate[] = {0.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; QTest::newRow("zrotate") - << (qreal)90.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f + << (float)90.0f + << (float)0.0f << (float)0.0f << (float)1.0f << (void *)zRotate; - static const qreal zRotateNeg[] = + static const float zRotateNeg[] = {0.0f, 1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; QTest::newRow("-zrotate") - << (qreal)90.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)-1.0f + << (float)90.0f + << (float)0.0f << (float)0.0f << (float)-1.0f << (void *)zRotateNeg; // Algorithm from http://en.wikipedia.org/wiki/Rotation_matrix. // Deliberately different from the one in the code for cross-checking. - static qreal complexRotate[16]; - qreal x = 1.0f; - qreal y = 2.0f; - qreal z = -6.0f; - qreal angle = -45.0f; - qreal c = qCos(angle * M_PI / 180.0f); - qreal s = qSin(angle * M_PI / 180.0f); - qreal len = qSqrt(x * x + y * y + z * z); - qreal xu = x / len; - qreal yu = y / len; - qreal zu = z / len; - complexRotate[0] = (qreal)((1 - xu * xu) * c + xu * xu); - complexRotate[1] = (qreal)(-zu * s - xu * yu * c + xu * yu); - complexRotate[2] = (qreal)(yu * s - xu * zu * c + xu * zu); + static float complexRotate[16]; + float x = 1.0f; + float y = 2.0f; + float z = -6.0f; + float angle = -45.0f; + float c = qCos(angle * M_PI / 180.0f); + float s = qSin(angle * M_PI / 180.0f); + float len = sqrtf(x * x + y * y + z * z); + float xu = x / len; + float yu = y / len; + float zu = z / len; + complexRotate[0] = (float)((1 - xu * xu) * c + xu * xu); + complexRotate[1] = (float)(-zu * s - xu * yu * c + xu * yu); + complexRotate[2] = (float)(yu * s - xu * zu * c + xu * zu); complexRotate[3] = 0; - complexRotate[4] = (qreal)(zu * s - xu * yu * c + xu * yu); - complexRotate[5] = (qreal)((1 - yu * yu) * c + yu * yu); - complexRotate[6] = (qreal)(-xu * s - yu * zu * c + yu * zu); + complexRotate[4] = (float)(zu * s - xu * yu * c + xu * yu); + complexRotate[5] = (float)((1 - yu * yu) * c + yu * yu); + complexRotate[6] = (float)(-xu * s - yu * zu * c + yu * zu); complexRotate[7] = 0; - complexRotate[8] = (qreal)(-yu * s - xu * zu * c + xu * zu); - complexRotate[9] = (qreal)(xu * s - yu * zu * c + yu * zu); - complexRotate[10] = (qreal)((1 - zu * zu) * c + zu * zu); + complexRotate[8] = (float)(-yu * s - xu * zu * c + xu * zu); + complexRotate[9] = (float)(xu * s - yu * zu * c + yu * zu); + complexRotate[10] = (float)((1 - zu * zu) * c + zu * zu); complexRotate[11] = 0; complexRotate[12] = 0; complexRotate[13] = 0; @@ -2318,25 +2310,25 @@ void tst_QMatrixNxN::rotate4x4_data() complexRotate[15] = 1; QTest::newRow("complex") - << (qreal)angle - << (qreal)x << (qreal)y << (qreal)z + << (float)angle + << (float)x << (float)y << (float)z << (void *)complexRotate; } void tst_QMatrixNxN::rotate4x4() { - QFETCH(qreal, angle); - QFETCH(qreal, x); - QFETCH(qreal, y); - QFETCH(qreal, z); + QFETCH(float, angle); + QFETCH(float, x); + QFETCH(float, y); + QFETCH(float, z); QFETCH(void *, resultValues); QMatrix4x4 m1; m1.rotate(angle, QVector3D(x, y, z)); - QVERIFY(isSame(m1, (const qreal *)resultValues)); + QVERIFY(isSame(m1, (const float *)resultValues)); QMatrix4x4 m2; m2.rotate(angle, x, y, z); - QVERIFY(isSame(m2, (const qreal *)resultValues)); + QVERIFY(isSame(m2, (const float *)resultValues)); QMatrix4x4 m3(uniqueValues4); QMatrix4x4 m4(m3); @@ -2347,40 +2339,40 @@ void tst_QMatrixNxN::rotate4x4() if (x != 0 || y != 0 || z != 0) { QMatrix4x4 m5; m5.rotate(QQuaternion::fromAxisAndAngle(QVector3D(x, y, z), angle)); - QVERIFY(isSame(m5, (const qreal *)resultValues)); + QVERIFY(isSame(m5, (const float *)resultValues)); } #define ROTATE4(xin,yin,zin,win,xout,yout,zout,wout) \ do { \ - xout = ((const qreal *)resultValues)[0] * xin + \ - ((const qreal *)resultValues)[1] * yin + \ - ((const qreal *)resultValues)[2] * zin + \ - ((const qreal *)resultValues)[3] * win; \ - yout = ((const qreal *)resultValues)[4] * xin + \ - ((const qreal *)resultValues)[5] * yin + \ - ((const qreal *)resultValues)[6] * zin + \ - ((const qreal *)resultValues)[7] * win; \ - zout = ((const qreal *)resultValues)[8] * xin + \ - ((const qreal *)resultValues)[9] * yin + \ - ((const qreal *)resultValues)[10] * zin + \ - ((const qreal *)resultValues)[11] * win; \ - wout = ((const qreal *)resultValues)[12] * xin + \ - ((const qreal *)resultValues)[13] * yin + \ - ((const qreal *)resultValues)[14] * zin + \ - ((const qreal *)resultValues)[15] * win; \ + xout = ((const float *)resultValues)[0] * xin + \ + ((const float *)resultValues)[1] * yin + \ + ((const float *)resultValues)[2] * zin + \ + ((const float *)resultValues)[3] * win; \ + yout = ((const float *)resultValues)[4] * xin + \ + ((const float *)resultValues)[5] * yin + \ + ((const float *)resultValues)[6] * zin + \ + ((const float *)resultValues)[7] * win; \ + zout = ((const float *)resultValues)[8] * xin + \ + ((const float *)resultValues)[9] * yin + \ + ((const float *)resultValues)[10] * zin + \ + ((const float *)resultValues)[11] * win; \ + wout = ((const float *)resultValues)[12] * xin + \ + ((const float *)resultValues)[13] * yin + \ + ((const float *)resultValues)[14] * zin + \ + ((const float *)resultValues)[15] * win; \ } while (0) // Rotate various test vectors using the straight-forward approach. - qreal v1x, v1y, v1z, v1w; + float v1x, v1y, v1z, v1w; ROTATE4(2.0f, 3.0f, -4.0f, 1.0f, v1x, v1y, v1z, v1w); v1x /= v1w; v1y /= v1w; v1z /= v1w; - qreal v3x, v3y, v3z, v3w; + float v3x, v3y, v3z, v3w; ROTATE4(2.0f, 3.0f, -4.0f, 1.0f, v3x, v3y, v3z, v3w); - qreal v5x, v5y, v5z, v5w; + float v5x, v5y, v5z, v5w; ROTATE4(2.0f, 3.0f, -4.0f, 34.0f, v5x, v5y, v5z, v5w); - qreal p1x, p1y, p1z, p1w; + float p1x, p1y, p1z, p1w; ROTATE4(2.0f, 3.0f, 0.0f, 1.0f, p1x, p1y, p1z, p1w); p1x /= p1w; p1y /= p1w; @@ -2388,23 +2380,23 @@ void tst_QMatrixNxN::rotate4x4() QVector3D v1(2.0f, 3.0f, -4.0f); QVector3D v2 = m1 * v1; - QVERIFY(fuzzyCompare(v2.x(), v1x)); - QVERIFY(fuzzyCompare(v2.y(), v1y)); - QVERIFY(fuzzyCompare(v2.z(), v1z)); + QVERIFY(qFuzzyCompare(v2.x(), v1x)); + QVERIFY(qFuzzyCompare(v2.y(), v1y)); + QVERIFY(qFuzzyCompare(v2.z(), v1z)); QVector4D v3(2.0f, 3.0f, -4.0f, 1.0f); QVector4D v4 = m1 * v3; - QVERIFY(fuzzyCompare(v4.x(), v3x)); - QVERIFY(fuzzyCompare(v4.y(), v3y)); - QVERIFY(fuzzyCompare(v4.z(), v3z)); - QVERIFY(fuzzyCompare(v4.w(), v3w)); + QVERIFY(qFuzzyCompare(v4.x(), v3x)); + QVERIFY(qFuzzyCompare(v4.y(), v3y)); + QVERIFY(qFuzzyCompare(v4.z(), v3z)); + QVERIFY(qFuzzyCompare(v4.w(), v3w)); QVector4D v5(2.0f, 3.0f, -4.0f, 34.0f); QVector4D v6 = m1 * v5; - QVERIFY(fuzzyCompare(v6.x(), v5x)); - QVERIFY(fuzzyCompare(v6.y(), v5y)); - QVERIFY(fuzzyCompare(v6.z(), v5z)); - QVERIFY(fuzzyCompare(v6.w(), v5w)); + QVERIFY(qFuzzyCompare(v6.x(), v5x)); + QVERIFY(qFuzzyCompare(v6.y(), v5y)); + QVERIFY(qFuzzyCompare(v6.z(), v5z)); + QVERIFY(qFuzzyCompare(v6.w(), v5w)); QPoint p1(2, 3); QPoint p2 = m1 * p1; @@ -2413,15 +2405,15 @@ void tst_QMatrixNxN::rotate4x4() QPointF p3(2.0f, 3.0f); QPointF p4 = m1 * p3; - QVERIFY(fuzzyCompare(p4.x(), p1x)); - QVERIFY(fuzzyCompare(p4.y(), p1y)); + QVERIFY(qFuzzyCompare(float(p4.x()), p1x)); + QVERIFY(qFuzzyCompare(float(p4.y()), p1y)); if (x != 0 || y != 0 || z != 0) { QQuaternion q = QQuaternion::fromAxisAndAngle(QVector3D(x, y, z), angle); QVector3D vq = q.rotatedVector(v1); - QVERIFY(fuzzyCompare(vq.x(), v1x)); - QVERIFY(fuzzyCompare(vq.y(), v1y)); - QVERIFY(fuzzyCompare(vq.z(), v1z)); + QVERIFY(qFuzzyCompare(vq.x(), v1x)); + QVERIFY(qFuzzyCompare(vq.y(), v1y)); + QVERIFY(qFuzzyCompare(vq.z(), v1z)); } } @@ -2429,7 +2421,7 @@ static bool isSame(const QMatrix3x3& m1, const Matrix3& m2) { for (int row = 0; row < 3; ++row) { for (int col = 0; col < 3; ++col) { - if (!fuzzyCompare(m1(row, col), m2.v[row * 3 + col])) + if (!qFuzzyCompare(m1(row, col), m2.v[row * 3 + col])) return false; } } @@ -2446,37 +2438,37 @@ void tst_QMatrixNxN::normalMatrix_data() QTest::newRow("unique") << (void *)uniqueValues4; // Not invertible because determinant == 0. - static qreal const translateValues[16] = + static float const translateValues[16] = {1.0f, 0.0f, 0.0f, 4.0f, 0.0f, 1.0f, 0.0f, 5.0f, 0.0f, 0.0f, 1.0f, -3.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - static qreal const scaleValues[16] = + static float const scaleValues[16] = {2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 7.0f, 0.0f, 0.0f, 0.0f, 0.0f, 9.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - static qreal const bothValues[16] = + static float const bothValues[16] = {2.0f, 0.0f, 0.0f, 4.0f, 0.0f, 7.0f, 0.0f, 5.0f, 0.0f, 0.0f, 9.0f, -3.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - static qreal const rotateValues[16] = + static float const rotateValues[16] = {0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - static qreal const nullScaleValues1[16] = + static float const nullScaleValues1[16] = {0.0f, 0.0f, 0.0f, 4.0f, 0.0f, 7.0f, 0.0f, 5.0f, 0.0f, 0.0f, 9.0f, -3.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - static qreal const nullScaleValues2[16] = + static float const nullScaleValues2[16] = {2.0f, 0.0f, 0.0f, 4.0f, 0.0f, 0.0f, 0.0f, 5.0f, 0.0f, 0.0f, 9.0f, -3.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - static qreal const nullScaleValues3[16] = + static float const nullScaleValues3[16] = {2.0f, 0.0f, 0.0f, 4.0f, 0.0f, 7.0f, 0.0f, 5.0f, 0.0f, 0.0f, 0.0f, -3.0f, @@ -2493,7 +2485,7 @@ void tst_QMatrixNxN::normalMatrix_data() void tst_QMatrixNxN::normalMatrix() { QFETCH(void *, mValues); - const qreal *values = (const qreal *)mValues; + const float *values = (const float *)mValues; // Compute the expected answer the long way. Matrix3 min; @@ -2533,42 +2525,42 @@ void tst_QMatrixNxN::normalMatrix() // Test optimized transformations on 4x4 matrices. void tst_QMatrixNxN::optimizedTransforms() { - static qreal const translateValues[16] = + static float const translateValues[16] = {1.0f, 0.0f, 0.0f, 4.0f, 0.0f, 1.0f, 0.0f, 5.0f, 0.0f, 0.0f, 1.0f, -3.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - static qreal const translateDoubleValues[16] = + static float const translateDoubleValues[16] = {1.0f, 0.0f, 0.0f, 8.0f, 0.0f, 1.0f, 0.0f, 10.0f, 0.0f, 0.0f, 1.0f, -6.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - static qreal const scaleValues[16] = + static float const scaleValues[16] = {2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 7.0f, 0.0f, 0.0f, 0.0f, 0.0f, 9.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - static qreal const scaleDoubleValues[16] = + static float const scaleDoubleValues[16] = {4.0f, 0.0f, 0.0f, 0.0f, 0.0f, 49.0f, 0.0f, 0.0f, 0.0f, 0.0f, 81.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - static qreal const bothValues[16] = + static float const bothValues[16] = {2.0f, 0.0f, 0.0f, 4.0f, 0.0f, 7.0f, 0.0f, 5.0f, 0.0f, 0.0f, 9.0f, -3.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - static qreal const bothReverseValues[16] = + static float const bothReverseValues[16] = {2.0f, 0.0f, 0.0f, 4.0f * 2.0f, 0.0f, 7.0f, 0.0f, 5.0f * 7.0f, 0.0f, 0.0f, 9.0f, -3.0f * 9.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - static qreal const bothThenTranslateValues[16] = + static float const bothThenTranslateValues[16] = {2.0f, 0.0f, 0.0f, 4.0f + 2.0f * 4.0f, 0.0f, 7.0f, 0.0f, 5.0f + 7.0f * 5.0f, 0.0f, 0.0f, 9.0f, -3.0f + 9.0f * -3.0f, 0.0f, 0.0f, 0.0f, 1.0f}; - static qreal const bothThenScaleValues[16] = + static float const bothThenScaleValues[16] = {4.0f, 0.0f, 0.0f, 4.0f, 0.0f, 49.0f, 0.0f, 5.0f, 0.0f, 0.0f, 81.0f, -3.0f, @@ -2651,17 +2643,17 @@ void tst_QMatrixNxN::ortho() QPointF p3 = m1 * QPointF(0, 150); QPointF p4 = m1 * QPointF(300, 150); QVector3D p5 = m1 * QVector3D(300, 150, 1); - QVERIFY(fuzzyCompare(p1.x(), -1.0)); - QVERIFY(fuzzyCompare(p1.y(), 1.0)); - QVERIFY(fuzzyCompare(p2.x(), 1.0)); - QVERIFY(fuzzyCompare(p2.y(), 1.0)); - QVERIFY(fuzzyCompare(p3.x(), -1.0)); - QVERIFY(fuzzyCompare(p3.y(), -1.0)); - QVERIFY(fuzzyCompare(p4.x(), 1.0)); - QVERIFY(fuzzyCompare(p4.y(), -1.0)); - QVERIFY(fuzzyCompare(p5.x(), (qreal)1.0)); - QVERIFY(fuzzyCompare(p5.y(), (qreal)-1.0)); - QVERIFY(fuzzyCompare(p5.z(), (qreal)-1.0)); + QVERIFY(qFuzzyCompare(float(p1.x()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p1.y()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p2.x()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p2.y()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p3.x()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p3.y()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p4.x()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p4.y()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p5.x()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p5.y()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p5.z()), -1.0f)); QMatrix4x4 m2; m2.ortho(QRectF(0, 0, 300, 150)); @@ -2670,17 +2662,17 @@ void tst_QMatrixNxN::ortho() p3 = m2 * QPointF(0, 150); p4 = m2 * QPointF(300, 150); p5 = m2 * QVector3D(300, 150, 1); - QVERIFY(fuzzyCompare(p1.x(), -1.0)); - QVERIFY(fuzzyCompare(p1.y(), 1.0)); - QVERIFY(fuzzyCompare(p2.x(), 1.0)); - QVERIFY(fuzzyCompare(p2.y(), 1.0)); - QVERIFY(fuzzyCompare(p3.x(), -1.0)); - QVERIFY(fuzzyCompare(p3.y(), -1.0)); - QVERIFY(fuzzyCompare(p4.x(), 1.0)); - QVERIFY(fuzzyCompare(p4.y(), -1.0)); - QVERIFY(fuzzyCompare(p5.x(), (qreal)1.0)); - QVERIFY(fuzzyCompare(p5.y(), (qreal)-1.0)); - QVERIFY(fuzzyCompare(p5.z(), (qreal)-1.0)); + QVERIFY(qFuzzyCompare(float(p1.x()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p1.y()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p2.x()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p2.y()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p3.x()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p3.y()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p4.x()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p4.y()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p5.x()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p5.y()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p5.z()), -1.0f)); QMatrix4x4 m3; m3.ortho(0, 300, 150, 0, -1, 1); @@ -2689,17 +2681,17 @@ void tst_QMatrixNxN::ortho() p3 = m3 * QPointF(0, 150); p4 = m3 * QPointF(300, 150); p5 = m3 * QVector3D(300, 150, 1); - QVERIFY(fuzzyCompare(p1.x(), -1.0)); - QVERIFY(fuzzyCompare(p1.y(), 1.0)); - QVERIFY(fuzzyCompare(p2.x(), 1.0)); - QVERIFY(fuzzyCompare(p2.y(), 1.0)); - QVERIFY(fuzzyCompare(p3.x(), -1.0)); - QVERIFY(fuzzyCompare(p3.y(), -1.0)); - QVERIFY(fuzzyCompare(p4.x(), 1.0)); - QVERIFY(fuzzyCompare(p4.y(), -1.0)); - QVERIFY(fuzzyCompare(p5.x(), (qreal)1.0)); - QVERIFY(fuzzyCompare(p5.y(), (qreal)-1.0)); - QVERIFY(fuzzyCompare(p5.z(), (qreal)-1.0)); + QVERIFY(qFuzzyCompare(float(p1.x()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p1.y()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p2.x()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p2.y()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p3.x()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p3.y()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p4.x()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p4.y()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p5.x()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p5.y()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p5.z()), -1.0f)); QMatrix4x4 m4; m4.ortho(0, 300, 150, 0, -2, 3); @@ -2708,17 +2700,17 @@ void tst_QMatrixNxN::ortho() p3 = m4 * QPointF(0, 150); p4 = m4 * QPointF(300, 150); p5 = m4 * QVector3D(300, 150, 1); - QVERIFY(fuzzyCompare(p1.x(), -1.0)); - QVERIFY(fuzzyCompare(p1.y(), 1.0)); - QVERIFY(fuzzyCompare(p2.x(), 1.0)); - QVERIFY(fuzzyCompare(p2.y(), 1.0)); - QVERIFY(fuzzyCompare(p3.x(), -1.0)); - QVERIFY(fuzzyCompare(p3.y(), -1.0)); - QVERIFY(fuzzyCompare(p4.x(), 1.0)); - QVERIFY(fuzzyCompare(p4.y(), -1.0)); - QVERIFY(fuzzyCompare(p5.x(), (qreal)1.0)); - QVERIFY(fuzzyCompare(p5.y(), (qreal)-1.0)); - QVERIFY(fuzzyCompare(p5.z(), (qreal)-0.6)); + QVERIFY(qFuzzyCompare(float(p1.x()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p1.y()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p2.x()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p2.y()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p3.x()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p3.y()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p4.x()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p4.y()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p5.x()), 1.0f)); + QVERIFY(qFuzzyCompare(float(p5.y()), -1.0f)); + QVERIFY(qFuzzyCompare(float(p5.z()), -0.6f)); // An empty view volume should leave the matrix alone. QMatrix4x4 m5; @@ -2740,21 +2732,21 @@ void tst_QMatrixNxN::frustum() QVector3D p3 = m1 * QVector3D(-1.0f, 1.0f, 1.0f); QVector3D p4 = m1 * QVector3D(1.0f, 1.0f, 1.0f); QVector3D p5 = m1 * QVector3D(0.0f, 0.0f, 2.0f); - QVERIFY(fuzzyCompare(p1.x(), -1.0f)); - QVERIFY(fuzzyCompare(p1.y(), -1.0f)); - QVERIFY(fuzzyCompare(p1.z(), -1.0f)); - QVERIFY(fuzzyCompare(p2.x(), 1.0f)); - QVERIFY(fuzzyCompare(p2.y(), -1.0f)); - QVERIFY(fuzzyCompare(p2.z(), -1.0f)); - QVERIFY(fuzzyCompare(p3.x(), -1.0f)); - QVERIFY(fuzzyCompare(p3.y(), 1.0f)); - QVERIFY(fuzzyCompare(p3.z(), -1.0f)); - QVERIFY(fuzzyCompare(p4.x(), 1.0f)); - QVERIFY(fuzzyCompare(p4.y(), 1.0f)); - QVERIFY(fuzzyCompare(p4.z(), -1.0f)); - QVERIFY(fuzzyCompare(p5.x(), 0.0f)); - QVERIFY(fuzzyCompare(p5.y(), 0.0f)); - QVERIFY(fuzzyCompare(p5.z(), -0.5f)); + QVERIFY(qFuzzyCompare(p1.x(), -1.0f)); + QVERIFY(qFuzzyCompare(p1.y(), -1.0f)); + QVERIFY(qFuzzyCompare(p1.z(), -1.0f)); + QVERIFY(qFuzzyCompare(p2.x(), 1.0f)); + QVERIFY(qFuzzyCompare(p2.y(), -1.0f)); + QVERIFY(qFuzzyCompare(p2.z(), -1.0f)); + QVERIFY(qFuzzyCompare(p3.x(), -1.0f)); + QVERIFY(qFuzzyCompare(p3.y(), 1.0f)); + QVERIFY(qFuzzyCompare(p3.z(), -1.0f)); + QVERIFY(qFuzzyCompare(p4.x(), 1.0f)); + QVERIFY(qFuzzyCompare(p4.y(), 1.0f)); + QVERIFY(qFuzzyCompare(p4.z(), -1.0f)); + QVERIFY(qFuzzyCompare(p5.x(), 0.0f)); + QVERIFY(qFuzzyCompare(p5.y(), 0.0f)); + QVERIFY(qFuzzyCompare(p5.z(), -0.5f)); // An empty view volume should leave the matrix alone. QMatrix4x4 m5; @@ -2776,21 +2768,21 @@ void tst_QMatrixNxN::perspective() QVector3D p3 = m1 * QVector3D(-1.0f, 1.0f, 1.0f); QVector3D p4 = m1 * QVector3D(1.0f, 1.0f, 1.0f); QVector3D p5 = m1 * QVector3D(0.0f, 0.0f, 2.0f); - QVERIFY(fuzzyCompare(p1.x(), 2.41421)); - QVERIFY(fuzzyCompare(p1.y(), 2.41421)); - QVERIFY(fuzzyCompare(p1.z(), -1)); - QVERIFY(fuzzyCompare(p2.x(), -2.41421)); - QVERIFY(fuzzyCompare(p2.y(), 2.41421)); - QVERIFY(fuzzyCompare(p2.z(), -1.0f)); - QVERIFY(fuzzyCompare(p3.x(), 2.41421)); - QVERIFY(fuzzyCompare(p3.y(), -2.41421)); - QVERIFY(fuzzyCompare(p3.z(), -1.0f)); - QVERIFY(fuzzyCompare(p4.x(), -2.41421)); - QVERIFY(fuzzyCompare(p4.y(), -2.41421)); - QVERIFY(fuzzyCompare(p4.z(), -1.0f)); - QVERIFY(fuzzyCompare(p5.x(), 0.0f)); - QVERIFY(fuzzyCompare(p5.y(), 0.0f)); - QVERIFY(fuzzyCompare(p5.z(), -0.5f)); + QVERIFY(qFuzzyCompare(p1.x(), 2.41421f)); + QVERIFY(qFuzzyCompare(p1.y(), 2.41421f)); + QVERIFY(qFuzzyCompare(p1.z(), -1.0f)); + QVERIFY(qFuzzyCompare(p2.x(), -2.41421f)); + QVERIFY(qFuzzyCompare(p2.y(), 2.41421f)); + QVERIFY(qFuzzyCompare(p2.z(), -1.0f)); + QVERIFY(qFuzzyCompare(p3.x(), 2.41421f)); + QVERIFY(qFuzzyCompare(p3.y(), -2.41421f)); + QVERIFY(qFuzzyCompare(p3.z(), -1.0f)); + QVERIFY(qFuzzyCompare(p4.x(), -2.41421f)); + QVERIFY(qFuzzyCompare(p4.y(), -2.41421f)); + QVERIFY(qFuzzyCompare(p4.z(), -1.0f)); + QVERIFY(qFuzzyCompare(p5.x(), 0.0f)); + QVERIFY(qFuzzyCompare(p5.y(), 0.0f)); + QVERIFY(qFuzzyCompare(p5.z(), -0.5f)); // An empty view volume should leave the matrix alone. QMatrix4x4 m5; @@ -2834,7 +2826,7 @@ void tst_QMatrixNxN::convertGeneric() { QMatrix4x3 m1(uniqueValues4x3); - static qreal const unique4x4[16] = { + static float const unique4x4[16] = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, @@ -2846,7 +2838,7 @@ void tst_QMatrixNxN::convertGeneric() QMatrix4x4 m5 = qGenericMatrixToMatrix4x4(m1); QVERIFY(isSame(m5, unique4x4)); - static qreal const conv4x4[12] = { + static float const conv4x4[12] = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f @@ -2874,7 +2866,7 @@ enum { // Structure that allows direct access to "flagBits" for testing. struct Matrix4x4 { - qreal m[4][4]; + float m[4][4]; int flagBits; }; @@ -2891,7 +2883,7 @@ void tst_QMatrixNxN::optimize_data() QTest::newRow("unique") << (void *)uniqueValues4 << (int)General; - static qreal scaleValues[16] = { + static float scaleValues[16] = { 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 3.0f, 0.0f, 0.0f, 0.0f, 0.0f, 4.0f, 0.0f, @@ -2900,7 +2892,7 @@ void tst_QMatrixNxN::optimize_data() QTest::newRow("scale") << (void *)scaleValues << (int)Scale; - static qreal translateValues[16] = { + static float translateValues[16] = { 1.0f, 0.0f, 0.0f, 2.0f, 0.0f, 1.0f, 0.0f, 3.0f, 0.0f, 0.0f, 1.0f, 4.0f, @@ -2909,7 +2901,7 @@ void tst_QMatrixNxN::optimize_data() QTest::newRow("translate") << (void *)translateValues << (int)Translation; - static qreal scaleTranslateValues[16] = { + static float scaleTranslateValues[16] = { 1.0f, 0.0f, 0.0f, 2.0f, 0.0f, 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 4.0f, @@ -2918,7 +2910,7 @@ void tst_QMatrixNxN::optimize_data() QTest::newRow("scaleTranslate") << (void *)scaleTranslateValues << (int)(Scale | Translation); - static qreal rotateValues[16] = { + static float rotateValues[16] = { 0.0f, 1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, @@ -2928,7 +2920,7 @@ void tst_QMatrixNxN::optimize_data() << (void *)rotateValues << (int)Rotation2D; // Left-handed system, not a simple rotation. - static qreal scaleRotateValues[16] = { + static float scaleRotateValues[16] = { 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, @@ -2937,7 +2929,7 @@ void tst_QMatrixNxN::optimize_data() QTest::newRow("scaleRotate") << (void *)scaleRotateValues << (int)(Scale | Rotation2D); - static qreal matrix2x2Values[16] = { + static float matrix2x2Values[16] = { 1.0f, 2.0f, 0.0f, 0.0f, 8.0f, 3.0f, 0.0f, 0.0f, 0.0f, 0.0f, 9.0f, 0.0f, @@ -2946,7 +2938,7 @@ void tst_QMatrixNxN::optimize_data() QTest::newRow("matrix2x2") << (void *)matrix2x2Values << (int)(Scale | Rotation2D); - static qreal matrix3x3Values[16] = { + static float matrix3x3Values[16] = { 1.0f, 2.0f, 4.0f, 0.0f, 8.0f, 3.0f, 5.0f, 0.0f, 6.0f, 7.0f, 9.0f, 0.0f, @@ -2955,7 +2947,7 @@ void tst_QMatrixNxN::optimize_data() QTest::newRow("matrix3x3") << (void *)matrix3x3Values << (int)(Scale | Rotation2D | Rotation); - static qreal rotateTranslateValues[16] = { + static float rotateTranslateValues[16] = { 0.0f, 1.0f, 0.0f, 1.0f, -1.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 1.0f, 3.0f, @@ -2965,7 +2957,7 @@ void tst_QMatrixNxN::optimize_data() << (void *)rotateTranslateValues << (int)(Translation | Rotation2D); // Left-handed system, not a simple rotation. - static qreal scaleRotateTranslateValues[16] = { + static float scaleRotateTranslateValues[16] = { 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.0f, 1.0f, 3.0f, @@ -2974,7 +2966,7 @@ void tst_QMatrixNxN::optimize_data() QTest::newRow("scaleRotateTranslate") << (void *)scaleRotateTranslateValues << (int)(Translation | Scale | Rotation2D); - static qreal belowValues[16] = { + static float belowValues[16] = { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, @@ -2988,7 +2980,7 @@ void tst_QMatrixNxN::optimize() QFETCH(void *, mValues); QFETCH(int, flagBits); - QMatrix4x4 m((const qreal *)mValues); + QMatrix4x4 m((const float *)mValues); m.optimize(); QCOMPARE(reinterpret_cast<Matrix4x4 *>(&m)->flagBits, flagBits); @@ -3074,16 +3066,16 @@ void tst_QMatrixNxN::convertQMatrix() QMatrix4x4 m6(m5); QPointF p6 = m6 * QPointF(100.0, 150.0); - QVERIFY(fuzzyCompare(p5.x(), p6.x())); - QVERIFY(fuzzyCompare(p5.y(), p6.y())); + QVERIFY(qFuzzyCompare(float(p5.x()), float(p6.x()))); + QVERIFY(qFuzzyCompare(float(p5.y()), float(p6.y()))); QMatrix m7 = m6.toAffine(); - QVERIFY(fuzzyCompare(m5.m11(), m7.m11())); - QVERIFY(fuzzyCompare(m5.m12(), m7.m12())); - QVERIFY(fuzzyCompare(m5.m21(), m7.m21())); - QVERIFY(fuzzyCompare(m5.m22(), m7.m22())); - QVERIFY(fuzzyCompare(m5.dx(), m7.dx())); - QVERIFY(fuzzyCompare(m5.dy(), m7.dy())); + QVERIFY(qFuzzyCompare(float(m5.m11()), float(m7.m11()))); + QVERIFY(qFuzzyCompare(float(m5.m12()), float(m7.m12()))); + QVERIFY(qFuzzyCompare(float(m5.m21()), float(m7.m21()))); + QVERIFY(qFuzzyCompare(float(m5.m22()), float(m7.m22()))); + QVERIFY(qFuzzyCompare(float(m5.dx()), float(m7.dx()))); + QVERIFY(qFuzzyCompare(float(m5.dy()), float(m7.dy()))); } // Test converting QTransform objects into QMatrix4x4 and then @@ -3121,19 +3113,19 @@ void tst_QMatrixNxN::convertQTransform() QMatrix4x4 m6(m5); QPointF p6 = m6 * QPointF(100.0, 150.0); - QVERIFY(fuzzyCompare(p5.x(), p6.x())); - QVERIFY(fuzzyCompare(p5.y(), p6.y())); + QVERIFY(qFuzzyCompare(float(p5.x()), float(p6.x()))); + QVERIFY(qFuzzyCompare(float(p5.y()), float(p6.y()))); QTransform m7 = m6.toTransform(); - QVERIFY(fuzzyCompare(m5.m11(), m7.m11())); - QVERIFY(fuzzyCompare(m5.m12(), m7.m12())); - QVERIFY(fuzzyCompare(m5.m21(), m7.m21())); - QVERIFY(fuzzyCompare(m5.m22(), m7.m22())); - QVERIFY(fuzzyCompare(m5.dx(), m7.dx())); - QVERIFY(fuzzyCompare(m5.dy(), m7.dy())); - QVERIFY(fuzzyCompare(m5.m13(), m7.m13())); - QVERIFY(fuzzyCompare(m5.m23(), m7.m23())); - QVERIFY(fuzzyCompare(m5.m33(), m7.m33())); + QVERIFY(qFuzzyCompare(float(m5.m11()), float(m7.m11()))); + QVERIFY(qFuzzyCompare(float(m5.m12()), float(m7.m12()))); + QVERIFY(qFuzzyCompare(float(m5.m21()), float(m7.m21()))); + QVERIFY(qFuzzyCompare(float(m5.m22()), float(m7.m22()))); + QVERIFY(qFuzzyCompare(float(m5.dx()), float(m7.dx()))); + QVERIFY(qFuzzyCompare(float(m5.dy()), float(m7.dy()))); + QVERIFY(qFuzzyCompare(float(m5.m13()), float(m7.m13()))); + QVERIFY(qFuzzyCompare(float(m5.m23()), float(m7.m23()))); + QVERIFY(qFuzzyCompare(float(m5.m33()), float(m7.m33()))); } // Test filling matrices with specific values. @@ -3143,7 +3135,7 @@ void tst_QMatrixNxN::fill() m1.fill(0.0f); QVERIFY(isSame(m1, nullValues4)); - static const qreal fillValues4[] = + static const float fillValues4[] = {2.5f, 2.5f, 2.5f, 2.5f, 2.5f, 2.5f, 2.5f, 2.5f, 2.5f, 2.5f, 2.5f, 2.5f, @@ -3155,7 +3147,7 @@ void tst_QMatrixNxN::fill() m2.fill(0.0f); QVERIFY(isSame(m2, nullValues4x3)); - static const qreal fillValues4x3[] = + static const float fillValues4x3[] = {2.5f, 2.5f, 2.5f, 2.5f, 2.5f, 2.5f, 2.5f, 2.5f, 2.5f, 2.5f, 2.5f, 2.5f}; @@ -3166,22 +3158,22 @@ void tst_QMatrixNxN::fill() // Test the mapRect() function for QRect and QRectF. void tst_QMatrixNxN::mapRect_data() { - QTest::addColumn<qreal>("x"); - QTest::addColumn<qreal>("y"); - QTest::addColumn<qreal>("width"); - QTest::addColumn<qreal>("height"); + QTest::addColumn<float>("x"); + QTest::addColumn<float>("y"); + QTest::addColumn<float>("width"); + QTest::addColumn<float>("height"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << (float)0.0f << (float)0.0f << (float)0.0f << (float)0.0f; QTest::newRow("rect") - << (qreal)1.0f << (qreal)-20.5f << (qreal)100.0f << (qreal)63.75f; + << (float)1.0f << (float)-20.5f << (float)100.0f << (float)63.75f; } void tst_QMatrixNxN::mapRect() { - QFETCH(qreal, x); - QFETCH(qreal, y); - QFETCH(qreal, width); - QFETCH(qreal, height); + QFETCH(float, x); + QFETCH(float, y); + QFETCH(float, width); + QFETCH(float, height); QRectF rect(x, y, width, height); QRect recti(qRound(x), qRound(y), qRound(width), qRound(height)); @@ -3200,10 +3192,10 @@ void tst_QMatrixNxN::mapRect() QMatrix4x4 m3; m3.scale(-100.5f, 64.0f); - qreal scalex = x * -100.5f; - qreal scaley = y * 64.0f; - qreal scalewid = width * -100.5f; - qreal scaleht = height * 64.0f; + float scalex = x * -100.5f; + float scaley = y * 64.0f; + float scalewid = width * -100.5f; + float scaleht = height * 64.0f; if (scalewid < 0.0f) { scalewid = -scalewid; scalex -= scalewid; @@ -3233,10 +3225,10 @@ void tst_QMatrixNxN::mapRect() QMatrix4x4 m4; m4.translate(-100.5f, 64.0f); m4.scale(-2.5f, 4.0f); - qreal transx1 = x * -2.5f - 100.5f; - qreal transy1 = y * 4.0f + 64.0f; - qreal transx2 = (x + width) * -2.5f - 100.5f; - qreal transy2 = (y + height) * 4.0f + 64.0f; + float transx1 = x * -2.5f - 100.5f; + float transy1 = y * 4.0f + 64.0f; + float transx2 = (x + width) * -2.5f - 100.5f; + float transy2 = (y + height) * 4.0f + 64.0f; if (transx1 > transx2) qSwap(transx1, transx2); if (transy1 > transy2) @@ -3264,10 +3256,10 @@ void tst_QMatrixNxN::mapRect() t4.rotate(45.0f); QRectF mr = m4.mapRect(rect); QRectF tr = t4.mapRect(rect); - QVERIFY(fuzzyCompare(mr.x(), tr.x())); - QVERIFY(fuzzyCompare(mr.y(), tr.y())); - QVERIFY(fuzzyCompare(mr.width(), tr.width())); - QVERIFY(fuzzyCompare(mr.height(), tr.height())); + QVERIFY(qFuzzyCompare(float(mr.x()), float(tr.x()))); + QVERIFY(qFuzzyCompare(float(mr.y()), float(tr.y()))); + QVERIFY(qFuzzyCompare(float(mr.width()), float(tr.width()))); + QVERIFY(qFuzzyCompare(float(mr.height()), float(tr.height()))); QRect mri = m4.mapRect(recti); QRect tri = t4.mapRect(recti); @@ -3287,7 +3279,7 @@ void tst_QMatrixNxN::mapVector_data() QTest::newRow("unique") << (void *)uniqueValues4; - static const qreal scale[] = + static const float scale[] = {2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 11.0f, 0.0f, 0.0f, 0.0f, 0.0f, -6.5f, 0.0f, @@ -3295,7 +3287,7 @@ void tst_QMatrixNxN::mapVector_data() QTest::newRow("scale") << (void *)scale; - static const qreal scaleTranslate[] = + static const float scaleTranslate[] = {2.0f, 0.0f, 0.0f, 1.0f, 0.0f, 11.0f, 0.0f, 2.0f, 0.0f, 0.0f, -6.5f, 3.0f, @@ -3303,7 +3295,7 @@ void tst_QMatrixNxN::mapVector_data() QTest::newRow("scaleTranslate") << (void *)scaleTranslate; - static const qreal translate[] = + static const float translate[] = {1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 2.0f, 0.0f, 0.0f, 1.0f, 3.0f, @@ -3315,7 +3307,7 @@ void tst_QMatrixNxN::mapVector() { QFETCH(void *, mValues); - QMatrix4x4 m1((const qreal *)mValues); + QMatrix4x4 m1((const float *)mValues); QVector3D v(3.5f, -1.0f, 2.5f); @@ -3328,12 +3320,12 @@ void tst_QMatrixNxN::mapVector() m1.optimize(); QVector3D actual2 = m1.mapVector(v); - QVERIFY(fuzzyCompare(actual.x(), expected.x())); - QVERIFY(fuzzyCompare(actual.y(), expected.y())); - QVERIFY(fuzzyCompare(actual.z(), expected.z())); - QVERIFY(fuzzyCompare(actual2.x(), expected.x())); - QVERIFY(fuzzyCompare(actual2.y(), expected.y())); - QVERIFY(fuzzyCompare(actual2.z(), expected.z())); + QVERIFY(qFuzzyCompare(actual.x(), expected.x())); + QVERIFY(qFuzzyCompare(actual.y(), expected.y())); + QVERIFY(qFuzzyCompare(actual.z(), expected.z())); + QVERIFY(qFuzzyCompare(actual2.x(), expected.x())); + QVERIFY(qFuzzyCompare(actual2.y(), expected.y())); + QVERIFY(qFuzzyCompare(actual2.z(), expected.z())); } class tst_QMatrixNxN4x4Properties : public QObject diff --git a/tests/auto/gui/math3d/qquaternion/tst_qquaternion.cpp b/tests/auto/gui/math3d/qquaternion/tst_qquaternion.cpp index f42cc30fb1..35576518d7 100644 --- a/tests/auto/gui/math3d/qquaternion/tst_qquaternion.cpp +++ b/tests/auto/gui/math3d/qquaternion/tst_qquaternion.cpp @@ -98,113 +98,106 @@ private slots: void metaTypes(); }; -// QVector3D uses float internally, which can lead to some precision -// issues when using it with the qreal-based QQuaternion. -static bool fuzzyCompare(qreal x, qreal y) -{ - return qFuzzyIsNull(float(x - y)); -} - // Test the creation of QQuaternion objects in various ways: // construct, copy, and modify. void tst_QQuaternion::create() { QQuaternion identity; - QCOMPARE(identity.x(), (qreal)0.0f); - QCOMPARE(identity.y(), (qreal)0.0f); - QCOMPARE(identity.z(), (qreal)0.0f); - QCOMPARE(identity.scalar(), (qreal)1.0f); + QCOMPARE(identity.x(), 0.0f); + QCOMPARE(identity.y(), 0.0f); + QCOMPARE(identity.z(), 0.0f); + QCOMPARE(identity.scalar(), 1.0f); QVERIFY(identity.isIdentity()); - QQuaternion negativeZeroIdentity(qreal(1.0), qreal(-0.0), qreal(-0.0), qreal(-0.0)); - QCOMPARE(negativeZeroIdentity.x(), qreal(-0.0)); - QCOMPARE(negativeZeroIdentity.y(), qreal(-0.0)); - QCOMPARE(negativeZeroIdentity.z(), qreal(-0.0)); - QCOMPARE(negativeZeroIdentity.scalar(), qreal(1.0)); + QQuaternion negativeZeroIdentity(1.0f, -0.0f, -0.0f, -0.0f); + QCOMPARE(negativeZeroIdentity.x(), -0.0f); + QCOMPARE(negativeZeroIdentity.y(), -0.0f); + QCOMPARE(negativeZeroIdentity.z(), -0.0f); + QCOMPARE(negativeZeroIdentity.scalar(), 1.0f); QVERIFY(negativeZeroIdentity.isIdentity()); QQuaternion v1(34.0f, 1.0f, 2.5f, -89.25f); - QCOMPARE(v1.x(), (qreal)1.0f); - QCOMPARE(v1.y(), (qreal)2.5f); - QCOMPARE(v1.z(), (qreal)-89.25f); - QCOMPARE(v1.scalar(), (qreal)34.0f); + QCOMPARE(v1.x(), 1.0f); + QCOMPARE(v1.y(), 2.5f); + QCOMPARE(v1.z(), -89.25f); + QCOMPARE(v1.scalar(), 34.0f); QVERIFY(!v1.isNull()); QQuaternion v1i(34, 1, 2, -89); - QCOMPARE(v1i.x(), (qreal)1.0f); - QCOMPARE(v1i.y(), (qreal)2.0f); - QCOMPARE(v1i.z(), (qreal)-89.0f); - QCOMPARE(v1i.scalar(), (qreal)34.0f); + QCOMPARE(v1i.x(), 1.0f); + QCOMPARE(v1i.y(), 2.0f); + QCOMPARE(v1i.z(), -89.0f); + QCOMPARE(v1i.scalar(), 34.0f); QVERIFY(!v1i.isNull()); QQuaternion v2(v1); - QCOMPARE(v2.x(), (qreal)1.0f); - QCOMPARE(v2.y(), (qreal)2.5f); - QCOMPARE(v2.z(), (qreal)-89.25f); - QCOMPARE(v2.scalar(), (qreal)34.0f); + QCOMPARE(v2.x(), 1.0f); + QCOMPARE(v2.y(), 2.5f); + QCOMPARE(v2.z(), -89.25f); + QCOMPARE(v2.scalar(), 34.0f); QVERIFY(!v2.isNull()); QQuaternion v4; - QCOMPARE(v4.x(), (qreal)0.0f); - QCOMPARE(v4.y(), (qreal)0.0f); - QCOMPARE(v4.z(), (qreal)0.0f); - QCOMPARE(v4.scalar(), (qreal)1.0f); + QCOMPARE(v4.x(), 0.0f); + QCOMPARE(v4.y(), 0.0f); + QCOMPARE(v4.z(), 0.0f); + QCOMPARE(v4.scalar(), 1.0f); QVERIFY(v4.isIdentity()); v4 = v1; - QCOMPARE(v4.x(), (qreal)1.0f); - QCOMPARE(v4.y(), (qreal)2.5f); - QCOMPARE(v4.z(), (qreal)-89.25f); - QCOMPARE(v4.scalar(), (qreal)34.0f); + QCOMPARE(v4.x(), 1.0f); + QCOMPARE(v4.y(), 2.5f); + QCOMPARE(v4.z(), -89.25f); + QCOMPARE(v4.scalar(), 34.0f); QVERIFY(!v4.isNull()); QQuaternion v9(34, QVector3D(1.0f, 2.5f, -89.25f)); - QCOMPARE(v9.x(), (qreal)1.0f); - QCOMPARE(v9.y(), (qreal)2.5f); - QCOMPARE(v9.z(), (qreal)-89.25f); - QCOMPARE(v9.scalar(), (qreal)34.0f); + QCOMPARE(v9.x(), 1.0f); + QCOMPARE(v9.y(), 2.5f); + QCOMPARE(v9.z(), -89.25f); + QCOMPARE(v9.scalar(), 34.0f); QVERIFY(!v9.isNull()); v1.setX(3.0f); - QCOMPARE(v1.x(), (qreal)3.0f); - QCOMPARE(v1.y(), (qreal)2.5f); - QCOMPARE(v1.z(), (qreal)-89.25f); - QCOMPARE(v1.scalar(), (qreal)34.0f); + QCOMPARE(v1.x(), 3.0f); + QCOMPARE(v1.y(), 2.5f); + QCOMPARE(v1.z(), -89.25f); + QCOMPARE(v1.scalar(), 34.0f); QVERIFY(!v1.isNull()); v1.setY(10.5f); - QCOMPARE(v1.x(), (qreal)3.0f); - QCOMPARE(v1.y(), (qreal)10.5f); - QCOMPARE(v1.z(), (qreal)-89.25f); - QCOMPARE(v1.scalar(), (qreal)34.0f); + QCOMPARE(v1.x(), 3.0f); + QCOMPARE(v1.y(), 10.5f); + QCOMPARE(v1.z(), -89.25f); + QCOMPARE(v1.scalar(), 34.0f); QVERIFY(!v1.isNull()); v1.setZ(15.5f); - QCOMPARE(v1.x(), (qreal)3.0f); - QCOMPARE(v1.y(), (qreal)10.5f); - QCOMPARE(v1.z(), (qreal)15.5f); - QCOMPARE(v1.scalar(), (qreal)34.0f); + QCOMPARE(v1.x(), 3.0f); + QCOMPARE(v1.y(), 10.5f); + QCOMPARE(v1.z(), 15.5f); + QCOMPARE(v1.scalar(), 34.0f); QVERIFY(!v1.isNull()); v1.setScalar(6.0f); - QCOMPARE(v1.x(), (qreal)3.0f); - QCOMPARE(v1.y(), (qreal)10.5f); - QCOMPARE(v1.z(), (qreal)15.5f); - QCOMPARE(v1.scalar(), (qreal)6.0f); + QCOMPARE(v1.x(), 3.0f); + QCOMPARE(v1.y(), 10.5f); + QCOMPARE(v1.z(), 15.5f); + QCOMPARE(v1.scalar(), 6.0f); QVERIFY(!v1.isNull()); v1.setVector(2.0f, 6.5f, -1.25f); - QCOMPARE(v1.x(), (qreal)2.0f); - QCOMPARE(v1.y(), (qreal)6.5f); - QCOMPARE(v1.z(), (qreal)-1.25f); - QCOMPARE(v1.scalar(), (qreal)6.0f); + QCOMPARE(v1.x(), 2.0f); + QCOMPARE(v1.y(), 6.5f); + QCOMPARE(v1.z(), -1.25f); + QCOMPARE(v1.scalar(), 6.0f); QVERIFY(!v1.isNull()); QVERIFY(v1.vector() == QVector3D(2.0f, 6.5f, -1.25f)); v1.setVector(QVector3D(-2.0f, -6.5f, 1.25f)); - QCOMPARE(v1.x(), (qreal)-2.0f); - QCOMPARE(v1.y(), (qreal)-6.5f); - QCOMPARE(v1.z(), (qreal)1.25f); - QCOMPARE(v1.scalar(), (qreal)6.0f); + QCOMPARE(v1.x(), -2.0f); + QCOMPARE(v1.y(), -6.5f); + QCOMPARE(v1.z(), 1.25f); + QCOMPARE(v1.scalar(), 6.0f); QVERIFY(!v1.isNull()); QVERIFY(v1.vector() == QVector3D(-2.0f, -6.5f, 1.25f)); @@ -212,46 +205,46 @@ void tst_QQuaternion::create() v1.setY(0.0f); v1.setZ(0.0f); v1.setScalar(0.0f); - QCOMPARE(v1.x(), (qreal)0.0f); - QCOMPARE(v1.y(), (qreal)0.0f); - QCOMPARE(v1.z(), (qreal)0.0f); - QCOMPARE(v1.scalar(), (qreal)0.0f); + QCOMPARE(v1.x(), 0.0f); + QCOMPARE(v1.y(), 0.0f); + QCOMPARE(v1.z(), 0.0f); + QCOMPARE(v1.scalar(), 0.0f); QVERIFY(v1.isNull()); QVector4D v10 = v9.toVector4D(); - QCOMPARE(v10.x(), (qreal)1.0f); - QCOMPARE(v10.y(), (qreal)2.5f); - QCOMPARE(v10.z(), (qreal)-89.25f); - QCOMPARE(v10.w(), (qreal)34.0f); + QCOMPARE(v10.x(), 1.0f); + QCOMPARE(v10.y(), 2.5f); + QCOMPARE(v10.z(), -89.25f); + QCOMPARE(v10.w(), 34.0f); } // Test length computation for quaternions. void tst_QQuaternion::length_data() { - QTest::addColumn<qreal>("x"); - QTest::addColumn<qreal>("y"); - QTest::addColumn<qreal>("z"); - QTest::addColumn<qreal>("w"); - QTest::addColumn<qreal>("len"); - - QTest::newRow("null") << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; - QTest::newRow("1x") << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; - QTest::newRow("1y") << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; - QTest::newRow("1z") << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)1.0f; - QTest::newRow("1w") << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)1.0f; - QTest::newRow("-1x") << (qreal)-1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; - QTest::newRow("-1y") << (qreal)0.0f << (qreal)-1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; - QTest::newRow("-1z") << (qreal)0.0f << (qreal)0.0f << (qreal)-1.0f << (qreal)0.0f << (qreal)1.0f; - QTest::newRow("-1w") << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)-1.0f << (qreal)1.0f; - QTest::newRow("two") << (qreal)2.0f << (qreal)-2.0f << (qreal)2.0f << (qreal)2.0f << (qreal)qSqrt(16.0f); + QTest::addColumn<float>("x"); + QTest::addColumn<float>("y"); + QTest::addColumn<float>("z"); + QTest::addColumn<float>("w"); + QTest::addColumn<float>("len"); + + QTest::newRow("null") << 0.0f << 0.0f << 0.0f << 0.0f << 0.0f; + QTest::newRow("1x") << 1.0f << 0.0f << 0.0f << 0.0f << 1.0f; + QTest::newRow("1y") << 0.0f << 1.0f << 0.0f << 0.0f << 1.0f; + QTest::newRow("1z") << 0.0f << 0.0f << 1.0f << 0.0f << 1.0f; + QTest::newRow("1w") << 0.0f << 0.0f << 0.0f << 1.0f << 1.0f; + QTest::newRow("-1x") << -1.0f << 0.0f << 0.0f << 0.0f << 1.0f; + QTest::newRow("-1y") << 0.0f << -1.0f << 0.0f << 0.0f << 1.0f; + QTest::newRow("-1z") << 0.0f << 0.0f << -1.0f << 0.0f << 1.0f; + QTest::newRow("-1w") << 0.0f << 0.0f << 0.0f << -1.0f << 1.0f; + QTest::newRow("two") << 2.0f << -2.0f << 2.0f << 2.0f << sqrtf(16.0f); } void tst_QQuaternion::length() { - QFETCH(qreal, x); - QFETCH(qreal, y); - QFETCH(qreal, z); - QFETCH(qreal, w); - QFETCH(qreal, len); + QFETCH(float, x); + QFETCH(float, y); + QFETCH(float, z); + QFETCH(float, w); + QFETCH(float, len); QQuaternion v(w, x, y, z); QCOMPARE(v.length(), len); @@ -266,18 +259,18 @@ void tst_QQuaternion::normalized_data() } void tst_QQuaternion::normalized() { - QFETCH(qreal, x); - QFETCH(qreal, y); - QFETCH(qreal, z); - QFETCH(qreal, w); - QFETCH(qreal, len); + QFETCH(float, x); + QFETCH(float, y); + QFETCH(float, z); + QFETCH(float, w); + QFETCH(float, len); QQuaternion v(w, x, y, z); QQuaternion u = v.normalized(); if (v.isNull()) QVERIFY(u.isNull()); else - QCOMPARE(u.length(), qreal(1.0f)); + QCOMPARE(u.length(), 1.0f); QCOMPARE(u.x() * len, v.x()); QCOMPARE(u.y() * len, v.y()); QCOMPARE(u.z() * len, v.z()); @@ -292,10 +285,10 @@ void tst_QQuaternion::normalize_data() } void tst_QQuaternion::normalize() { - QFETCH(qreal, x); - QFETCH(qreal, y); - QFETCH(qreal, z); - QFETCH(qreal, w); + QFETCH(float, x); + QFETCH(float, y); + QFETCH(float, z); + QFETCH(float, w); QQuaternion v(w, x, y, z); bool isNull = v.isNull(); @@ -303,7 +296,7 @@ void tst_QQuaternion::normalize() if (isNull) QVERIFY(v.isNull()); else - QCOMPARE(v.length(), qreal(1.0f)); + QCOMPARE(v.length(), 1.0f); } // Test the comparison operators for quaternions. @@ -326,63 +319,63 @@ void tst_QQuaternion::compare() // Test addition for quaternions. void tst_QQuaternion::add_data() { - QTest::addColumn<qreal>("x1"); - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("z1"); - QTest::addColumn<qreal>("w1"); - QTest::addColumn<qreal>("x2"); - QTest::addColumn<qreal>("y2"); - QTest::addColumn<qreal>("z2"); - QTest::addColumn<qreal>("w2"); - QTest::addColumn<qreal>("x3"); - QTest::addColumn<qreal>("y3"); - QTest::addColumn<qreal>("z3"); - QTest::addColumn<qreal>("w3"); + QTest::addColumn<float>("x1"); + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("z1"); + QTest::addColumn<float>("w1"); + QTest::addColumn<float>("x2"); + QTest::addColumn<float>("y2"); + QTest::addColumn<float>("z2"); + QTest::addColumn<float>("w2"); + QTest::addColumn<float>("x3"); + QTest::addColumn<float>("y3"); + QTest::addColumn<float>("z3"); + QTest::addColumn<float>("w3"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 0.0f << 0.0f; QTest::newRow("xonly") - << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)3.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 1.0f << 0.0f << 0.0f << 0.0f + << 2.0f << 0.0f << 0.0f << 0.0f + << 3.0f << 0.0f << 0.0f << 0.0f; QTest::newRow("yonly") - << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)3.0f << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 1.0f << 0.0f << 0.0f + << 0.0f << 2.0f << 0.0f << 0.0f + << 0.0f << 3.0f << 0.0f << 0.0f; QTest::newRow("zonly") - << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)3.0f << (qreal)0.0f; + << 0.0f << 0.0f << 1.0f << 0.0f + << 0.0f << 0.0f << 2.0f << 0.0f + << 0.0f << 0.0f << 3.0f << 0.0f; QTest::newRow("wonly") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)3.0f; + << 0.0f << 0.0f << 0.0f << 1.0f + << 0.0f << 0.0f << 0.0f << 2.0f + << 0.0f << 0.0f << 0.0f << 3.0f; QTest::newRow("all") - << (qreal)1.0f << (qreal)2.0f << (qreal)3.0f << (qreal)8.0f - << (qreal)4.0f << (qreal)5.0f << (qreal)-6.0f << (qreal)9.0f - << (qreal)5.0f << (qreal)7.0f << (qreal)-3.0f << (qreal)17.0f; + << 1.0f << 2.0f << 3.0f << 8.0f + << 4.0f << 5.0f << -6.0f << 9.0f + << 5.0f << 7.0f << -3.0f << 17.0f; } void tst_QQuaternion::add() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, w1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, w2); - QFETCH(qreal, x3); - QFETCH(qreal, y3); - QFETCH(qreal, z3); - QFETCH(qreal, w3); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, w1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, w2); + QFETCH(float, x3); + QFETCH(float, y3); + QFETCH(float, z3); + QFETCH(float, w3); QQuaternion v1(w1, x1, y1, z1); QQuaternion v2(w2, x2, y2, z2); @@ -408,18 +401,18 @@ void tst_QQuaternion::subtract_data() } void tst_QQuaternion::subtract() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, w1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, w2); - QFETCH(qreal, x3); - QFETCH(qreal, y3); - QFETCH(qreal, z3); - QFETCH(qreal, w3); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, w1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, w2); + QFETCH(float, x3); + QFETCH(float, y3); + QFETCH(float, z3); + QFETCH(float, w3); QQuaternion v1(w1, x1, y1, z1); QQuaternion v2(w2, x2, y2, z2); @@ -450,31 +443,31 @@ void tst_QQuaternion::subtract() // Test quaternion multiplication. void tst_QQuaternion::multiply_data() { - QTest::addColumn<qreal>("x1"); - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("z1"); - QTest::addColumn<qreal>("w1"); - QTest::addColumn<qreal>("x2"); - QTest::addColumn<qreal>("y2"); - QTest::addColumn<qreal>("z2"); - QTest::addColumn<qreal>("w2"); + QTest::addColumn<float>("x1"); + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("z1"); + QTest::addColumn<float>("w1"); + QTest::addColumn<float>("x2"); + QTest::addColumn<float>("y2"); + QTest::addColumn<float>("z2"); + QTest::addColumn<float>("w2"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 0.0f << 0.0f; QTest::newRow("unitvec") - << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f - << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)1.0f; + << 1.0f << 0.0f << 0.0f << 1.0f + << 0.0f << 1.0f << 0.0f << 1.0f; QTest::newRow("complex") - << (qreal)1.0f << (qreal)2.0f << (qreal)3.0f << (qreal)7.0f - << (qreal)4.0f << (qreal)5.0f << (qreal)6.0f << (qreal)8.0f; + << 1.0f << 2.0f << 3.0f << 7.0f + << 4.0f << 5.0f << 6.0f << 8.0f; - for (qreal w = -1.0f; w <= 1.0f; w += 0.5f) - for (qreal x = -1.0f; x <= 1.0f; x += 0.5f) - for (qreal y = -1.0f; y <= 1.0f; y += 0.5f) - for (qreal z = -1.0f; z <= 1.0f; z += 0.5f) { + for (float w = -1.0f; w <= 1.0f; w += 0.5f) + for (float x = -1.0f; x <= 1.0f; x += 0.5f) + for (float y = -1.0f; y <= 1.0f; y += 0.5f) + for (float z = -1.0f; z <= 1.0f; z += 0.5f) { QTest::newRow("exhaustive") << x << y << z << w << z << w << y << x; @@ -482,14 +475,14 @@ void tst_QQuaternion::multiply_data() } void tst_QQuaternion::multiply() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, w1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, w2); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, w1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, w2); QQuaternion q1(w1, x1, y1, z1); QQuaternion q2(w2, x2, y2, z2); @@ -499,7 +492,7 @@ void tst_QQuaternion::multiply() // to calculate the answer we expect to get. QVector3D v1(x1, y1, z1); QVector3D v2(x2, y2, z2); - qreal scalar = w1 * w2 - QVector3D::dotProduct(v1, v2); + float scalar = w1 * w2 - QVector3D::dotProduct(v1, v2); QVector3D vector = w1 * v2 + w2 * v1 + QVector3D::crossProduct(v1, v2); QQuaternion result(scalar, vector); @@ -509,62 +502,62 @@ void tst_QQuaternion::multiply() // Test multiplication by a factor for quaternions. void tst_QQuaternion::multiplyFactor_data() { - QTest::addColumn<qreal>("x1"); - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("z1"); - QTest::addColumn<qreal>("w1"); - QTest::addColumn<qreal>("factor"); - QTest::addColumn<qreal>("x2"); - QTest::addColumn<qreal>("y2"); - QTest::addColumn<qreal>("z2"); - QTest::addColumn<qreal>("w2"); + QTest::addColumn<float>("x1"); + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("z1"); + QTest::addColumn<float>("w1"); + QTest::addColumn<float>("factor"); + QTest::addColumn<float>("x2"); + QTest::addColumn<float>("y2"); + QTest::addColumn<float>("z2"); + QTest::addColumn<float>("w2"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)100.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 0.0f << 0.0f << 0.0f + << 100.0f + << 0.0f << 0.0f << 0.0f << 0.0f; QTest::newRow("xonly") - << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)2.0f - << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 1.0f << 0.0f << 0.0f << 0.0f + << 2.0f + << 2.0f << 0.0f << 0.0f << 0.0f; QTest::newRow("yonly") - << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)2.0f - << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 1.0f << 0.0f << 0.0f + << 2.0f + << 0.0f << 2.0f << 0.0f << 0.0f; QTest::newRow("zonly") - << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f - << (qreal)2.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f; + << 0.0f << 0.0f << 1.0f << 0.0f + << 2.0f + << 0.0f << 0.0f << 2.0f << 0.0f; QTest::newRow("wonly") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f - << (qreal)2.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f; + << 0.0f << 0.0f << 0.0f << 1.0f + << 2.0f + << 0.0f << 0.0f << 0.0f << 2.0f; QTest::newRow("all") - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)4.0f - << (qreal)2.0f - << (qreal)2.0f << (qreal)4.0f << (qreal)-6.0f << (qreal)8.0f; + << 1.0f << 2.0f << -3.0f << 4.0f + << 2.0f + << 2.0f << 4.0f << -6.0f << 8.0f; QTest::newRow("allzero") - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)4.0f - << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 1.0f << 2.0f << -3.0f << 4.0f + << 0.0f + << 0.0f << 0.0f << 0.0f << 0.0f; } void tst_QQuaternion::multiplyFactor() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, w1); - QFETCH(qreal, factor); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, w2); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, w1); + QFETCH(float, factor); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, w2); QQuaternion v1(w1, x1, y1, z1); QQuaternion v2(w2, x2, y2, z2); @@ -590,20 +583,20 @@ void tst_QQuaternion::divide_data() } void tst_QQuaternion::divide() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, w1); - QFETCH(qreal, factor); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, w2); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, w1); + QFETCH(float, factor); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, w2); QQuaternion v1(w1, x1, y1, z1); QQuaternion v2(w2, x2, y2, z2); - if (factor == (qreal)0.0f) + if (factor == 0.0f) return; QVERIFY((v2 / factor) == v1); @@ -626,10 +619,10 @@ void tst_QQuaternion::negate_data() } void tst_QQuaternion::negate() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, w1); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, w1); QQuaternion v1(w1, x1, y1, z1); QQuaternion v2(-w1, -x1, -y1, -z1); @@ -645,10 +638,10 @@ void tst_QQuaternion::conjugate_data() } void tst_QQuaternion::conjugate() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, w1); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, w1); QQuaternion v1(w1, x1, y1, z1); QQuaternion v2(w1, -x1, -y1, -z1); @@ -659,121 +652,121 @@ void tst_QQuaternion::conjugate() // Test quaternion creation from an axis and an angle. void tst_QQuaternion::fromAxisAndAngle_data() { - QTest::addColumn<qreal>("x1"); - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("z1"); - QTest::addColumn<qreal>("angle"); + QTest::addColumn<float>("x1"); + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("z1"); + QTest::addColumn<float>("angle"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 0.0f << 0.0f << 0.0f; QTest::newRow("xonly") - << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)90.0f; + << 1.0f << 0.0f << 0.0f << 90.0f; QTest::newRow("yonly") - << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)180.0f; + << 0.0f << 1.0f << 0.0f << 180.0f; QTest::newRow("zonly") - << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)270.0f; + << 0.0f << 0.0f << 1.0f << 270.0f; QTest::newRow("complex") - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)45.0f; + << 1.0f << 2.0f << -3.0f << 45.0f; } void tst_QQuaternion::fromAxisAndAngle() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, angle); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, angle); // Use a straight-forward implementation of the algorithm at: // http://www.j3d.org/matrix_faq/matrfaq_latest.html#Q56 // to calculate the answer we expect to get. QVector3D vector = QVector3D(x1, y1, z1).normalized(); - qreal sin_a = qSin((angle * M_PI / 180.0) / 2.0); - qreal cos_a = qCos((angle * M_PI / 180.0) / 2.0); - QQuaternion result((qreal)cos_a, - (qreal)(vector.x() * sin_a), - (qreal)(vector.y() * sin_a), - (qreal)(vector.z() * sin_a)); + float sin_a = sinf((angle * M_PI / 180.0) / 2.0); + float cos_a = cosf((angle * M_PI / 180.0) / 2.0); + QQuaternion result(cos_a, + (vector.x() * sin_a), + (vector.y() * sin_a), + (vector.z() * sin_a)); result = result.normalized(); QQuaternion answer = QQuaternion::fromAxisAndAngle(QVector3D(x1, y1, z1), angle); - QVERIFY(fuzzyCompare(answer.x(), result.x())); - QVERIFY(fuzzyCompare(answer.y(), result.y())); - QVERIFY(fuzzyCompare(answer.z(), result.z())); - QVERIFY(fuzzyCompare(answer.scalar(), result.scalar())); + QVERIFY(qFuzzyCompare(answer.x(), result.x())); + QVERIFY(qFuzzyCompare(answer.y(), result.y())); + QVERIFY(qFuzzyCompare(answer.z(), result.z())); + QVERIFY(qFuzzyCompare(answer.scalar(), result.scalar())); answer = QQuaternion::fromAxisAndAngle(x1, y1, z1, angle); - QVERIFY(fuzzyCompare(answer.x(), result.x())); - QVERIFY(fuzzyCompare(answer.y(), result.y())); - QVERIFY(fuzzyCompare(answer.z(), result.z())); - QVERIFY(fuzzyCompare(answer.scalar(), result.scalar())); + QVERIFY(qFuzzyCompare(answer.x(), result.x())); + QVERIFY(qFuzzyCompare(answer.y(), result.y())); + QVERIFY(qFuzzyCompare(answer.z(), result.z())); + QVERIFY(qFuzzyCompare(answer.scalar(), result.scalar())); } // Test spherical interpolation of quaternions. void tst_QQuaternion::slerp_data() { - QTest::addColumn<qreal>("x1"); - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("z1"); - QTest::addColumn<qreal>("angle1"); - QTest::addColumn<qreal>("x2"); - QTest::addColumn<qreal>("y2"); - QTest::addColumn<qreal>("z2"); - QTest::addColumn<qreal>("angle2"); - QTest::addColumn<qreal>("t"); - QTest::addColumn<qreal>("x3"); - QTest::addColumn<qreal>("y3"); - QTest::addColumn<qreal>("z3"); - QTest::addColumn<qreal>("angle3"); + QTest::addColumn<float>("x1"); + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("z1"); + QTest::addColumn<float>("angle1"); + QTest::addColumn<float>("x2"); + QTest::addColumn<float>("y2"); + QTest::addColumn<float>("z2"); + QTest::addColumn<float>("angle2"); + QTest::addColumn<float>("t"); + QTest::addColumn<float>("x3"); + QTest::addColumn<float>("y3"); + QTest::addColumn<float>("z3"); + QTest::addColumn<float>("angle3"); QTest::newRow("first") - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)90.0f - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)180.0f - << (qreal)0.0f - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)90.0f; + << 1.0f << 2.0f << -3.0f << 90.0f + << 1.0f << 2.0f << -3.0f << 180.0f + << 0.0f + << 1.0f << 2.0f << -3.0f << 90.0f; QTest::newRow("first2") - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)90.0f - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)180.0f - << (qreal)-0.5f - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)90.0f; + << 1.0f << 2.0f << -3.0f << 90.0f + << 1.0f << 2.0f << -3.0f << 180.0f + << -0.5f + << 1.0f << 2.0f << -3.0f << 90.0f; QTest::newRow("second") - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)90.0f - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)180.0f - << (qreal)1.0f - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)180.0f; + << 1.0f << 2.0f << -3.0f << 90.0f + << 1.0f << 2.0f << -3.0f << 180.0f + << 1.0f + << 1.0f << 2.0f << -3.0f << 180.0f; QTest::newRow("second2") - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)90.0f - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)180.0f - << (qreal)1.5f - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)180.0f; + << 1.0f << 2.0f << -3.0f << 90.0f + << 1.0f << 2.0f << -3.0f << 180.0f + << 1.5f + << 1.0f << 2.0f << -3.0f << 180.0f; QTest::newRow("middle") - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)90.0f - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)180.0f - << (qreal)0.5f - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)135.0f; + << 1.0f << 2.0f << -3.0f << 90.0f + << 1.0f << 2.0f << -3.0f << 180.0f + << 0.5f + << 1.0f << 2.0f << -3.0f << 135.0f; QTest::newRow("wide angle") - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)0.0f - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)270.0f - << (qreal)0.5f - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)-45.0f; + << 1.0f << 2.0f << -3.0f << 0.0f + << 1.0f << 2.0f << -3.0f << 270.0f + << 0.5f + << 1.0f << 2.0f << -3.0f << -45.0f; } void tst_QQuaternion::slerp() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, angle1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, angle2); - QFETCH(qreal, t); - QFETCH(qreal, x3); - QFETCH(qreal, y3); - QFETCH(qreal, z3); - QFETCH(qreal, angle3); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, angle1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, angle2); + QFETCH(float, t); + QFETCH(float, x3); + QFETCH(float, y3); + QFETCH(float, z3); + QFETCH(float, angle3); QQuaternion q1 = QQuaternion::fromAxisAndAngle(x1, y1, z1, angle1); QQuaternion q2 = QQuaternion::fromAxisAndAngle(x2, y2, z2, angle2); @@ -781,10 +774,10 @@ void tst_QQuaternion::slerp() QQuaternion result = QQuaternion::slerp(q1, q2, t); - QVERIFY(fuzzyCompare(result.x(), q3.x())); - QVERIFY(fuzzyCompare(result.y(), q3.y())); - QVERIFY(fuzzyCompare(result.z(), q3.z())); - QVERIFY(fuzzyCompare(result.scalar(), q3.scalar())); + QVERIFY(qFuzzyCompare(result.x(), q3.x())); + QVERIFY(qFuzzyCompare(result.y(), q3.y())); + QVERIFY(qFuzzyCompare(result.z(), q3.z())); + QVERIFY(qFuzzyCompare(result.scalar(), q3.scalar())); } // Test normalized linear interpolation of quaternions. @@ -794,22 +787,22 @@ void tst_QQuaternion::nlerp_data() } void tst_QQuaternion::nlerp() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, angle1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, angle2); - QFETCH(qreal, t); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, angle1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, angle2); + QFETCH(float, t); QQuaternion q1 = QQuaternion::fromAxisAndAngle(x1, y1, z1, angle1); QQuaternion q2 = QQuaternion::fromAxisAndAngle(x2, y2, z2, angle2); QQuaternion result = QQuaternion::nlerp(q1, q2, t); - qreal resultx, resulty, resultz, resultscalar; + float resultx, resulty, resultz, resultscalar; if (t <= 0.0f) { resultx = q1.x(); resulty = q1.y(); @@ -835,10 +828,10 @@ void tst_QQuaternion::nlerp() QQuaternion q3 = QQuaternion(resultscalar, resultx, resulty, resultz).normalized(); - QVERIFY(fuzzyCompare(result.x(), q3.x())); - QVERIFY(fuzzyCompare(result.y(), q3.y())); - QVERIFY(fuzzyCompare(result.z(), q3.z())); - QVERIFY(fuzzyCompare(result.scalar(), q3.scalar())); + QVERIFY(qFuzzyCompare(result.x(), q3.x())); + QVERIFY(qFuzzyCompare(result.y(), q3.y())); + QVERIFY(qFuzzyCompare(result.z(), q3.z())); + QVERIFY(qFuzzyCompare(result.scalar(), q3.scalar())); } class tst_QQuaternionProperties : public QObject @@ -863,19 +856,19 @@ void tst_QQuaternion::properties() obj.setQuaternion(QQuaternion(6.0f, 7.0f, 8.0f, 9.0f)); QQuaternion q = qvariant_cast<QQuaternion>(obj.property("quaternion")); - QCOMPARE(q.scalar(), (qreal)6.0f); - QCOMPARE(q.x(), (qreal)7.0f); - QCOMPARE(q.y(), (qreal)8.0f); - QCOMPARE(q.z(), (qreal)9.0f); + QCOMPARE(q.scalar(), 6.0f); + QCOMPARE(q.x(), 7.0f); + QCOMPARE(q.y(), 8.0f); + QCOMPARE(q.z(), 9.0f); obj.setProperty("quaternion", QVariant::fromValue(QQuaternion(-6.0f, -7.0f, -8.0f, -9.0f))); q = qvariant_cast<QQuaternion>(obj.property("quaternion")); - QCOMPARE(q.scalar(), (qreal)-6.0f); - QCOMPARE(q.x(), (qreal)-7.0f); - QCOMPARE(q.y(), (qreal)-8.0f); - QCOMPARE(q.z(), (qreal)-9.0f); + QCOMPARE(q.scalar(), -6.0f); + QCOMPARE(q.x(), -7.0f); + QCOMPARE(q.y(), -8.0f); + QCOMPARE(q.z(), -9.0f); } void tst_QQuaternion::metaTypes() diff --git a/tests/auto/gui/math3d/qvectornd/tst_qvectornd.cpp b/tests/auto/gui/math3d/qvectornd/tst_qvectornd.cpp index 4b6d9839a2..2ab896f49e 100644 --- a/tests/auto/gui/math3d/qvectornd/tst_qvectornd.cpp +++ b/tests/auto/gui/math3d/qvectornd/tst_qvectornd.cpp @@ -144,87 +144,78 @@ private slots: void metaTypes(); }; -// QVector2/3/4D use float internally, which can sometimes lead -// to precision issues when converting to and from qreal. -// This fuzzy compare is slightly "fuzzier" than the default -// qFuzzyCompare for qreal to compensate. -static bool fuzzyCompare(qreal x, qreal y) -{ - return qFuzzyIsNull((float)(x - y)); -} - // Test the creation of QVector2D objects in various ways: // construct, copy, and modify. void tst_QVectorND::create2() { QVector2D null; - QCOMPARE(null.x(), (qreal)0.0f); - QCOMPARE(null.y(), (qreal)0.0f); + QCOMPARE(null.x(), 0.0f); + QCOMPARE(null.y(), 0.0f); QVERIFY(null.isNull()); - QVector2D nullNegativeZero(qreal(-0.0), qreal(-0.0)); - QCOMPARE(nullNegativeZero.x(), (qreal)-0.0f); - QCOMPARE(nullNegativeZero.y(), (qreal)-0.0f); + QVector2D nullNegativeZero(-0.0f, -0.0f); + QCOMPARE(nullNegativeZero.x(), -0.0f); + QCOMPARE(nullNegativeZero.y(), -0.0f); QVERIFY(nullNegativeZero.isNull()); QVector2D v1(1.0f, 2.5f); - QCOMPARE(v1.x(), (qreal)1.0f); - QCOMPARE(v1.y(), (qreal)2.5f); + QCOMPARE(v1.x(), 1.0f); + QCOMPARE(v1.y(), 2.5f); QVERIFY(!v1.isNull()); QVector2D v1i(1, 2); - QCOMPARE(v1i.x(), (qreal)1.0f); - QCOMPARE(v1i.y(), (qreal)2.0f); + QCOMPARE(v1i.x(), 1.0f); + QCOMPARE(v1i.y(), 2.0f); QVERIFY(!v1i.isNull()); QVector2D v2(v1); - QCOMPARE(v2.x(), (qreal)1.0f); - QCOMPARE(v2.y(), (qreal)2.5f); + QCOMPARE(v2.x(), 1.0f); + QCOMPARE(v2.y(), 2.5f); QVERIFY(!v2.isNull()); QVector2D v4; - QCOMPARE(v4.x(), (qreal)0.0f); - QCOMPARE(v4.y(), (qreal)0.0f); + QCOMPARE(v4.x(), 0.0f); + QCOMPARE(v4.y(), 0.0f); QVERIFY(v4.isNull()); v4 = v1; - QCOMPARE(v4.x(), (qreal)1.0f); - QCOMPARE(v4.y(), (qreal)2.5f); + QCOMPARE(v4.x(), 1.0f); + QCOMPARE(v4.y(), 2.5f); QVERIFY(!v4.isNull()); QVector2D v5(QPoint(1, 2)); - QCOMPARE(v5.x(), (qreal)1.0f); - QCOMPARE(v5.y(), (qreal)2.0f); + QCOMPARE(v5.x(), 1.0f); + QCOMPARE(v5.y(), 2.0f); QVERIFY(!v5.isNull()); QVector2D v6(QPointF(1, 2.5)); - QCOMPARE(v6.x(), (qreal)1.0f); - QCOMPARE(v6.y(), (qreal)2.5f); + QCOMPARE(v6.x(), 1.0f); + QCOMPARE(v6.y(), 2.5f); QVERIFY(!v6.isNull()); QVector2D v7(QVector3D(1.0f, 2.5f, 54.25f)); - QCOMPARE(v7.x(), (qreal)1.0f); - QCOMPARE(v7.y(), (qreal)2.5f); + QCOMPARE(v7.x(), 1.0f); + QCOMPARE(v7.y(), 2.5f); QVERIFY(!v6.isNull()); QVector2D v8(QVector4D(1.0f, 2.5f, 54.25f, 34.0f)); - QCOMPARE(v8.x(), (qreal)1.0f); - QCOMPARE(v8.y(), (qreal)2.5f); + QCOMPARE(v8.x(), 1.0f); + QCOMPARE(v8.y(), 2.5f); QVERIFY(!v6.isNull()); v1.setX(3.0f); - QCOMPARE(v1.x(), (qreal)3.0f); - QCOMPARE(v1.y(), (qreal)2.5f); + QCOMPARE(v1.x(), 3.0f); + QCOMPARE(v1.y(), 2.5f); QVERIFY(!v1.isNull()); v1.setY(10.5f); - QCOMPARE(v1.x(), (qreal)3.0f); - QCOMPARE(v1.y(), (qreal)10.5f); + QCOMPARE(v1.x(), 3.0f); + QCOMPARE(v1.y(), 10.5f); QVERIFY(!v1.isNull()); v1.setX(0.0f); v1.setY(0.0f); - QCOMPARE(v1.x(), (qreal)0.0f); - QCOMPARE(v1.y(), (qreal)0.0f); + QCOMPARE(v1.x(), 0.0f); + QCOMPARE(v1.y(), 0.0f); QVERIFY(v1.isNull()); QPoint p1 = v8.toPoint(); @@ -232,19 +223,19 @@ void tst_QVectorND::create2() QCOMPARE(p1.y(), 3); QPointF p2 = v8.toPointF(); - QCOMPARE((qreal)p2.x(), (qreal)1.0f); - QCOMPARE((qreal)p2.y(), (qreal)2.5f); + QCOMPARE(p2.x(), 1.0f); + QCOMPARE(p2.y(), 2.5f); QVector3D v9 = v8.toVector3D(); - QCOMPARE(v9.x(), (qreal)1.0f); - QCOMPARE(v9.y(), (qreal)2.5f); - QCOMPARE(v9.z(), (qreal)0.0f); + QCOMPARE(v9.x(), 1.0f); + QCOMPARE(v9.y(), 2.5f); + QCOMPARE(v9.z(), 0.0f); QVector4D v10 = v8.toVector4D(); - QCOMPARE(v10.x(), (qreal)1.0f); - QCOMPARE(v10.y(), (qreal)2.5f); - QCOMPARE(v10.z(), (qreal)0.0f); - QCOMPARE(v10.w(), (qreal)0.0f); + QCOMPARE(v10.x(), 1.0f); + QCOMPARE(v10.y(), 2.5f); + QCOMPARE(v10.z(), 0.0f); + QCOMPARE(v10.w(), 0.0f); } // Test the creation of QVector3D objects in various ways: @@ -252,112 +243,112 @@ void tst_QVectorND::create2() void tst_QVectorND::create3() { QVector3D null; - QCOMPARE(null.x(), (qreal)0.0f); - QCOMPARE(null.y(), (qreal)0.0f); - QCOMPARE(null.z(), (qreal)0.0f); + QCOMPARE(null.x(), 0.0f); + QCOMPARE(null.y(), 0.0f); + QCOMPARE(null.z(), 0.0f); QVERIFY(null.isNull()); - QVector3D nullNegativeZero(qreal(-0.0), qreal(-0.0), qreal(-0.0)); - QCOMPARE(nullNegativeZero.x(), (qreal)-0.0f); - QCOMPARE(nullNegativeZero.y(), (qreal)-0.0f); - QCOMPARE(nullNegativeZero.z(), (qreal)-0.0f); + QVector3D nullNegativeZero(-0.0f, -0.0f, -0.0f); + QCOMPARE(nullNegativeZero.x(), -0.0f); + QCOMPARE(nullNegativeZero.y(), -0.0f); + QCOMPARE(nullNegativeZero.z(), -0.0f); QVERIFY(nullNegativeZero.isNull()); QVector3D v1(1.0f, 2.5f, -89.25f); - QCOMPARE(v1.x(), (qreal)1.0f); - QCOMPARE(v1.y(), (qreal)2.5f); - QCOMPARE(v1.z(), (qreal)-89.25f); + QCOMPARE(v1.x(), 1.0f); + QCOMPARE(v1.y(), 2.5f); + QCOMPARE(v1.z(), -89.25f); QVERIFY(!v1.isNull()); QVector3D v1i(1, 2, -89); - QCOMPARE(v1i.x(), (qreal)1.0f); - QCOMPARE(v1i.y(), (qreal)2.0f); - QCOMPARE(v1i.z(), (qreal)-89.0f); + QCOMPARE(v1i.x(), 1.0f); + QCOMPARE(v1i.y(), 2.0f); + QCOMPARE(v1i.z(), -89.0f); QVERIFY(!v1i.isNull()); QVector3D v2(v1); - QCOMPARE(v2.x(), (qreal)1.0f); - QCOMPARE(v2.y(), (qreal)2.5f); - QCOMPARE(v2.z(), (qreal)-89.25f); + QCOMPARE(v2.x(), 1.0f); + QCOMPARE(v2.y(), 2.5f); + QCOMPARE(v2.z(), -89.25f); QVERIFY(!v2.isNull()); QVector3D v3(1.0f, 2.5f, 0.0f); - QCOMPARE(v3.x(), (qreal)1.0f); - QCOMPARE(v3.y(), (qreal)2.5f); - QCOMPARE(v3.z(), (qreal)0.0f); + QCOMPARE(v3.x(), 1.0f); + QCOMPARE(v3.y(), 2.5f); + QCOMPARE(v3.z(), 0.0f); QVERIFY(!v3.isNull()); QVector3D v3i(1, 2, 0); - QCOMPARE(v3i.x(), (qreal)1.0f); - QCOMPARE(v3i.y(), (qreal)2.0f); - QCOMPARE(v3i.z(), (qreal)0.0f); + QCOMPARE(v3i.x(), 1.0f); + QCOMPARE(v3i.y(), 2.0f); + QCOMPARE(v3i.z(), 0.0f); QVERIFY(!v3i.isNull()); QVector3D v4; - QCOMPARE(v4.x(), (qreal)0.0f); - QCOMPARE(v4.y(), (qreal)0.0f); - QCOMPARE(v4.z(), (qreal)0.0f); + QCOMPARE(v4.x(), 0.0f); + QCOMPARE(v4.y(), 0.0f); + QCOMPARE(v4.z(), 0.0f); QVERIFY(v4.isNull()); v4 = v1; - QCOMPARE(v4.x(), (qreal)1.0f); - QCOMPARE(v4.y(), (qreal)2.5f); - QCOMPARE(v4.z(), (qreal)-89.25f); + QCOMPARE(v4.x(), 1.0f); + QCOMPARE(v4.y(), 2.5f); + QCOMPARE(v4.z(), -89.25f); QVERIFY(!v4.isNull()); QVector3D v5(QPoint(1, 2)); - QCOMPARE(v5.x(), (qreal)1.0f); - QCOMPARE(v5.y(), (qreal)2.0f); - QCOMPARE(v5.z(), (qreal)0.0f); + QCOMPARE(v5.x(), 1.0f); + QCOMPARE(v5.y(), 2.0f); + QCOMPARE(v5.z(), 0.0f); QVERIFY(!v5.isNull()); QVector3D v6(QPointF(1, 2.5)); - QCOMPARE(v6.x(), (qreal)1.0f); - QCOMPARE(v6.y(), (qreal)2.5f); - QCOMPARE(v6.z(), (qreal)0.0f); + QCOMPARE(v6.x(), 1.0f); + QCOMPARE(v6.y(), 2.5f); + QCOMPARE(v6.z(), 0.0f); QVERIFY(!v6.isNull()); QVector3D v7(QVector2D(1.0f, 2.5f)); - QCOMPARE(v7.x(), (qreal)1.0f); - QCOMPARE(v7.y(), (qreal)2.5f); - QCOMPARE(v7.z(), (qreal)0.0f); + QCOMPARE(v7.x(), 1.0f); + QCOMPARE(v7.y(), 2.5f); + QCOMPARE(v7.z(), 0.0f); QVERIFY(!v7.isNull()); QVector3D v8(QVector2D(1.0f, 2.5f), 54.25f); - QCOMPARE(v8.x(), (qreal)1.0f); - QCOMPARE(v8.y(), (qreal)2.5f); - QCOMPARE(v8.z(), (qreal)54.25f); + QCOMPARE(v8.x(), 1.0f); + QCOMPARE(v8.y(), 2.5f); + QCOMPARE(v8.z(), 54.25f); QVERIFY(!v8.isNull()); QVector3D v9(QVector4D(1.0f, 2.5f, 54.25f, 34.0f)); - QCOMPARE(v9.x(), (qreal)1.0f); - QCOMPARE(v9.y(), (qreal)2.5f); - QCOMPARE(v9.z(), (qreal)54.25f); + QCOMPARE(v9.x(), 1.0f); + QCOMPARE(v9.y(), 2.5f); + QCOMPARE(v9.z(), 54.25f); QVERIFY(!v9.isNull()); v1.setX(3.0f); - QCOMPARE(v1.x(), (qreal)3.0f); - QCOMPARE(v1.y(), (qreal)2.5f); - QCOMPARE(v1.z(), (qreal)-89.25f); + QCOMPARE(v1.x(), 3.0f); + QCOMPARE(v1.y(), 2.5f); + QCOMPARE(v1.z(), -89.25f); QVERIFY(!v1.isNull()); v1.setY(10.5f); - QCOMPARE(v1.x(), (qreal)3.0f); - QCOMPARE(v1.y(), (qreal)10.5f); - QCOMPARE(v1.z(), (qreal)-89.25f); + QCOMPARE(v1.x(), 3.0f); + QCOMPARE(v1.y(), 10.5f); + QCOMPARE(v1.z(), -89.25f); QVERIFY(!v1.isNull()); v1.setZ(15.5f); - QCOMPARE(v1.x(), (qreal)3.0f); - QCOMPARE(v1.y(), (qreal)10.5f); - QCOMPARE(v1.z(), (qreal)15.5f); + QCOMPARE(v1.x(), 3.0f); + QCOMPARE(v1.y(), 10.5f); + QCOMPARE(v1.z(), 15.5f); QVERIFY(!v1.isNull()); v1.setX(0.0f); v1.setY(0.0f); v1.setZ(0.0f); - QCOMPARE(v1.x(), (qreal)0.0f); - QCOMPARE(v1.y(), (qreal)0.0f); - QCOMPARE(v1.z(), (qreal)0.0f); + QCOMPARE(v1.x(), 0.0f); + QCOMPARE(v1.y(), 0.0f); + QCOMPARE(v1.z(), 0.0f); QVERIFY(v1.isNull()); QPoint p1 = v8.toPoint(); @@ -365,18 +356,18 @@ void tst_QVectorND::create3() QCOMPARE(p1.y(), 3); QPointF p2 = v8.toPointF(); - QCOMPARE((qreal)p2.x(), (qreal)1.0f); - QCOMPARE((qreal)p2.y(), (qreal)2.5f); + QCOMPARE(p2.x(), 1.0f); + QCOMPARE(p2.y(), 2.5f); QVector2D v10 = v8.toVector2D(); - QCOMPARE(v10.x(), (qreal)1.0f); - QCOMPARE(v10.y(), (qreal)2.5f); + QCOMPARE(v10.x(), 1.0f); + QCOMPARE(v10.y(), 2.5f); QVector4D v11 = v8.toVector4D(); - QCOMPARE(v11.x(), (qreal)1.0f); - QCOMPARE(v11.y(), (qreal)2.5f); - QCOMPARE(v11.z(), (qreal)54.25f); - QCOMPARE(v11.w(), (qreal)0.0f); + QCOMPARE(v11.x(), 1.0f); + QCOMPARE(v11.y(), 2.5f); + QCOMPARE(v11.z(), 54.25f); + QCOMPARE(v11.w(), 0.0f); } // Test the creation of QVector4D objects in various ways: @@ -384,159 +375,159 @@ void tst_QVectorND::create3() void tst_QVectorND::create4() { QVector4D null; - QCOMPARE(null.x(), (qreal)0.0f); - QCOMPARE(null.y(), (qreal)0.0f); - QCOMPARE(null.z(), (qreal)0.0f); - QCOMPARE(null.w(), (qreal)0.0f); + QCOMPARE(null.x(), 0.0f); + QCOMPARE(null.y(), 0.0f); + QCOMPARE(null.z(), 0.0f); + QCOMPARE(null.w(), 0.0f); QVERIFY(null.isNull()); - QVector4D nullNegativeZero(qreal(-0.0), qreal(-0.0), qreal(-0.0), qreal(-0.0)); - QCOMPARE(nullNegativeZero.x(), (qreal)-0.0f); - QCOMPARE(nullNegativeZero.y(), (qreal)-0.0f); - QCOMPARE(nullNegativeZero.z(), (qreal)-0.0f); - QCOMPARE(nullNegativeZero.w(), (qreal)-0.0f); + QVector4D nullNegativeZero(-0.0f, -0.0f, -0.0f, -0.0f); + QCOMPARE(nullNegativeZero.x(), -0.0f); + QCOMPARE(nullNegativeZero.y(), -0.0f); + QCOMPARE(nullNegativeZero.z(), -0.0f); + QCOMPARE(nullNegativeZero.w(), -0.0f); QVERIFY(nullNegativeZero.isNull()); QVector4D v1(1.0f, 2.5f, -89.25f, 34.0f); - QCOMPARE(v1.x(), (qreal)1.0f); - QCOMPARE(v1.y(), (qreal)2.5f); - QCOMPARE(v1.z(), (qreal)-89.25f); - QCOMPARE(v1.w(), (qreal)34.0f); + QCOMPARE(v1.x(), 1.0f); + QCOMPARE(v1.y(), 2.5f); + QCOMPARE(v1.z(), -89.25f); + QCOMPARE(v1.w(), 34.0f); QVERIFY(!v1.isNull()); QVector4D v1i(1, 2, -89, 34); - QCOMPARE(v1i.x(), (qreal)1.0f); - QCOMPARE(v1i.y(), (qreal)2.0f); - QCOMPARE(v1i.z(), (qreal)-89.0f); - QCOMPARE(v1i.w(), (qreal)34.0f); + QCOMPARE(v1i.x(), 1.0f); + QCOMPARE(v1i.y(), 2.0f); + QCOMPARE(v1i.z(), -89.0f); + QCOMPARE(v1i.w(), 34.0f); QVERIFY(!v1i.isNull()); QVector4D v2(v1); - QCOMPARE(v2.x(), (qreal)1.0f); - QCOMPARE(v2.y(), (qreal)2.5f); - QCOMPARE(v2.z(), (qreal)-89.25f); - QCOMPARE(v2.w(), (qreal)34.0f); + QCOMPARE(v2.x(), 1.0f); + QCOMPARE(v2.y(), 2.5f); + QCOMPARE(v2.z(), -89.25f); + QCOMPARE(v2.w(), 34.0f); QVERIFY(!v2.isNull()); QVector4D v3(1.0f, 2.5f, 0.0f, 0.0f); - QCOMPARE(v3.x(), (qreal)1.0f); - QCOMPARE(v3.y(), (qreal)2.5f); - QCOMPARE(v3.z(), (qreal)0.0f); - QCOMPARE(v3.w(), (qreal)0.0f); + QCOMPARE(v3.x(), 1.0f); + QCOMPARE(v3.y(), 2.5f); + QCOMPARE(v3.z(), 0.0f); + QCOMPARE(v3.w(), 0.0f); QVERIFY(!v3.isNull()); QVector4D v3i(1, 2, 0, 0); - QCOMPARE(v3i.x(), (qreal)1.0f); - QCOMPARE(v3i.y(), (qreal)2.0f); - QCOMPARE(v3i.z(), (qreal)0.0f); - QCOMPARE(v3i.w(), (qreal)0.0f); + QCOMPARE(v3i.x(), 1.0f); + QCOMPARE(v3i.y(), 2.0f); + QCOMPARE(v3i.z(), 0.0f); + QCOMPARE(v3i.w(), 0.0f); QVERIFY(!v3i.isNull()); QVector4D v3b(1.0f, 2.5f, -89.25f, 0.0f); - QCOMPARE(v3b.x(), (qreal)1.0f); - QCOMPARE(v3b.y(), (qreal)2.5f); - QCOMPARE(v3b.z(), (qreal)-89.25f); - QCOMPARE(v3b.w(), (qreal)0.0f); + QCOMPARE(v3b.x(), 1.0f); + QCOMPARE(v3b.y(), 2.5f); + QCOMPARE(v3b.z(), -89.25f); + QCOMPARE(v3b.w(), 0.0f); QVERIFY(!v3b.isNull()); QVector4D v3bi(1, 2, -89, 0); - QCOMPARE(v3bi.x(), (qreal)1.0f); - QCOMPARE(v3bi.y(), (qreal)2.0f); - QCOMPARE(v3bi.z(), (qreal)-89.0f); - QCOMPARE(v3bi.w(), (qreal)0.0f); + QCOMPARE(v3bi.x(), 1.0f); + QCOMPARE(v3bi.y(), 2.0f); + QCOMPARE(v3bi.z(), -89.0f); + QCOMPARE(v3bi.w(), 0.0f); QVERIFY(!v3bi.isNull()); QVector4D v4; - QCOMPARE(v4.x(), (qreal)0.0f); - QCOMPARE(v4.y(), (qreal)0.0f); - QCOMPARE(v4.z(), (qreal)0.0f); - QCOMPARE(v4.w(), (qreal)0.0f); + QCOMPARE(v4.x(), 0.0f); + QCOMPARE(v4.y(), 0.0f); + QCOMPARE(v4.z(), 0.0f); + QCOMPARE(v4.w(), 0.0f); QVERIFY(v4.isNull()); v4 = v1; - QCOMPARE(v4.x(), (qreal)1.0f); - QCOMPARE(v4.y(), (qreal)2.5f); - QCOMPARE(v4.z(), (qreal)-89.25f); - QCOMPARE(v4.w(), (qreal)34.0f); + QCOMPARE(v4.x(), 1.0f); + QCOMPARE(v4.y(), 2.5f); + QCOMPARE(v4.z(), -89.25f); + QCOMPARE(v4.w(), 34.0f); QVERIFY(!v4.isNull()); QVector4D v5(QPoint(1, 2)); - QCOMPARE(v5.x(), (qreal)1.0f); - QCOMPARE(v5.y(), (qreal)2.0f); - QCOMPARE(v5.z(), (qreal)0.0f); - QCOMPARE(v5.w(), (qreal)0.0f); + QCOMPARE(v5.x(), 1.0f); + QCOMPARE(v5.y(), 2.0f); + QCOMPARE(v5.z(), 0.0f); + QCOMPARE(v5.w(), 0.0f); QVERIFY(!v5.isNull()); QVector4D v6(QPointF(1, 2.5)); - QCOMPARE(v6.x(), (qreal)1.0f); - QCOMPARE(v6.y(), (qreal)2.5f); - QCOMPARE(v6.z(), (qreal)0.0f); - QCOMPARE(v6.w(), (qreal)0.0f); + QCOMPARE(v6.x(), 1.0f); + QCOMPARE(v6.y(), 2.5f); + QCOMPARE(v6.z(), 0.0f); + QCOMPARE(v6.w(), 0.0f); QVERIFY(!v6.isNull()); QVector4D v7(QVector2D(1.0f, 2.5f)); - QCOMPARE(v7.x(), (qreal)1.0f); - QCOMPARE(v7.y(), (qreal)2.5f); - QCOMPARE(v7.z(), (qreal)0.0f); - QCOMPARE(v7.w(), (qreal)0.0f); + QCOMPARE(v7.x(), 1.0f); + QCOMPARE(v7.y(), 2.5f); + QCOMPARE(v7.z(), 0.0f); + QCOMPARE(v7.w(), 0.0f); QVERIFY(!v7.isNull()); QVector4D v8(QVector3D(1.0f, 2.5f, -89.25f)); - QCOMPARE(v8.x(), (qreal)1.0f); - QCOMPARE(v8.y(), (qreal)2.5f); - QCOMPARE(v8.z(), (qreal)-89.25f); - QCOMPARE(v8.w(), (qreal)0.0f); + QCOMPARE(v8.x(), 1.0f); + QCOMPARE(v8.y(), 2.5f); + QCOMPARE(v8.z(), -89.25f); + QCOMPARE(v8.w(), 0.0f); QVERIFY(!v8.isNull()); QVector4D v9(QVector3D(1.0f, 2.5f, -89.25f), 34); - QCOMPARE(v9.x(), (qreal)1.0f); - QCOMPARE(v9.y(), (qreal)2.5f); - QCOMPARE(v9.z(), (qreal)-89.25f); - QCOMPARE(v9.w(), (qreal)34.0f); + QCOMPARE(v9.x(), 1.0f); + QCOMPARE(v9.y(), 2.5f); + QCOMPARE(v9.z(), -89.25f); + QCOMPARE(v9.w(), 34.0f); QVERIFY(!v9.isNull()); QVector4D v10(QVector2D(1.0f, 2.5f), 23.5f, -8); - QCOMPARE(v10.x(), (qreal)1.0f); - QCOMPARE(v10.y(), (qreal)2.5f); - QCOMPARE(v10.z(), (qreal)23.5f); - QCOMPARE(v10.w(), (qreal)-8.0f); + QCOMPARE(v10.x(), 1.0f); + QCOMPARE(v10.y(), 2.5f); + QCOMPARE(v10.z(), 23.5f); + QCOMPARE(v10.w(), -8.0f); QVERIFY(!v10.isNull()); v1.setX(3.0f); - QCOMPARE(v1.x(), (qreal)3.0f); - QCOMPARE(v1.y(), (qreal)2.5f); - QCOMPARE(v1.z(), (qreal)-89.25f); - QCOMPARE(v1.w(), (qreal)34.0f); + QCOMPARE(v1.x(), 3.0f); + QCOMPARE(v1.y(), 2.5f); + QCOMPARE(v1.z(), -89.25f); + QCOMPARE(v1.w(), 34.0f); QVERIFY(!v1.isNull()); v1.setY(10.5f); - QCOMPARE(v1.x(), (qreal)3.0f); - QCOMPARE(v1.y(), (qreal)10.5f); - QCOMPARE(v1.z(), (qreal)-89.25f); - QCOMPARE(v1.w(), (qreal)34.0f); + QCOMPARE(v1.x(), 3.0f); + QCOMPARE(v1.y(), 10.5f); + QCOMPARE(v1.z(), -89.25f); + QCOMPARE(v1.w(), 34.0f); QVERIFY(!v1.isNull()); v1.setZ(15.5f); - QCOMPARE(v1.x(), (qreal)3.0f); - QCOMPARE(v1.y(), (qreal)10.5f); - QCOMPARE(v1.z(), (qreal)15.5f); - QCOMPARE(v1.w(), (qreal)34.0f); + QCOMPARE(v1.x(), 3.0f); + QCOMPARE(v1.y(), 10.5f); + QCOMPARE(v1.z(), 15.5f); + QCOMPARE(v1.w(), 34.0f); QVERIFY(!v1.isNull()); v1.setW(6.0f); - QCOMPARE(v1.x(), (qreal)3.0f); - QCOMPARE(v1.y(), (qreal)10.5f); - QCOMPARE(v1.z(), (qreal)15.5f); - QCOMPARE(v1.w(), (qreal)6.0f); + QCOMPARE(v1.x(), 3.0f); + QCOMPARE(v1.y(), 10.5f); + QCOMPARE(v1.z(), 15.5f); + QCOMPARE(v1.w(), 6.0f); QVERIFY(!v1.isNull()); v1.setX(0.0f); v1.setY(0.0f); v1.setZ(0.0f); v1.setW(0.0f); - QCOMPARE(v1.x(), (qreal)0.0f); - QCOMPARE(v1.y(), (qreal)0.0f); - QCOMPARE(v1.z(), (qreal)0.0f); - QCOMPARE(v1.w(), (qreal)0.0f); + QCOMPARE(v1.x(), 0.0f); + QCOMPARE(v1.y(), 0.0f); + QCOMPARE(v1.z(), 0.0f); + QCOMPARE(v1.w(), 0.0f); QVERIFY(v1.isNull()); QPoint p1 = v8.toPoint(); @@ -544,30 +535,30 @@ void tst_QVectorND::create4() QCOMPARE(p1.y(), 3); QPointF p2 = v8.toPointF(); - QCOMPARE((qreal)p2.x(), (qreal)1.0f); - QCOMPARE((qreal)p2.y(), (qreal)2.5f); + QCOMPARE(p2.x(), 1.0f); + QCOMPARE(p2.y(), 2.5f); QVector2D v11 = v8.toVector2D(); - QCOMPARE(v11.x(), (qreal)1.0f); - QCOMPARE(v11.y(), (qreal)2.5f); + QCOMPARE(v11.x(), 1.0f); + QCOMPARE(v11.y(), 2.5f); QVector3D v12 = v8.toVector3D(); - QCOMPARE(v12.x(), (qreal)1.0f); - QCOMPARE(v12.y(), (qreal)2.5f); - QCOMPARE(v12.z(), (qreal)-89.25f); + QCOMPARE(v12.x(), 1.0f); + QCOMPARE(v12.y(), 2.5f); + QCOMPARE(v12.z(), -89.25f); QVector2D v13 = v9.toVector2DAffine(); - QVERIFY(fuzzyCompare(v13.x(), (qreal)(1.0f / 34.0f))); - QVERIFY(fuzzyCompare(v13.y(), (qreal)(2.5f / 34.0f))); + QVERIFY(qFuzzyCompare(v13.x(), (1.0f / 34.0f))); + QVERIFY(qFuzzyCompare(v13.y(), (2.5f / 34.0f))); QVector4D zerow(1.0f, 2.0f, 3.0f, 0.0f); v13 = zerow.toVector2DAffine(); QVERIFY(v13.isNull()); QVector3D v14 = v9.toVector3DAffine(); - QVERIFY(fuzzyCompare(v14.x(), (qreal)(1.0f / 34.0f))); - QVERIFY(fuzzyCompare(v14.y(), (qreal)(2.5f / 34.0f))); - QVERIFY(fuzzyCompare(v14.z(), (qreal)(-89.25f / 34.0f))); + QVERIFY(qFuzzyCompare(v14.x(), (1.0f / 34.0f))); + QVERIFY(qFuzzyCompare(v14.y(), (2.5f / 34.0f))); + QVERIFY(qFuzzyCompare(v14.z(), (-89.25f / 34.0f))); v14 = zerow.toVector3DAffine(); QVERIFY(v14.isNull()); @@ -576,22 +567,22 @@ void tst_QVectorND::create4() // Test vector length computation for 2D vectors. void tst_QVectorND::length2_data() { - QTest::addColumn<qreal>("x"); - QTest::addColumn<qreal>("y"); - QTest::addColumn<qreal>("len"); + QTest::addColumn<float>("x"); + QTest::addColumn<float>("y"); + QTest::addColumn<float>("len"); - QTest::newRow("null") << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; - QTest::newRow("1x") << (qreal)1.0f << (qreal)0.0f << (qreal)1.0f; - QTest::newRow("1y") << (qreal)0.0f << (qreal)1.0f << (qreal)1.0f; - QTest::newRow("-1x") << (qreal)-1.0f << (qreal)0.0f << (qreal)1.0f; - QTest::newRow("-1y") << (qreal)0.0f << (qreal)-1.0f << (qreal)1.0f; - QTest::newRow("two") << (qreal)2.0f << (qreal)-2.0f << (qreal)qSqrt(8.0f); + QTest::newRow("null") << 0.0f << 0.0f << 0.0f; + QTest::newRow("1x") << 1.0f << 0.0f << 1.0f; + QTest::newRow("1y") << 0.0f << 1.0f << 1.0f; + QTest::newRow("-1x") << -1.0f << 0.0f << 1.0f; + QTest::newRow("-1y") << 0.0f << -1.0f << 1.0f; + QTest::newRow("two") << 2.0f << -2.0f << sqrtf(8.0f); } void tst_QVectorND::length2() { - QFETCH(qreal, x); - QFETCH(qreal, y); - QFETCH(qreal, len); + QFETCH(float, x); + QFETCH(float, y); + QFETCH(float, len); QVector2D v(x, y); QCOMPARE(v.length(), len); @@ -601,26 +592,26 @@ void tst_QVectorND::length2() // Test vector length computation for 3D vectors. void tst_QVectorND::length3_data() { - QTest::addColumn<qreal>("x"); - QTest::addColumn<qreal>("y"); - QTest::addColumn<qreal>("z"); - QTest::addColumn<qreal>("len"); + QTest::addColumn<float>("x"); + QTest::addColumn<float>("y"); + QTest::addColumn<float>("z"); + QTest::addColumn<float>("len"); - QTest::newRow("null") << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; - QTest::newRow("1x") << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; - QTest::newRow("1y") << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)1.0f; - QTest::newRow("1z") << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)1.0f; - QTest::newRow("-1x") << (qreal)-1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; - QTest::newRow("-1y") << (qreal)0.0f << (qreal)-1.0f << (qreal)0.0f << (qreal)1.0f; - QTest::newRow("-1z") << (qreal)0.0f << (qreal)0.0f << (qreal)-1.0f << (qreal)1.0f; - QTest::newRow("two") << (qreal)2.0f << (qreal)-2.0f << (qreal)2.0f << (qreal)qSqrt(12.0f); + QTest::newRow("null") << 0.0f << 0.0f << 0.0f << 0.0f; + QTest::newRow("1x") << 1.0f << 0.0f << 0.0f << 1.0f; + QTest::newRow("1y") << 0.0f << 1.0f << 0.0f << 1.0f; + QTest::newRow("1z") << 0.0f << 0.0f << 1.0f << 1.0f; + QTest::newRow("-1x") << -1.0f << 0.0f << 0.0f << 1.0f; + QTest::newRow("-1y") << 0.0f << -1.0f << 0.0f << 1.0f; + QTest::newRow("-1z") << 0.0f << 0.0f << -1.0f << 1.0f; + QTest::newRow("two") << 2.0f << -2.0f << 2.0f << sqrtf(12.0f); } void tst_QVectorND::length3() { - QFETCH(qreal, x); - QFETCH(qreal, y); - QFETCH(qreal, z); - QFETCH(qreal, len); + QFETCH(float, x); + QFETCH(float, y); + QFETCH(float, z); + QFETCH(float, len); QVector3D v(x, y, z); QCOMPARE(v.length(), len); @@ -630,30 +621,30 @@ void tst_QVectorND::length3() // Test vector length computation for 4D vectors. void tst_QVectorND::length4_data() { - QTest::addColumn<qreal>("x"); - QTest::addColumn<qreal>("y"); - QTest::addColumn<qreal>("z"); - QTest::addColumn<qreal>("w"); - QTest::addColumn<qreal>("len"); - - QTest::newRow("null") << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; - QTest::newRow("1x") << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; - QTest::newRow("1y") << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; - QTest::newRow("1z") << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)1.0f; - QTest::newRow("1w") << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)1.0f; - QTest::newRow("-1x") << (qreal)-1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; - QTest::newRow("-1y") << (qreal)0.0f << (qreal)-1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f; - QTest::newRow("-1z") << (qreal)0.0f << (qreal)0.0f << (qreal)-1.0f << (qreal)0.0f << (qreal)1.0f; - QTest::newRow("-1w") << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)-1.0f << (qreal)1.0f; - QTest::newRow("two") << (qreal)2.0f << (qreal)-2.0f << (qreal)2.0f << (qreal)2.0f << (qreal)qSqrt(16.0f); + QTest::addColumn<float>("x"); + QTest::addColumn<float>("y"); + QTest::addColumn<float>("z"); + QTest::addColumn<float>("w"); + QTest::addColumn<float>("len"); + + QTest::newRow("null") << 0.0f << 0.0f << 0.0f << 0.0f << 0.0f; + QTest::newRow("1x") << 1.0f << 0.0f << 0.0f << 0.0f << 1.0f; + QTest::newRow("1y") << 0.0f << 1.0f << 0.0f << 0.0f << 1.0f; + QTest::newRow("1z") << 0.0f << 0.0f << 1.0f << 0.0f << 1.0f; + QTest::newRow("1w") << 0.0f << 0.0f << 0.0f << 1.0f << 1.0f; + QTest::newRow("-1x") << -1.0f << 0.0f << 0.0f << 0.0f << 1.0f; + QTest::newRow("-1y") << 0.0f << -1.0f << 0.0f << 0.0f << 1.0f; + QTest::newRow("-1z") << 0.0f << 0.0f << -1.0f << 0.0f << 1.0f; + QTest::newRow("-1w") << 0.0f << 0.0f << 0.0f << -1.0f << 1.0f; + QTest::newRow("two") << 2.0f << -2.0f << 2.0f << 2.0f << sqrtf(16.0f); } void tst_QVectorND::length4() { - QFETCH(qreal, x); - QFETCH(qreal, y); - QFETCH(qreal, z); - QFETCH(qreal, w); - QFETCH(qreal, len); + QFETCH(float, x); + QFETCH(float, y); + QFETCH(float, z); + QFETCH(float, w); + QFETCH(float, len); QVector4D v(x, y, z, w); QCOMPARE(v.length(), len); @@ -668,18 +659,18 @@ void tst_QVectorND::normalized2_data() } void tst_QVectorND::normalized2() { - QFETCH(qreal, x); - QFETCH(qreal, y); - QFETCH(qreal, len); + QFETCH(float, x); + QFETCH(float, y); + QFETCH(float, len); QVector2D v(x, y); QVector2D u = v.normalized(); if (v.isNull()) QVERIFY(u.isNull()); else - QVERIFY(fuzzyCompare(u.length(), qreal(1.0f))); - QVERIFY(fuzzyCompare(u.x() * len, v.x())); - QVERIFY(fuzzyCompare(u.y() * len, v.y())); + QVERIFY(qFuzzyCompare(u.length(), 1.0f)); + QVERIFY(qFuzzyCompare(u.x() * len, v.x())); + QVERIFY(qFuzzyCompare(u.y() * len, v.y())); } // Test the unit vector conversion for 3D vectors. @@ -690,20 +681,20 @@ void tst_QVectorND::normalized3_data() } void tst_QVectorND::normalized3() { - QFETCH(qreal, x); - QFETCH(qreal, y); - QFETCH(qreal, z); - QFETCH(qreal, len); + QFETCH(float, x); + QFETCH(float, y); + QFETCH(float, z); + QFETCH(float, len); QVector3D v(x, y, z); QVector3D u = v.normalized(); if (v.isNull()) QVERIFY(u.isNull()); else - QVERIFY(fuzzyCompare(u.length(), qreal(1.0f))); - QVERIFY(fuzzyCompare(u.x() * len, v.x())); - QVERIFY(fuzzyCompare(u.y() * len, v.y())); - QVERIFY(fuzzyCompare(u.z() * len, v.z())); + QVERIFY(qFuzzyCompare(u.length(), 1.0f)); + QVERIFY(qFuzzyCompare(u.x() * len, v.x())); + QVERIFY(qFuzzyCompare(u.y() * len, v.y())); + QVERIFY(qFuzzyCompare(u.z() * len, v.z())); } // Test the unit vector conversion for 4D vectors. @@ -714,22 +705,22 @@ void tst_QVectorND::normalized4_data() } void tst_QVectorND::normalized4() { - QFETCH(qreal, x); - QFETCH(qreal, y); - QFETCH(qreal, z); - QFETCH(qreal, w); - QFETCH(qreal, len); + QFETCH(float, x); + QFETCH(float, y); + QFETCH(float, z); + QFETCH(float, w); + QFETCH(float, len); QVector4D v(x, y, z, w); QVector4D u = v.normalized(); if (v.isNull()) QVERIFY(u.isNull()); else - QVERIFY(fuzzyCompare(u.length(), qreal(1.0f))); - QVERIFY(fuzzyCompare(u.x() * len, v.x())); - QVERIFY(fuzzyCompare(u.y() * len, v.y())); - QVERIFY(fuzzyCompare(u.z() * len, v.z())); - QVERIFY(fuzzyCompare(u.w() * len, v.w())); + QVERIFY(qFuzzyCompare(u.length(), 1.0f)); + QVERIFY(qFuzzyCompare(u.x() * len, v.x())); + QVERIFY(qFuzzyCompare(u.y() * len, v.y())); + QVERIFY(qFuzzyCompare(u.z() * len, v.z())); + QVERIFY(qFuzzyCompare(u.w() * len, v.w())); } // Test the unit vector conversion for 2D vectors. @@ -740,8 +731,8 @@ void tst_QVectorND::normalize2_data() } void tst_QVectorND::normalize2() { - QFETCH(qreal, x); - QFETCH(qreal, y); + QFETCH(float, x); + QFETCH(float, y); QVector2D v(x, y); bool isNull = v.isNull(); @@ -749,7 +740,7 @@ void tst_QVectorND::normalize2() if (isNull) QVERIFY(v.isNull()); else - QVERIFY(fuzzyCompare(v.length(), qreal(1.0f))); + QVERIFY(qFuzzyCompare(v.length(), 1.0f)); } // Test the unit vector conversion for 3D vectors. @@ -760,9 +751,9 @@ void tst_QVectorND::normalize3_data() } void tst_QVectorND::normalize3() { - QFETCH(qreal, x); - QFETCH(qreal, y); - QFETCH(qreal, z); + QFETCH(float, x); + QFETCH(float, y); + QFETCH(float, z); QVector3D v(x, y, z); bool isNull = v.isNull(); @@ -770,7 +761,7 @@ void tst_QVectorND::normalize3() if (isNull) QVERIFY(v.isNull()); else - QVERIFY(fuzzyCompare(v.length(), qreal(1.0f))); + QVERIFY(qFuzzyCompare(v.length(), 1.0f)); } // Test the unit vector conversion for 4D vectors. @@ -781,10 +772,10 @@ void tst_QVectorND::normalize4_data() } void tst_QVectorND::normalize4() { - QFETCH(qreal, x); - QFETCH(qreal, y); - QFETCH(qreal, z); - QFETCH(qreal, w); + QFETCH(float, x); + QFETCH(float, y); + QFETCH(float, z); + QFETCH(float, w); QVector4D v(x, y, z, w); bool isNull = v.isNull(); @@ -792,7 +783,7 @@ void tst_QVectorND::normalize4() if (isNull) QVERIFY(v.isNull()); else - QVERIFY(fuzzyCompare(v.length(), qreal(1.0f))); + QVERIFY(qFuzzyCompare(v.length(), 1.0f)); } // Test the comparison operators for 2D vectors. @@ -843,41 +834,41 @@ void tst_QVectorND::compare4() // Test vector addition for 2D vectors. void tst_QVectorND::add2_data() { - QTest::addColumn<qreal>("x1"); - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("x2"); - QTest::addColumn<qreal>("y2"); - QTest::addColumn<qreal>("x3"); - QTest::addColumn<qreal>("y3"); + QTest::addColumn<float>("x1"); + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("x2"); + QTest::addColumn<float>("y2"); + QTest::addColumn<float>("x3"); + QTest::addColumn<float>("y3"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 0.0f + << 0.0f << 0.0f + << 0.0f << 0.0f; QTest::newRow("xonly") - << (qreal)1.0f << (qreal)0.0f - << (qreal)2.0f << (qreal)0.0f - << (qreal)3.0f << (qreal)0.0f; + << 1.0f << 0.0f + << 2.0f << 0.0f + << 3.0f << 0.0f; QTest::newRow("yonly") - << (qreal)0.0f << (qreal)1.0f - << (qreal)0.0f << (qreal)2.0f - << (qreal)0.0f << (qreal)3.0f; + << 0.0f << 1.0f + << 0.0f << 2.0f + << 0.0f << 3.0f; QTest::newRow("all") - << (qreal)1.0f << (qreal)2.0f - << (qreal)4.0f << (qreal)5.0f - << (qreal)5.0f << (qreal)7.0f; + << 1.0f << 2.0f + << 4.0f << 5.0f + << 5.0f << 7.0f; } void tst_QVectorND::add2() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, x3); - QFETCH(qreal, y3); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, x3); + QFETCH(float, y3); QVector2D v1(x1, y1); QVector2D v2(x2, y2); @@ -896,52 +887,52 @@ void tst_QVectorND::add2() // Test vector addition for 3D vectors. void tst_QVectorND::add3_data() { - QTest::addColumn<qreal>("x1"); - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("z1"); - QTest::addColumn<qreal>("x2"); - QTest::addColumn<qreal>("y2"); - QTest::addColumn<qreal>("z2"); - QTest::addColumn<qreal>("x3"); - QTest::addColumn<qreal>("y3"); - QTest::addColumn<qreal>("z3"); + QTest::addColumn<float>("x1"); + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("z1"); + QTest::addColumn<float>("x2"); + QTest::addColumn<float>("y2"); + QTest::addColumn<float>("z2"); + QTest::addColumn<float>("x3"); + QTest::addColumn<float>("y3"); + QTest::addColumn<float>("z3"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 0.0f; QTest::newRow("xonly") - << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)3.0f << (qreal)0.0f << (qreal)0.0f; + << 1.0f << 0.0f << 0.0f + << 2.0f << 0.0f << 0.0f + << 3.0f << 0.0f << 0.0f; QTest::newRow("yonly") - << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)3.0f << (qreal)0.0f; + << 0.0f << 1.0f << 0.0f + << 0.0f << 2.0f << 0.0f + << 0.0f << 3.0f << 0.0f; QTest::newRow("zonly") - << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)3.0f; + << 0.0f << 0.0f << 1.0f + << 0.0f << 0.0f << 2.0f + << 0.0f << 0.0f << 3.0f; QTest::newRow("all") - << (qreal)1.0f << (qreal)2.0f << (qreal)3.0f - << (qreal)4.0f << (qreal)5.0f << (qreal)-6.0f - << (qreal)5.0f << (qreal)7.0f << (qreal)-3.0f; + << 1.0f << 2.0f << 3.0f + << 4.0f << 5.0f << -6.0f + << 5.0f << 7.0f << -3.0f; } void tst_QVectorND::add3() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, x3); - QFETCH(qreal, y3); - QFETCH(qreal, z3); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, x3); + QFETCH(float, y3); + QFETCH(float, z3); QVector3D v1(x1, y1, z1); QVector3D v2(x2, y2, z2); @@ -961,63 +952,63 @@ void tst_QVectorND::add3() // Test vector addition for 4D vectors. void tst_QVectorND::add4_data() { - QTest::addColumn<qreal>("x1"); - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("z1"); - QTest::addColumn<qreal>("w1"); - QTest::addColumn<qreal>("x2"); - QTest::addColumn<qreal>("y2"); - QTest::addColumn<qreal>("z2"); - QTest::addColumn<qreal>("w2"); - QTest::addColumn<qreal>("x3"); - QTest::addColumn<qreal>("y3"); - QTest::addColumn<qreal>("z3"); - QTest::addColumn<qreal>("w3"); + QTest::addColumn<float>("x1"); + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("z1"); + QTest::addColumn<float>("w1"); + QTest::addColumn<float>("x2"); + QTest::addColumn<float>("y2"); + QTest::addColumn<float>("z2"); + QTest::addColumn<float>("w2"); + QTest::addColumn<float>("x3"); + QTest::addColumn<float>("y3"); + QTest::addColumn<float>("z3"); + QTest::addColumn<float>("w3"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 0.0f << 0.0f; QTest::newRow("xonly") - << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)3.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 1.0f << 0.0f << 0.0f << 0.0f + << 2.0f << 0.0f << 0.0f << 0.0f + << 3.0f << 0.0f << 0.0f << 0.0f; QTest::newRow("yonly") - << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)3.0f << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 1.0f << 0.0f << 0.0f + << 0.0f << 2.0f << 0.0f << 0.0f + << 0.0f << 3.0f << 0.0f << 0.0f; QTest::newRow("zonly") - << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)3.0f << (qreal)0.0f; + << 0.0f << 0.0f << 1.0f << 0.0f + << 0.0f << 0.0f << 2.0f << 0.0f + << 0.0f << 0.0f << 3.0f << 0.0f; QTest::newRow("wonly") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)3.0f; + << 0.0f << 0.0f << 0.0f << 1.0f + << 0.0f << 0.0f << 0.0f << 2.0f + << 0.0f << 0.0f << 0.0f << 3.0f; QTest::newRow("all") - << (qreal)1.0f << (qreal)2.0f << (qreal)3.0f << (qreal)8.0f - << (qreal)4.0f << (qreal)5.0f << (qreal)-6.0f << (qreal)9.0f - << (qreal)5.0f << (qreal)7.0f << (qreal)-3.0f << (qreal)17.0f; + << 1.0f << 2.0f << 3.0f << 8.0f + << 4.0f << 5.0f << -6.0f << 9.0f + << 5.0f << 7.0f << -3.0f << 17.0f; } void tst_QVectorND::add4() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, w1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, w2); - QFETCH(qreal, x3); - QFETCH(qreal, y3); - QFETCH(qreal, z3); - QFETCH(qreal, w3); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, w1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, w2); + QFETCH(float, x3); + QFETCH(float, y3); + QFETCH(float, z3); + QFETCH(float, w3); QVector4D v1(x1, y1, z1, w1); QVector4D v2(x2, y2, z2, w2); @@ -1043,12 +1034,12 @@ void tst_QVectorND::subtract2_data() } void tst_QVectorND::subtract2() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, x3); - QFETCH(qreal, y3); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, x3); + QFETCH(float, y3); QVector2D v1(x1, y1); QVector2D v2(x2, y2); @@ -1080,15 +1071,15 @@ void tst_QVectorND::subtract3_data() } void tst_QVectorND::subtract3() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, x3); - QFETCH(qreal, y3); - QFETCH(qreal, z3); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, x3); + QFETCH(float, y3); + QFETCH(float, z3); QVector3D v1(x1, y1, z1); QVector3D v2(x2, y2, z2); @@ -1122,18 +1113,18 @@ void tst_QVectorND::subtract4_data() } void tst_QVectorND::subtract4() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, w1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, w2); - QFETCH(qreal, x3); - QFETCH(qreal, y3); - QFETCH(qreal, z3); - QFETCH(qreal, w3); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, w1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, w2); + QFETCH(float, x3); + QFETCH(float, y3); + QFETCH(float, z3); + QFETCH(float, w3); QVector4D v1(x1, y1, z1, w1); QVector4D v2(x2, y2, z2, w2); @@ -1164,41 +1155,41 @@ void tst_QVectorND::subtract4() // Test component-wise vector multiplication for 2D vectors. void tst_QVectorND::multiply2_data() { - QTest::addColumn<qreal>("x1"); - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("x2"); - QTest::addColumn<qreal>("y2"); - QTest::addColumn<qreal>("x3"); - QTest::addColumn<qreal>("y3"); + QTest::addColumn<float>("x1"); + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("x2"); + QTest::addColumn<float>("y2"); + QTest::addColumn<float>("x3"); + QTest::addColumn<float>("y3"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 0.0f + << 0.0f << 0.0f + << 0.0f << 0.0f; QTest::newRow("xonly") - << (qreal)1.0f << (qreal)0.0f - << (qreal)2.0f << (qreal)0.0f - << (qreal)2.0f << (qreal)0.0f; + << 1.0f << 0.0f + << 2.0f << 0.0f + << 2.0f << 0.0f; QTest::newRow("yonly") - << (qreal)0.0f << (qreal)1.0f - << (qreal)0.0f << (qreal)2.0f - << (qreal)0.0f << (qreal)2.0f; + << 0.0f << 1.0f + << 0.0f << 2.0f + << 0.0f << 2.0f; QTest::newRow("all") - << (qreal)1.0f << (qreal)2.0f - << (qreal)4.0f << (qreal)5.0f - << (qreal)4.0f << (qreal)10.0f; + << 1.0f << 2.0f + << 4.0f << 5.0f + << 4.0f << 10.0f; } void tst_QVectorND::multiply2() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, x3); - QFETCH(qreal, y3); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, x3); + QFETCH(float, y3); QVector2D v1(x1, y1); QVector2D v2(x2, y2); @@ -1217,52 +1208,52 @@ void tst_QVectorND::multiply2() // Test component-wise vector multiplication for 3D vectors. void tst_QVectorND::multiply3_data() { - QTest::addColumn<qreal>("x1"); - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("z1"); - QTest::addColumn<qreal>("x2"); - QTest::addColumn<qreal>("y2"); - QTest::addColumn<qreal>("z2"); - QTest::addColumn<qreal>("x3"); - QTest::addColumn<qreal>("y3"); - QTest::addColumn<qreal>("z3"); + QTest::addColumn<float>("x1"); + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("z1"); + QTest::addColumn<float>("x2"); + QTest::addColumn<float>("y2"); + QTest::addColumn<float>("z2"); + QTest::addColumn<float>("x3"); + QTest::addColumn<float>("y3"); + QTest::addColumn<float>("z3"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 0.0f; QTest::newRow("xonly") - << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f; + << 1.0f << 0.0f << 0.0f + << 2.0f << 0.0f << 0.0f + << 2.0f << 0.0f << 0.0f; QTest::newRow("yonly") - << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f; + << 0.0f << 1.0f << 0.0f + << 0.0f << 2.0f << 0.0f + << 0.0f << 2.0f << 0.0f; QTest::newRow("zonly") - << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f; + << 0.0f << 0.0f << 1.0f + << 0.0f << 0.0f << 2.0f + << 0.0f << 0.0f << 2.0f; QTest::newRow("all") - << (qreal)1.0f << (qreal)2.0f << (qreal)3.0f - << (qreal)4.0f << (qreal)5.0f << (qreal)-6.0f - << (qreal)4.0f << (qreal)10.0f << (qreal)-18.0f; + << 1.0f << 2.0f << 3.0f + << 4.0f << 5.0f << -6.0f + << 4.0f << 10.0f << -18.0f; } void tst_QVectorND::multiply3() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, x3); - QFETCH(qreal, y3); - QFETCH(qreal, z3); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, x3); + QFETCH(float, y3); + QFETCH(float, z3); QVector3D v1(x1, y1, z1); QVector3D v2(x2, y2, z2); @@ -1282,63 +1273,63 @@ void tst_QVectorND::multiply3() // Test component-wise vector multiplication for 4D vectors. void tst_QVectorND::multiply4_data() { - QTest::addColumn<qreal>("x1"); - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("z1"); - QTest::addColumn<qreal>("w1"); - QTest::addColumn<qreal>("x2"); - QTest::addColumn<qreal>("y2"); - QTest::addColumn<qreal>("z2"); - QTest::addColumn<qreal>("w2"); - QTest::addColumn<qreal>("x3"); - QTest::addColumn<qreal>("y3"); - QTest::addColumn<qreal>("z3"); - QTest::addColumn<qreal>("w3"); + QTest::addColumn<float>("x1"); + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("z1"); + QTest::addColumn<float>("w1"); + QTest::addColumn<float>("x2"); + QTest::addColumn<float>("y2"); + QTest::addColumn<float>("z2"); + QTest::addColumn<float>("w2"); + QTest::addColumn<float>("x3"); + QTest::addColumn<float>("y3"); + QTest::addColumn<float>("z3"); + QTest::addColumn<float>("w3"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 0.0f << 0.0f; QTest::newRow("xonly") - << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 1.0f << 0.0f << 0.0f << 0.0f + << 2.0f << 0.0f << 0.0f << 0.0f + << 2.0f << 0.0f << 0.0f << 0.0f; QTest::newRow("yonly") - << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 1.0f << 0.0f << 0.0f + << 0.0f << 2.0f << 0.0f << 0.0f + << 0.0f << 2.0f << 0.0f << 0.0f; QTest::newRow("zonly") - << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f; + << 0.0f << 0.0f << 1.0f << 0.0f + << 0.0f << 0.0f << 2.0f << 0.0f + << 0.0f << 0.0f << 2.0f << 0.0f; QTest::newRow("wonly") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f; + << 0.0f << 0.0f << 0.0f << 1.0f + << 0.0f << 0.0f << 0.0f << 2.0f + << 0.0f << 0.0f << 0.0f << 2.0f; QTest::newRow("all") - << (qreal)1.0f << (qreal)2.0f << (qreal)3.0f << (qreal)8.0f - << (qreal)4.0f << (qreal)5.0f << (qreal)-6.0f << (qreal)9.0f - << (qreal)4.0f << (qreal)10.0f << (qreal)-18.0f << (qreal)72.0f; + << 1.0f << 2.0f << 3.0f << 8.0f + << 4.0f << 5.0f << -6.0f << 9.0f + << 4.0f << 10.0f << -18.0f << 72.0f; } void tst_QVectorND::multiply4() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, w1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, w2); - QFETCH(qreal, x3); - QFETCH(qreal, y3); - QFETCH(qreal, z3); - QFETCH(qreal, w3); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, w1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, w2); + QFETCH(float, x3); + QFETCH(float, y3); + QFETCH(float, z3); + QFETCH(float, w3); QVector4D v1(x1, y1, z1, w1); QVector4D v2(x2, y2, z2, w2); @@ -1359,44 +1350,44 @@ void tst_QVectorND::multiply4() // Test vector multiplication by a factor for 2D vectors. void tst_QVectorND::multiplyFactor2_data() { - QTest::addColumn<qreal>("x1"); - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("factor"); - QTest::addColumn<qreal>("x2"); - QTest::addColumn<qreal>("y2"); + QTest::addColumn<float>("x1"); + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("factor"); + QTest::addColumn<float>("x2"); + QTest::addColumn<float>("y2"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f - << (qreal)100.0f - << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 0.0f + << 100.0f + << 0.0f << 0.0f; QTest::newRow("xonly") - << (qreal)1.0f << (qreal)0.0f - << (qreal)2.0f - << (qreal)2.0f << (qreal)0.0f; + << 1.0f << 0.0f + << 2.0f + << 2.0f << 0.0f; QTest::newRow("yonly") - << (qreal)0.0f << (qreal)1.0f - << (qreal)2.0f - << (qreal)0.0f << (qreal)2.0f; + << 0.0f << 1.0f + << 2.0f + << 0.0f << 2.0f; QTest::newRow("all") - << (qreal)1.0f << (qreal)2.0f - << (qreal)2.0f - << (qreal)2.0f << (qreal)4.0f; + << 1.0f << 2.0f + << 2.0f + << 2.0f << 4.0f; QTest::newRow("allzero") - << (qreal)1.0f << (qreal)2.0f - << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f; + << 1.0f << 2.0f + << 0.0f + << 0.0f << 0.0f; } void tst_QVectorND::multiplyFactor2() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, factor); - QFETCH(qreal, x2); - QFETCH(qreal, y2); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, factor); + QFETCH(float, x2); + QFETCH(float, y2); QVector2D v1(x1, y1); QVector2D v2(x2, y2); @@ -1415,53 +1406,53 @@ void tst_QVectorND::multiplyFactor2() // Test vector multiplication by a factor for 3D vectors. void tst_QVectorND::multiplyFactor3_data() { - QTest::addColumn<qreal>("x1"); - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("z1"); - QTest::addColumn<qreal>("factor"); - QTest::addColumn<qreal>("x2"); - QTest::addColumn<qreal>("y2"); - QTest::addColumn<qreal>("z2"); + QTest::addColumn<float>("x1"); + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("z1"); + QTest::addColumn<float>("factor"); + QTest::addColumn<float>("x2"); + QTest::addColumn<float>("y2"); + QTest::addColumn<float>("z2"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)100.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 0.0f << 0.0f + << 100.0f + << 0.0f << 0.0f << 0.0f; QTest::newRow("xonly") - << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)2.0f - << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f; + << 1.0f << 0.0f << 0.0f + << 2.0f + << 2.0f << 0.0f << 0.0f; QTest::newRow("yonly") - << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f - << (qreal)2.0f - << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f; + << 0.0f << 1.0f << 0.0f + << 2.0f + << 0.0f << 2.0f << 0.0f; QTest::newRow("zonly") - << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f - << (qreal)2.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f; + << 0.0f << 0.0f << 1.0f + << 2.0f + << 0.0f << 0.0f << 2.0f; QTest::newRow("all") - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f - << (qreal)2.0f - << (qreal)2.0f << (qreal)4.0f << (qreal)-6.0f; + << 1.0f << 2.0f << -3.0f + << 2.0f + << 2.0f << 4.0f << -6.0f; QTest::newRow("allzero") - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f - << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 1.0f << 2.0f << -3.0f + << 0.0f + << 0.0f << 0.0f << 0.0f; } void tst_QVectorND::multiplyFactor3() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, factor); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, factor); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); QVector3D v1(x1, y1, z1); QVector3D v2(x2, y2, z2); @@ -1481,62 +1472,62 @@ void tst_QVectorND::multiplyFactor3() // Test vector multiplication by a factor for 4D vectors. void tst_QVectorND::multiplyFactor4_data() { - QTest::addColumn<qreal>("x1"); - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("z1"); - QTest::addColumn<qreal>("w1"); - QTest::addColumn<qreal>("factor"); - QTest::addColumn<qreal>("x2"); - QTest::addColumn<qreal>("y2"); - QTest::addColumn<qreal>("z2"); - QTest::addColumn<qreal>("w2"); + QTest::addColumn<float>("x1"); + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("z1"); + QTest::addColumn<float>("w1"); + QTest::addColumn<float>("factor"); + QTest::addColumn<float>("x2"); + QTest::addColumn<float>("y2"); + QTest::addColumn<float>("z2"); + QTest::addColumn<float>("w2"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)100.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 0.0f << 0.0f << 0.0f + << 100.0f + << 0.0f << 0.0f << 0.0f << 0.0f; QTest::newRow("xonly") - << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)2.0f - << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 1.0f << 0.0f << 0.0f << 0.0f + << 2.0f + << 2.0f << 0.0f << 0.0f << 0.0f; QTest::newRow("yonly") - << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)2.0f - << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 1.0f << 0.0f << 0.0f + << 2.0f + << 0.0f << 2.0f << 0.0f << 0.0f; QTest::newRow("zonly") - << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f - << (qreal)2.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f; + << 0.0f << 0.0f << 1.0f << 0.0f + << 2.0f + << 0.0f << 0.0f << 2.0f << 0.0f; QTest::newRow("wonly") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f - << (qreal)2.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f; + << 0.0f << 0.0f << 0.0f << 1.0f + << 2.0f + << 0.0f << 0.0f << 0.0f << 2.0f; QTest::newRow("all") - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)4.0f - << (qreal)2.0f - << (qreal)2.0f << (qreal)4.0f << (qreal)-6.0f << (qreal)8.0f; + << 1.0f << 2.0f << -3.0f << 4.0f + << 2.0f + << 2.0f << 4.0f << -6.0f << 8.0f; QTest::newRow("allzero") - << (qreal)1.0f << (qreal)2.0f << (qreal)-3.0f << (qreal)4.0f - << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 1.0f << 2.0f << -3.0f << 4.0f + << 0.0f + << 0.0f << 0.0f << 0.0f << 0.0f; } void tst_QVectorND::multiplyFactor4() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, w1); - QFETCH(qreal, factor); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, w2); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, w1); + QFETCH(float, factor); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, w2); QVector4D v1(x1, y1, z1, w1); QVector4D v2(x2, y2, z2, w2); @@ -1562,16 +1553,16 @@ void tst_QVectorND::divide2_data() } void tst_QVectorND::divide2() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, factor); - QFETCH(qreal, x2); - QFETCH(qreal, y2); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, factor); + QFETCH(float, x2); + QFETCH(float, y2); QVector2D v1(x1, y1); QVector2D v2(x2, y2); - if (factor == (qreal)0.0f) + if (factor == 0.0f) return; QVERIFY((v2 / factor) == v1); @@ -1592,18 +1583,18 @@ void tst_QVectorND::divide3_data() } void tst_QVectorND::divide3() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, factor); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, factor); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); QVector3D v1(x1, y1, z1); QVector3D v2(x2, y2, z2); - if (factor == (qreal)0.0f) + if (factor == 0.0f) return; QVERIFY((v2 / factor) == v1); @@ -1625,20 +1616,20 @@ void tst_QVectorND::divide4_data() } void tst_QVectorND::divide4() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, w1); - QFETCH(qreal, factor); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, w2); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, w1); + QFETCH(float, factor); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, w2); QVector4D v1(x1, y1, z1, w1); QVector4D v2(x2, y2, z2, w2); - if (factor == (qreal)0.0f) + if (factor == 0.0f) return; QVERIFY((v2 / factor) == v1); @@ -1661,8 +1652,8 @@ void tst_QVectorND::negate2_data() } void tst_QVectorND::negate2() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); + QFETCH(float, x1); + QFETCH(float, y1); QVector2D v1(x1, y1); QVector2D v2(-x1, -y1); @@ -1678,9 +1669,9 @@ void tst_QVectorND::negate3_data() } void tst_QVectorND::negate3() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); QVector3D v1(x1, y1, z1); QVector3D v2(-x1, -y1, -z1); @@ -1696,10 +1687,10 @@ void tst_QVectorND::negate4_data() } void tst_QVectorND::negate4() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, w1); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, w1); QVector4D v1(x1, y1, z1, w1); QVector4D v2(-x1, -y1, -z1, -w1); @@ -1710,46 +1701,46 @@ void tst_QVectorND::negate4() // Test the computation of vector cross-products. void tst_QVectorND::crossProduct_data() { - QTest::addColumn<qreal>("x1"); - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("z1"); - QTest::addColumn<qreal>("x2"); - QTest::addColumn<qreal>("y2"); - QTest::addColumn<qreal>("z2"); - QTest::addColumn<qreal>("x3"); - QTest::addColumn<qreal>("y3"); - QTest::addColumn<qreal>("z3"); - QTest::addColumn<qreal>("dot"); + QTest::addColumn<float>("x1"); + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("z1"); + QTest::addColumn<float>("x2"); + QTest::addColumn<float>("y2"); + QTest::addColumn<float>("z2"); + QTest::addColumn<float>("x3"); + QTest::addColumn<float>("y3"); + QTest::addColumn<float>("z3"); + QTest::addColumn<float>("dot"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f; + << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 0.0f + << 0.0f; QTest::newRow("unitvec") - << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f - << (qreal)0.0f; + << 1.0f << 0.0f << 0.0f + << 0.0f << 1.0f << 0.0f + << 0.0f << 0.0f << 1.0f + << 0.0f; QTest::newRow("complex") - << (qreal)1.0f << (qreal)2.0f << (qreal)3.0f - << (qreal)4.0f << (qreal)5.0f << (qreal)6.0f - << (qreal)-3.0f << (qreal)6.0f << (qreal)-3.0f - << (qreal)32.0f; + << 1.0f << 2.0f << 3.0f + << 4.0f << 5.0f << 6.0f + << -3.0f << 6.0f << -3.0f + << 32.0f; } void tst_QVectorND::crossProduct() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, x3); - QFETCH(qreal, y3); - QFETCH(qreal, z3); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, x3); + QFETCH(float, y3); + QFETCH(float, z3); QVector3D v1(x1, y1, z1); QVector3D v2(x2, y2, z2); @@ -1759,9 +1750,9 @@ void tst_QVectorND::crossProduct() QVERIFY(v4 == v3); // Compute the cross-product long-hand and check again. - qreal xres = y1 * z2 - z1 * y2; - qreal yres = z1 * x2 - x1 * z2; - qreal zres = x1 * y2 - y1 * x2; + float xres = y1 * z2 - z1 * y2; + float yres = z1 * x2 - x1 * z2; + float zres = x1 * y2 - y1 * x2; QCOMPARE(v4.x(), xres); QCOMPARE(v4.y(), yres); @@ -1776,15 +1767,15 @@ void tst_QVectorND::normal_data() } void tst_QVectorND::normal() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, x3); - QFETCH(qreal, y3); - QFETCH(qreal, z3); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, x3); + QFETCH(float, y3); + QFETCH(float, z3); QVector3D v1(x1, y1, z1); QVector3D v2(x2, y2, z2); @@ -1800,65 +1791,65 @@ void tst_QVectorND::normal() // Test distance to plane calculations. void tst_QVectorND::distanceToPlane_data() { - QTest::addColumn<qreal>("x1"); // Point on plane - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("z1"); - QTest::addColumn<qreal>("x2"); // Normal to plane - QTest::addColumn<qreal>("y2"); - QTest::addColumn<qreal>("z2"); - QTest::addColumn<qreal>("x3"); // Point to test for distance - QTest::addColumn<qreal>("y3"); - QTest::addColumn<qreal>("z3"); - QTest::addColumn<qreal>("x4"); // Second point on plane - QTest::addColumn<qreal>("y4"); - QTest::addColumn<qreal>("z4"); - QTest::addColumn<qreal>("x5"); // Third point on plane - QTest::addColumn<qreal>("y5"); - QTest::addColumn<qreal>("z5"); - QTest::addColumn<qreal>("distance"); + QTest::addColumn<float>("x1"); // Point on plane + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("z1"); + QTest::addColumn<float>("x2"); // Normal to plane + QTest::addColumn<float>("y2"); + QTest::addColumn<float>("z2"); + QTest::addColumn<float>("x3"); // Point to test for distance + QTest::addColumn<float>("y3"); + QTest::addColumn<float>("z3"); + QTest::addColumn<float>("x4"); // Second point on plane + QTest::addColumn<float>("y4"); + QTest::addColumn<float>("z4"); + QTest::addColumn<float>("x5"); // Third point on plane + QTest::addColumn<float>("y5"); + QTest::addColumn<float>("z5"); + QTest::addColumn<float>("distance"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f - << (qreal)0.0f; + << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 1.0f + << 0.0f << 0.0f << 0.0f + << 1.0f << 0.0f << 0.0f + << 0.0f << 2.0f << 0.0f + << 0.0f; QTest::newRow("above") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)2.0f - << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f - << (qreal)2.0f; + << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 1.0f + << 0.0f << 0.0f << 2.0f + << 1.0f << 0.0f << 0.0f + << 0.0f << 2.0f << 0.0f + << 2.0f; QTest::newRow("below") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f - << (qreal)-1.0f << (qreal)1.0f << (qreal)-2.0f - << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)2.0f << (qreal)0.0f - << (qreal)-2.0f; + << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 1.0f + << -1.0f << 1.0f << -2.0f + << 1.0f << 0.0f << 0.0f + << 0.0f << 2.0f << 0.0f + << -2.0f; } void tst_QVectorND::distanceToPlane() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, x3); - QFETCH(qreal, y3); - QFETCH(qreal, z3); - QFETCH(qreal, x4); - QFETCH(qreal, y4); - QFETCH(qreal, z4); - QFETCH(qreal, x5); - QFETCH(qreal, y5); - QFETCH(qreal, z5); - QFETCH(qreal, distance); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, x3); + QFETCH(float, y3); + QFETCH(float, z3); + QFETCH(float, x4); + QFETCH(float, y4); + QFETCH(float, z4); + QFETCH(float, x5); + QFETCH(float, y5); + QFETCH(float, z5); + QFETCH(float, distance); QVector3D v1(x1, y1, z1); QVector3D v2(x2, y2, z2); @@ -1873,59 +1864,59 @@ void tst_QVectorND::distanceToPlane() // Test distance to line calculations. void tst_QVectorND::distanceToLine_data() { - QTest::addColumn<qreal>("x1"); // Point on line - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("z1"); - QTest::addColumn<qreal>("x2"); // Direction of the line - QTest::addColumn<qreal>("y2"); - QTest::addColumn<qreal>("z2"); - QTest::addColumn<qreal>("x3"); // Point to test for distance - QTest::addColumn<qreal>("y3"); - QTest::addColumn<qreal>("z3"); - QTest::addColumn<qreal>("distance"); + QTest::addColumn<float>("x1"); // Point on line + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("z1"); + QTest::addColumn<float>("x2"); // Direction of the line + QTest::addColumn<float>("y2"); + QTest::addColumn<float>("z2"); + QTest::addColumn<float>("x3"); // Point to test for distance + QTest::addColumn<float>("y3"); + QTest::addColumn<float>("z3"); + QTest::addColumn<float>("distance"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f; + << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 1.0f + << 0.0f << 0.0f << 0.0f + << 0.0f; QTest::newRow("on line") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)5.0f - << (qreal)0.0f; + << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 1.0f + << 0.0f << 0.0f << 5.0f + << 0.0f; QTest::newRow("off line") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f - << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)1.0f; + << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 1.0f + << 1.0f << 0.0f << 0.0f + << 1.0f; QTest::newRow("off line 2") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f - << (qreal)0.0f << (qreal)-2.0f << (qreal)0.0f - << (qreal)2.0f; + << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 1.0f + << 0.0f << -2.0f << 0.0f + << 2.0f; QTest::newRow("points") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)5.0f << (qreal)0.0f - << (qreal)5.0f; + << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 0.0f + << 0.0f << 5.0f << 0.0f + << 5.0f; } void tst_QVectorND::distanceToLine() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, x3); - QFETCH(qreal, y3); - QFETCH(qreal, z3); - QFETCH(qreal, distance); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, x3); + QFETCH(float, y3); + QFETCH(float, z3); + QFETCH(float, distance); QVector3D v1(x1, y1, z1); QVector3D v2(x2, y2, z2); @@ -1937,34 +1928,34 @@ void tst_QVectorND::distanceToLine() // Test the computation of dot products for 2D vectors. void tst_QVectorND::dotProduct2_data() { - QTest::addColumn<qreal>("x1"); - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("x2"); - QTest::addColumn<qreal>("y2"); - QTest::addColumn<qreal>("dot"); + QTest::addColumn<float>("x1"); + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("x2"); + QTest::addColumn<float>("y2"); + QTest::addColumn<float>("dot"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f; + << 0.0f << 0.0f + << 0.0f << 0.0f + << 0.0f; QTest::newRow("unitvec") - << (qreal)1.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)1.0f - << (qreal)0.0f; + << 1.0f << 0.0f + << 0.0f << 1.0f + << 0.0f; QTest::newRow("complex") - << (qreal)1.0f << (qreal)2.0f - << (qreal)4.0f << (qreal)5.0f - << (qreal)14.0f; + << 1.0f << 2.0f + << 4.0f << 5.0f + << 14.0f; } void tst_QVectorND::dotProduct2() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, dot); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, dot); QVector2D v1(x1, y1); QVector2D v2(x2, y2); @@ -1972,7 +1963,7 @@ void tst_QVectorND::dotProduct2() QVERIFY(QVector2D::dotProduct(v1, v2) == dot); // Compute the dot-product long-hand and check again. - qreal d = x1 * x2 + y1 * y2; + float d = x1 * x2 + y1 * y2; QCOMPARE(QVector2D::dotProduct(v1, v2), d); } @@ -1985,16 +1976,16 @@ void tst_QVectorND::dotProduct3_data() } void tst_QVectorND::dotProduct3() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, x3); - QFETCH(qreal, y3); - QFETCH(qreal, z3); - QFETCH(qreal, dot); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, x3); + QFETCH(float, y3); + QFETCH(float, z3); + QFETCH(float, dot); Q_UNUSED(x3); Q_UNUSED(y3); @@ -2006,7 +1997,7 @@ void tst_QVectorND::dotProduct3() QVERIFY(QVector3D::dotProduct(v1, v2) == dot); // Compute the dot-product long-hand and check again. - qreal d = x1 * x2 + y1 * y2 + z1 * z2; + float d = x1 * x2 + y1 * y2 + z1 * z2; QCOMPARE(QVector3D::dotProduct(v1, v2), d); } @@ -2014,42 +2005,42 @@ void tst_QVectorND::dotProduct3() // Test the computation of dot products for 4D vectors. void tst_QVectorND::dotProduct4_data() { - QTest::addColumn<qreal>("x1"); - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("z1"); - QTest::addColumn<qreal>("w1"); - QTest::addColumn<qreal>("x2"); - QTest::addColumn<qreal>("y2"); - QTest::addColumn<qreal>("z2"); - QTest::addColumn<qreal>("w2"); - QTest::addColumn<qreal>("dot"); + QTest::addColumn<float>("x1"); + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("z1"); + QTest::addColumn<float>("w1"); + QTest::addColumn<float>("x2"); + QTest::addColumn<float>("y2"); + QTest::addColumn<float>("z2"); + QTest::addColumn<float>("w2"); + QTest::addColumn<float>("dot"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f; + << 0.0f << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 0.0f << 0.0f + << 0.0f; QTest::newRow("unitvec") - << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f; + << 1.0f << 0.0f << 0.0f << 0.0f + << 0.0f << 1.0f << 0.0f << 0.0f + << 0.0f; QTest::newRow("complex") - << (qreal)1.0f << (qreal)2.0f << (qreal)3.0f << (qreal)4.0f - << (qreal)4.0f << (qreal)5.0f << (qreal)6.0f << (qreal)7.0f - << (qreal)60.0f; + << 1.0f << 2.0f << 3.0f << 4.0f + << 4.0f << 5.0f << 6.0f << 7.0f + << 60.0f; } void tst_QVectorND::dotProduct4() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, w1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, w2); - QFETCH(qreal, dot); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, w1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, w2); + QFETCH(float, dot); QVector4D v1(x1, y1, z1, w1); QVector4D v2(x2, y2, z2, w2); @@ -2057,7 +2048,7 @@ void tst_QVectorND::dotProduct4() QVERIFY(QVector4D::dotProduct(v1, v2) == dot); // Compute the dot-product long-hand and check again. - qreal d = x1 * x2 + y1 * y2 + z1 * z2 + w1 * w2; + float d = x1 * x2 + y1 * y2 + z1 * z2 + w1 * w2; QCOMPARE(QVector4D::dotProduct(v1, v2), d); } @@ -2096,19 +2087,19 @@ void tst_QVectorND::properties() obj.setVector4D(QVector4D(6.0f, 7.0f, 8.0f, 9.0f)); QVector2D v2 = qvariant_cast<QVector2D>(obj.property("vector2D")); - QCOMPARE(v2.x(), (qreal)1.0f); - QCOMPARE(v2.y(), (qreal)2.0f); + QCOMPARE(v2.x(), 1.0f); + QCOMPARE(v2.y(), 2.0f); QVector3D v3 = qvariant_cast<QVector3D>(obj.property("vector3D")); - QCOMPARE(v3.x(), (qreal)3.0f); - QCOMPARE(v3.y(), (qreal)4.0f); - QCOMPARE(v3.z(), (qreal)5.0f); + QCOMPARE(v3.x(), 3.0f); + QCOMPARE(v3.y(), 4.0f); + QCOMPARE(v3.z(), 5.0f); QVector4D v4 = qvariant_cast<QVector4D>(obj.property("vector4D")); - QCOMPARE(v4.x(), (qreal)6.0f); - QCOMPARE(v4.y(), (qreal)7.0f); - QCOMPARE(v4.z(), (qreal)8.0f); - QCOMPARE(v4.w(), (qreal)9.0f); + QCOMPARE(v4.x(), 6.0f); + QCOMPARE(v4.y(), 7.0f); + QCOMPARE(v4.z(), 8.0f); + QCOMPARE(v4.w(), 9.0f); obj.setProperty("vector2D", QVariant::fromValue(QVector2D(-1.0f, -2.0f))); @@ -2118,19 +2109,19 @@ void tst_QVectorND::properties() QVariant::fromValue(QVector4D(-6.0f, -7.0f, -8.0f, -9.0f))); v2 = qvariant_cast<QVector2D>(obj.property("vector2D")); - QCOMPARE(v2.x(), (qreal)-1.0f); - QCOMPARE(v2.y(), (qreal)-2.0f); + QCOMPARE(v2.x(), -1.0f); + QCOMPARE(v2.y(), -2.0f); v3 = qvariant_cast<QVector3D>(obj.property("vector3D")); - QCOMPARE(v3.x(), (qreal)-3.0f); - QCOMPARE(v3.y(), (qreal)-4.0f); - QCOMPARE(v3.z(), (qreal)-5.0f); + QCOMPARE(v3.x(), -3.0f); + QCOMPARE(v3.y(), -4.0f); + QCOMPARE(v3.z(), -5.0f); v4 = qvariant_cast<QVector4D>(obj.property("vector4D")); - QCOMPARE(v4.x(), (qreal)-6.0f); - QCOMPARE(v4.y(), (qreal)-7.0f); - QCOMPARE(v4.z(), (qreal)-8.0f); - QCOMPARE(v4.w(), (qreal)-9.0f); + QCOMPARE(v4.x(), -6.0f); + QCOMPARE(v4.y(), -7.0f); + QCOMPARE(v4.z(), -8.0f); + QCOMPARE(v4.w(), -9.0f); } void tst_QVectorND::metaTypes() diff --git a/tests/auto/widgets/graphicsview/qgraphicstransform/qgraphicstransform.pro b/tests/auto/widgets/graphicsview/qgraphicstransform/qgraphicstransform.pro index 18931f6a17..c11ca1a9bb 100644 --- a/tests/auto/widgets/graphicsview/qgraphicstransform/qgraphicstransform.pro +++ b/tests/auto/widgets/graphicsview/qgraphicstransform/qgraphicstransform.pro @@ -4,5 +4,4 @@ QT += widgets testlib SOURCES += tst_qgraphicstransform.cpp CONFIG += parallel_test -linux-*:contains(QT_CONFIG,release):DEFINES+=MAY_HIT_QTBUG_20661 DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 diff --git a/tests/auto/widgets/graphicsview/qgraphicstransform/tst_qgraphicstransform.cpp b/tests/auto/widgets/graphicsview/qgraphicstransform/tst_qgraphicstransform.cpp index 5820598034..b0e3d6fd40 100644 --- a/tests/auto/widgets/graphicsview/qgraphicstransform/tst_qgraphicstransform.cpp +++ b/tests/auto/widgets/graphicsview/qgraphicstransform/tst_qgraphicstransform.cpp @@ -156,31 +156,39 @@ void tst_QGraphicsTransform::scale() QCOMPARE(t3.map(QPointF(4, 5)), QPointF(31 / t3.m33(), 8 / t3.m33())); } -// QMatrix4x4 uses float internally, whereas QTransform uses qreal. -// This can lead to issues with qFuzzyCompare() where it uses double -// precision to compare values that have no more than float precision -// after conversion from QMatrix4x4 to QTransform. The following -// definitions correct for the difference. -static inline bool fuzzyCompare(qreal p1, qreal p2) +// fuzzyCompareNonZero is a very slightly looser version of qFuzzyCompare +// for use with values that are not very close to zero +Q_DECL_CONSTEXPR static inline bool fuzzyCompareNonZero(float p1, float p2) { - // increase delta on small machines using float instead of double - if (sizeof(qreal) == sizeof(float)) - return (qAbs(p1 - p2) <= 0.00003f * qMin(qAbs(p1), qAbs(p2))); + return (qAbs(p1 - p2) <= 0.00003f * qMin(qAbs(p1), qAbs(p2))); +} + +// This is a more tolerant version of qFuzzyCompare that also handles the case +// where one or more of the values being compare are close to zero +static inline bool fuzzyCompare(float p1, float p2) +{ + if (qFuzzyIsNull(p1)) + return qFuzzyIsNull(p2); + else if (qFuzzyIsNull(p2)) + return false; else - return (qAbs(p1 - p2) <= 0.00001f * qMin(qAbs(p1), qAbs(p2))); + return fuzzyCompareNonZero(p1, p2); } -static bool fuzzyCompare(const QTransform& t1, const QTransform& t2) +// This compares two QTransforms by casting the elements to float. This is +// necessary here because in this test one of the transforms is created from +// a QMatrix4x4 which uses float storage. +static bool fuzzyCompareAsFloat(const QTransform& t1, const QTransform& t2) { - return fuzzyCompare(t1.m11(), t2.m11()) && - fuzzyCompare(t1.m12(), t2.m12()) && - fuzzyCompare(t1.m13(), t2.m13()) && - fuzzyCompare(t1.m21(), t2.m21()) && - fuzzyCompare(t1.m22(), t2.m22()) && - fuzzyCompare(t1.m23(), t2.m23()) && - fuzzyCompare(t1.m31(), t2.m31()) && - fuzzyCompare(t1.m32(), t2.m32()) && - fuzzyCompare(t1.m33(), t2.m33()); + return fuzzyCompare(float(t1.m11()), float(t2.m11())) && + fuzzyCompare(float(t1.m12()), float(t2.m12())) && + fuzzyCompare(float(t1.m13()), float(t2.m13())) && + fuzzyCompare(float(t1.m21()), float(t2.m21())) && + fuzzyCompare(float(t1.m22()), float(t2.m22())) && + fuzzyCompare(float(t1.m23()), float(t2.m23())) && + fuzzyCompare(float(t1.m31()), float(t2.m31())) && + fuzzyCompare(float(t1.m32()), float(t2.m32())) && + fuzzyCompare(float(t1.m33()), float(t2.m33())); } static inline bool fuzzyCompare(const QMatrix4x4& m1, const QMatrix4x4& m2) @@ -221,7 +229,7 @@ void tst_QGraphicsTransform::rotation() QTransform res; res.rotate(40); - QVERIFY(fuzzyCompare(transform2D(rotation), res)); + QVERIFY(fuzzyCompareAsFloat(transform2D(rotation), res)); rotation.setOrigin(QVector3D(10, 10, 0)); rotation.setAngle(90); @@ -271,20 +279,14 @@ void tst_QGraphicsTransform::rotation3d() else expected.rotate(angle, axis); - QVERIFY(fuzzyCompare(transform2D(rotation), expected)); + QVERIFY(fuzzyCompareAsFloat(transform2D(rotation), expected)); // Check that "rotation" produces the 4x4 form of the 3x3 matrix. // i.e. third row and column are 0 0 1 0. t.setToIdentity(); rotation.applyTo(&t); QMatrix4x4 r(expected); - if (sizeof(qreal) == sizeof(float) && angle == 268) { - // This test fails, on only this angle, when qreal == float - // because the deg2rad value in QTransform is not accurate - // enough to match what QMatrix4x4 is doing. - } else { - QVERIFY(fuzzyCompare(t, r)); - } + QVERIFY(fuzzyCompare(t, r)); //now let's check that a null vector will not change the transform rotation.setAxis(QVector3D(0, 0, 0)); @@ -358,21 +360,8 @@ void tst_QGraphicsTransform::rotation3dArbitraryAxis() exp.rotate(angle, axis); QTransform expected = exp.toTransform(1024.0f); -#if defined(MAY_HIT_QTBUG_20661) - // These failures possibly relate to the float vs qreal issue mentioned - // in the comment above fuzzyCompare(). - if (sizeof(qreal) == sizeof(double)) { - QEXPECT_FAIL("rotation of 120 on (1, 1, 1)", "QTBUG-20661", Abort); - QEXPECT_FAIL("rotation of 240 on (1, 1, 1)", "QTBUG-20661", Abort); - QEXPECT_FAIL("rotation of 120 on (0.01, 0.01, 0.01)", "QTBUG-20661", Abort); - QEXPECT_FAIL("rotation of 240 on (0.01, 0.01, 0.01)", "QTBUG-20661", Abort); - QEXPECT_FAIL("rotation of 120 on (0.0001, 0.0001, 0.0001)", "QTBUG-20661", Abort); - QEXPECT_FAIL("rotation of 240 on (0.0001, 0.0001, 0.0001)", "QTBUG-20661", Abort); - } -#endif - QTransform actual = transform2D(rotation); - QVERIFY2(fuzzyCompare(actual, expected), qPrintable( + QVERIFY2(fuzzyCompareAsFloat(actual, expected), qPrintable( QString("\nactual: %1\n" "expected: %2") .arg(toString(actual)) @@ -384,7 +373,13 @@ void tst_QGraphicsTransform::rotation3dArbitraryAxis() t.setToIdentity(); rotation.applyTo(&t); QMatrix4x4 r(expected); - QVERIFY(qFuzzyCompare(t, r)); + for (int row = 0; row < 4; ++row) { + for (int col = 0; col < 4; ++col) { + float a = t(row, col); + float b = r(row, col); + QVERIFY2(fuzzyCompare(a, b), QString("%1 is not equal to %2").arg(a).arg(b).toLatin1()); + } + } } QString tst_QGraphicsTransform::toString(QTransform const& t) diff --git a/tests/benchmarks/gui/math3d/qmatrix4x4/tst_qmatrix4x4.cpp b/tests/benchmarks/gui/math3d/qmatrix4x4/tst_qmatrix4x4.cpp index 9d12d1b055..0e97b989c5 100644 --- a/tests/benchmarks/gui/math3d/qmatrix4x4/tst_qmatrix4x4.cpp +++ b/tests/benchmarks/gui/math3d/qmatrix4x4/tst_qmatrix4x4.cpp @@ -96,7 +96,7 @@ private slots: void compareRotateAfterScale(); }; -static qreal const generalValues[16] = +static float const generalValues[16] = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, @@ -171,9 +171,9 @@ void tst_QMatrix4x4::multiplyDirect() QMatrix4x4 m3; - const qreal *m1data = m1.constData(); - const qreal *m2data = m2.constData(); - qreal *m3data = m3.data(); + const float *m1data = m1.constData(); + const float *m2data = m2.constData(); + float *m3data = m3.data(); QBENCHMARK { for (int row = 0; row < 4; ++row) { @@ -266,9 +266,9 @@ void tst_QMatrix4x4::mapVectorDirect() { QFETCH(QMatrix4x4, m1); - const qreal *m1data = m1.constData(); - qreal v[4] = {10.5f, -2.0f, 3.0f, 1.0f}; - qreal result[4]; + const float *m1data = m1.constData(); + float v[4] = {10.5f, -2.0f, 3.0f, 1.0f}; + float result[4]; QBENCHMARK { for (int row = 0; row < 4; ++row) { @@ -310,9 +310,9 @@ void tst_QMatrix4x4::compareTranslate() QFETCH(bool, useQTransform); QFETCH(QVector3D, translation); - qreal x = translation.x(); - qreal y = translation.y(); - qreal z = translation.z(); + float x = translation.x(); + float y = translation.y(); + float z = translation.z(); if (useQTransform) { QTransform t; @@ -343,9 +343,9 @@ void tst_QMatrix4x4::compareTranslateAfterScale() QFETCH(bool, useQTransform); QFETCH(QVector3D, translation); - qreal x = translation.x(); - qreal y = translation.y(); - qreal z = translation.z(); + float x = translation.x(); + float y = translation.y(); + float z = translation.z(); if (useQTransform) { QTransform t; @@ -379,9 +379,9 @@ void tst_QMatrix4x4::compareTranslateAfterRotate() QFETCH(bool, useQTransform); QFETCH(QVector3D, translation); - qreal x = translation.x(); - qreal y = translation.y(); - qreal z = translation.z(); + float x = translation.x(); + float y = translation.y(); + float z = translation.z(); if (useQTransform) { QTransform t; @@ -431,9 +431,9 @@ void tst_QMatrix4x4::compareScale() QFETCH(bool, useQTransform); QFETCH(QVector3D, scale); - qreal x = scale.x(); - qreal y = scale.y(); - qreal z = scale.z(); + float x = scale.x(); + float y = scale.y(); + float z = scale.z(); if (useQTransform) { QTransform t; @@ -464,9 +464,9 @@ void tst_QMatrix4x4::compareScaleAfterTranslate() QFETCH(bool, useQTransform); QFETCH(QVector3D, scale); - qreal x = scale.x(); - qreal y = scale.y(); - qreal z = scale.z(); + float x = scale.x(); + float y = scale.y(); + float z = scale.z(); if (useQTransform) { QTransform t; @@ -500,9 +500,9 @@ void tst_QMatrix4x4::compareScaleAfterRotate() QFETCH(bool, useQTransform); QFETCH(QVector3D, scale); - qreal x = scale.x(); - qreal y = scale.y(); - qreal z = scale.z(); + float x = scale.x(); + float y = scale.y(); + float z = scale.z(); if (useQTransform) { QTransform t; @@ -530,65 +530,65 @@ void tst_QMatrix4x4::compareScaleAfterRotate() void tst_QMatrix4x4::compareRotate_data() { QTest::addColumn<bool>("useQTransform"); - QTest::addColumn<qreal>("angle"); + QTest::addColumn<float>("angle"); QTest::addColumn<QVector3D>("rotation"); QTest::addColumn<int>("axis"); QTest::newRow("QTransform::rotate(0, ZAxis)") - << true << qreal(0.0f) << QVector3D(0, 0, 1) << int(Qt::ZAxis); + << true << 0.0f << QVector3D(0, 0, 1) << int(Qt::ZAxis); QTest::newRow("QMatrix4x4::rotate(0, ZAxis)") - << false << qreal(0.0f) << QVector3D(0, 0, 1) << int(Qt::ZAxis); + << false << 0.0f << QVector3D(0, 0, 1) << int(Qt::ZAxis); QTest::newRow("QTransform::rotate(45, ZAxis)") - << true << qreal(45.0f) << QVector3D(0, 0, 1) << int(Qt::ZAxis); + << true << 45.0f << QVector3D(0, 0, 1) << int(Qt::ZAxis); QTest::newRow("QMatrix4x4::rotate(45, ZAxis)") - << false << qreal(45.0f) << QVector3D(0, 0, 1) << int(Qt::ZAxis); + << false << 45.0f << QVector3D(0, 0, 1) << int(Qt::ZAxis); QTest::newRow("QTransform::rotate(90, ZAxis)") - << true << qreal(90.0f) << QVector3D(0, 0, 1) << int(Qt::ZAxis); + << true << 90.0f << QVector3D(0, 0, 1) << int(Qt::ZAxis); QTest::newRow("QMatrix4x4::rotate(90, ZAxis)") - << false << qreal(90.0f) << QVector3D(0, 0, 1) << int(Qt::ZAxis); + << false << 90.0f << QVector3D(0, 0, 1) << int(Qt::ZAxis); QTest::newRow("QTransform::rotate(0, YAxis)") - << true << qreal(0.0f) << QVector3D(0, 1, 0) << int(Qt::YAxis); + << true << 0.0f << QVector3D(0, 1, 0) << int(Qt::YAxis); QTest::newRow("QMatrix4x4::rotate(0, YAxis)") - << false << qreal(0.0f) << QVector3D(0, 1, 0) << int(Qt::YAxis); + << false << 0.0f << QVector3D(0, 1, 0) << int(Qt::YAxis); QTest::newRow("QTransform::rotate(45, YAxis)") - << true << qreal(45.0f) << QVector3D(0, 1, 0) << int(Qt::YAxis); + << true << 45.0f << QVector3D(0, 1, 0) << int(Qt::YAxis); QTest::newRow("QMatrix4x4::rotate(45, YAxis)") - << false << qreal(45.0f) << QVector3D(0, 1, 0) << int(Qt::YAxis); + << false << 45.0f << QVector3D(0, 1, 0) << int(Qt::YAxis); QTest::newRow("QTransform::rotate(90, YAxis)") - << true << qreal(90.0f) << QVector3D(0, 1, 0) << int(Qt::YAxis); + << true << 90.0f << QVector3D(0, 1, 0) << int(Qt::YAxis); QTest::newRow("QMatrix4x4::rotate(90, YAxis)") - << false << qreal(90.0f) << QVector3D(0, 1, 0) << int(Qt::YAxis); + << false << 90.0f << QVector3D(0, 1, 0) << int(Qt::YAxis); QTest::newRow("QTransform::rotate(0, XAxis)") - << true << qreal(0.0f) << QVector3D(0, 1, 0) << int(Qt::XAxis); + << true << 0.0f << QVector3D(0, 1, 0) << int(Qt::XAxis); QTest::newRow("QMatrix4x4::rotate(0, XAxis)") - << false << qreal(0.0f) << QVector3D(0, 1, 0) << int(Qt::XAxis); + << false << 0.0f << QVector3D(0, 1, 0) << int(Qt::XAxis); QTest::newRow("QTransform::rotate(45, XAxis)") - << true << qreal(45.0f) << QVector3D(1, 0, 0) << int(Qt::XAxis); + << true << 45.0f << QVector3D(1, 0, 0) << int(Qt::XAxis); QTest::newRow("QMatrix4x4::rotate(45, XAxis)") - << false << qreal(45.0f) << QVector3D(1, 0, 0) << int(Qt::XAxis); + << false << 45.0f << QVector3D(1, 0, 0) << int(Qt::XAxis); QTest::newRow("QTransform::rotate(90, XAxis)") - << true << qreal(90.0f) << QVector3D(1, 0, 0) << int(Qt::XAxis); + << true << 90.0f << QVector3D(1, 0, 0) << int(Qt::XAxis); QTest::newRow("QMatrix4x4::rotate(90, XAxis)") - << false << qreal(90.0f) << QVector3D(1, 0, 0) << int(Qt::XAxis); + << false << 90.0f << QVector3D(1, 0, 0) << int(Qt::XAxis); } void tst_QMatrix4x4::compareRotate() { QFETCH(bool, useQTransform); - QFETCH(qreal, angle); + QFETCH(float, angle); QFETCH(QVector3D, rotation); QFETCH(int, axis); - qreal x = rotation.x(); - qreal y = rotation.y(); - qreal z = rotation.z(); + float x = rotation.x(); + float y = rotation.y(); + float z = rotation.z(); if (useQTransform) { QTransform t; @@ -612,13 +612,13 @@ void tst_QMatrix4x4::compareRotateAfterTranslate_data() void tst_QMatrix4x4::compareRotateAfterTranslate() { QFETCH(bool, useQTransform); - QFETCH(qreal, angle); + QFETCH(float, angle); QFETCH(QVector3D, rotation); QFETCH(int, axis); - qreal x = rotation.x(); - qreal y = rotation.y(); - qreal z = rotation.z(); + float x = rotation.x(); + float y = rotation.y(); + float z = rotation.z(); if (useQTransform) { QTransform t; @@ -644,13 +644,13 @@ void tst_QMatrix4x4::compareRotateAfterScale_data() void tst_QMatrix4x4::compareRotateAfterScale() { QFETCH(bool, useQTransform); - QFETCH(qreal, angle); + QFETCH(float, angle); QFETCH(QVector3D, rotation); QFETCH(int, axis); - qreal x = rotation.x(); - qreal y = rotation.y(); - qreal z = rotation.z(); + float x = rotation.x(); + float y = rotation.y(); + float z = rotation.z(); if (useQTransform) { QTransform t; diff --git a/tests/benchmarks/gui/math3d/qquaternion/tst_qquaternion.cpp b/tests/benchmarks/gui/math3d/qquaternion/tst_qquaternion.cpp index 6ab473e1b4..e47fdccaae 100644 --- a/tests/benchmarks/gui/math3d/qquaternion/tst_qquaternion.cpp +++ b/tests/benchmarks/gui/math3d/qquaternion/tst_qquaternion.cpp @@ -77,38 +77,38 @@ void tst_QQuaternion::cleanup() void tst_QQuaternion::multiply_data() { - QTest::addColumn<qreal>("x1"); - QTest::addColumn<qreal>("y1"); - QTest::addColumn<qreal>("z1"); - QTest::addColumn<qreal>("w1"); - QTest::addColumn<qreal>("x2"); - QTest::addColumn<qreal>("y2"); - QTest::addColumn<qreal>("z2"); - QTest::addColumn<qreal>("w2"); + QTest::addColumn<float>("x1"); + QTest::addColumn<float>("y1"); + QTest::addColumn<float>("z1"); + QTest::addColumn<float>("w1"); + QTest::addColumn<float>("x2"); + QTest::addColumn<float>("y2"); + QTest::addColumn<float>("z2"); + QTest::addColumn<float>("w2"); QTest::newRow("null") - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f - << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f << (qreal)0.0f; + << 0.0f << 0.0f << 0.0f << 0.0f + << 0.0f << 0.0f << 0.0f << 0.0f; QTest::newRow("unitvec") - << (qreal)1.0f << (qreal)0.0f << (qreal)0.0f << (qreal)1.0f - << (qreal)0.0f << (qreal)1.0f << (qreal)0.0f << (qreal)1.0f; + << 1.0f << 0.0f << 0.0f << 1.0f + << 0.0f << 1.0f << 0.0f << 1.0f; QTest::newRow("complex") - << (qreal)1.0f << (qreal)2.0f << (qreal)3.0f << (qreal)7.0f - << (qreal)4.0f << (qreal)5.0f << (qreal)6.0f << (qreal)8.0f; + << 1.0f << 2.0f << 3.0f << 7.0f + << 4.0f << 5.0f << 6.0f << 8.0f; } void tst_QQuaternion::multiply() { - QFETCH(qreal, x1); - QFETCH(qreal, y1); - QFETCH(qreal, z1); - QFETCH(qreal, w1); - QFETCH(qreal, x2); - QFETCH(qreal, y2); - QFETCH(qreal, z2); - QFETCH(qreal, w2); + QFETCH(float, x1); + QFETCH(float, y1); + QFETCH(float, z1); + QFETCH(float, w1); + QFETCH(float, x2); + QFETCH(float, y2); + QFETCH(float, z2); + QFETCH(float, w2); QQuaternion q1(w1, x1, y1, z1); QQuaternion q2(w2, x2, y2, z2); |