summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/gui/math3d/qmatrixnxn/tst_qmatrixnxn.cpp1120
-rw-r--r--tests/auto/gui/math3d/qquaternion/tst_qquaternion.cpp683
-rw-r--r--tests/auto/gui/math3d/qvectornd/tst_qvectornd.cpp1711
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicstransform/qgraphicstransform.pro1
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicstransform/tst_qgraphicstransform.cpp83
-rw-r--r--tests/benchmarks/gui/math3d/qmatrix4x4/tst_qmatrix4x4.cpp112
-rw-r--r--tests/benchmarks/gui/math3d/qquaternion/tst_qquaternion.cpp44
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);