summaryrefslogtreecommitdiffstats
path: root/tests/auto/math3d
diff options
context:
space:
mode:
authorRhys Weatherley <rhys.weatherley@nokia.com>2009-06-02 03:01:09 (GMT)
committerRhys Weatherley <rhys.weatherley@nokia.com>2009-06-02 03:01:09 (GMT)
commit32d87121d5102f01809a888dca5a42683a781b20 (patch)
treee29b7f9e4dbb34520dbd77a29d1da72a5f9f5438 /tests/auto/math3d
parent5a7d208ee0730021b79310132d4dd384d7d15801 (diff)
downloadQt-32d87121d5102f01809a888dca5a42683a781b20.zip
Qt-32d87121d5102f01809a888dca5a42683a781b20.tar.gz
Qt-32d87121d5102f01809a888dca5a42683a781b20.tar.bz2
Unit tests for 2D QMatrix4x4::translate() and scale()
Diffstat (limited to 'tests/auto/math3d')
-rw-r--r--tests/auto/math3d/qmatrixnxn/tst_qmatrixnxn.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/auto/math3d/qmatrixnxn/tst_qmatrixnxn.cpp b/tests/auto/math3d/qmatrixnxn/tst_qmatrixnxn.cpp
index 936f9d6..4d51e89 100644
--- a/tests/auto/math3d/qmatrixnxn/tst_qmatrixnxn.cpp
+++ b/tests/auto/math3d/qmatrixnxn/tst_qmatrixnxn.cpp
@@ -1978,6 +1978,14 @@ void tst_QMatrix::scale4x4_data()
0.0f, 0.0f, 0.0f, 1.0f};
QTest::newRow("complex")
<< (qreal)2.0f << (qreal)11.0f << (qreal)-6.5f << (void *)complexScale;
+
+ static const qreal 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;
}
void tst_QMatrix::scale4x4()
{
@@ -1996,6 +2004,12 @@ void tst_QMatrix::scale4x4()
m2.scale(x, y, z);
QVERIFY(isSame(m2, (const qreal *)resultValues));
+ if (z == 1.0f) {
+ QMatrix4x4 m2b;
+ m2b.scale(x, y);
+ QVERIFY(m2b == m2);
+ }
+
QVector3D v1(2.0f, 3.0f, -4.0f);
QVector3D v2 = m1 * v1;
QCOMPARE(v2.x(), (qreal)(2.0f * x));
@@ -2049,6 +2063,12 @@ void tst_QMatrix::scale4x4()
QVERIFY(isSame(m5, (const qreal *)resultValues));
}
+ if (z == 1.0f) {
+ QMatrix4x4 m4b(m3);
+ m4b.scale(x, y);
+ QVERIFY(m4b == m4);
+ }
+
// Test coverage when the special matrix type is unknown.
QMatrix4x4 m6;
@@ -2104,6 +2124,14 @@ void tst_QMatrix::translate4x4_data()
0.0f, 0.0f, 0.0f, 1.0f};
QTest::newRow("complex")
<< (qreal)2.0f << (qreal)11.0f << (qreal)-6.5f << (void *)complexTranslate;
+
+ static const qreal 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;
}
void tst_QMatrix::translate4x4()
{
@@ -2122,6 +2150,12 @@ void tst_QMatrix::translate4x4()
m2.translate(x, y, z);
QVERIFY(isSame(m2, (const qreal *)resultValues));
+ if (z == 0.0f) {
+ QMatrix4x4 m2b;
+ m2b.translate(x, y);
+ QVERIFY(m2b == m2);
+ }
+
QVector3D v1(2.0f, 3.0f, -4.0f);
QVector3D v2 = m1 * v1;
QCOMPARE(v2.x(), (qreal)(2.0f + x));
@@ -2156,6 +2190,12 @@ void tst_QMatrix::translate4x4()
QMatrix4x4 m4(m3);
m4.translate(x, y, z);
QVERIFY(m4 == m3 * m1);
+
+ if (z == 0.0f) {
+ QMatrix4x4 m4b(m3);
+ m4b.translate(x, y);
+ QVERIFY(m4b == m4);
+ }
}
// Test the generation and use of 4x4 rotation matrices.