summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/tools/qmargins
diff options
context:
space:
mode:
authorJohn Layt <jlayt@kde.org>2014-02-07 11:47:24 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-21 20:33:10 +0100
commit3aae3e81ef55b4131eff0520d67f2594ee9e507c (patch)
treeee33784d65b3683aaf8aae17dda494560e3c8a24 /tests/auto/corelib/tools/qmargins
parentc7aa3a69253c82b8ae814c88ebbdfad7e48d0b2d (diff)
QMarginsF - Add new QMarginsF class
Add a new QMarginsF class to complement QMargins in the style of QSize/QSizeF and QRect/QRectF. [ChangeLog][QtCore] Added class QMarginsF to support handling margins with floating-point values. Change-Id: Iaaa95ec85f5d126d9d864fc4b607241a8c8a8f3a Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Diffstat (limited to 'tests/auto/corelib/tools/qmargins')
-rw-r--r--tests/auto/corelib/tools/qmargins/tst_qmargins.cpp101
1 files changed, 101 insertions, 0 deletions
diff --git a/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp b/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp
index d49e0efe43..409a82aab2 100644
--- a/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp
+++ b/tests/auto/corelib/tools/qmargins/tst_qmargins.cpp
@@ -51,6 +51,10 @@ private slots:
void getSetCheck();
void dataStreamCheck();
void operators();
+
+ void getSetCheckF();
+ void dataStreamCheckF();
+ void operatorsF();
};
// Testing get/set functions
@@ -157,5 +161,102 @@ void tst_QMargins::dataStreamCheck()
}
}
+// Testing get/set functions
+void tst_QMargins::getSetCheckF()
+{
+ QMarginsF margins;
+ // int QMarginsF::width()
+ // void QMarginsF::setWidth(int)
+ margins.setLeft(1.1);
+ QCOMPARE(1.1, margins.left());
+ margins.setTop(2.2);
+ QCOMPARE(2.2, margins.top());
+ margins.setBottom(3.3);
+ QCOMPARE(3.3, margins.bottom());
+ margins.setRight(4.4);
+ QCOMPARE(4.4, margins.right());
+
+ margins = QMarginsF();
+ QVERIFY(margins.isNull());
+ margins.setLeft(5.5);
+ margins.setRight(5.5);
+ QVERIFY(!margins.isNull());
+ QCOMPARE(margins, QMarginsF(5.5, 0.0, 5.5, 0.0));
+}
+
+void tst_QMargins::operatorsF()
+{
+ const QMarginsF m1(12.1, 14.1, 16.1, 18.1);
+ const QMarginsF m2(2.1, 3.1, 4.1, 5.1);
+
+ const QMarginsF added = m1 + m2;
+ QCOMPARE(added, QMarginsF(14.2, 17.2, 20.2, 23.2));
+ QMarginsF a = m1;
+ a += m2;
+ QCOMPARE(a, added);
+
+ const QMarginsF subtracted = m1 - m2;
+ QCOMPARE(subtracted, QMarginsF(10.0, 11.0, 12.0, 13.0));
+ a = m1;
+ a -= m2;
+ QCOMPARE(a, subtracted);
+
+ QMarginsF h = m1;
+ h += 2.1;
+ QCOMPARE(h, QMarginsF(14.2, 16.2, 18.2, 20.2));
+ h -= 2.1;
+ QCOMPARE(h, m1);
+
+ const QMarginsF doubled = m1 * 2.0;
+ QCOMPARE(doubled, QMarginsF(24.2, 28.2, 32.2, 36.2));
+ QCOMPARE(2.0 * m1, doubled);
+ QCOMPARE(m1 * 2.0, doubled);
+
+ a = m1;
+ a *= 2.0;
+ QCOMPARE(a, doubled);
+
+ const QMarginsF halved = m1 / 2.0;
+ QCOMPARE(halved, QMarginsF(6.05, 7.05, 8.05, 9.05));
+
+ a = m1;
+ a /= 2.0;
+ QCOMPARE(a, halved);
+
+ QCOMPARE(m1 + (-m1), QMarginsF());
+
+ QMarginsF m3 = QMarginsF(10.3, 11.4, 12.5, 13.6);
+ QCOMPARE(m3 + 1.1, QMarginsF(11.4, 12.5, 13.6, 14.7));
+ QCOMPARE(1.1 + m3, QMarginsF(11.4, 12.5, 13.6, 14.7));
+ QCOMPARE(m3 - 1.1, QMarginsF(9.2, 10.3, 11.4, 12.5));
+ QCOMPARE(+m3, QMarginsF(10.3, 11.4, 12.5, 13.6));
+ QCOMPARE(-m3, QMarginsF(-10.3, -11.4, -12.5, -13.6));
+}
+
+// Testing QDataStream operators
+void tst_QMargins::dataStreamCheckF()
+{
+ QByteArray buffer;
+
+ // stream out
+ {
+ QMarginsF marginsOut(1.1, 2.2, 3.3, 4.4);
+ QDataStream streamOut(&buffer, QIODevice::WriteOnly);
+ streamOut << marginsOut;
+ }
+
+ // stream in & compare
+ {
+ QMarginsF marginsIn;
+ QDataStream streamIn(&buffer, QIODevice::ReadOnly);
+ streamIn >> marginsIn;
+
+ QCOMPARE(marginsIn.left(), 1.1);
+ QCOMPARE(marginsIn.top(), 2.2);
+ QCOMPARE(marginsIn.right(), 3.3);
+ QCOMPARE(marginsIn.bottom(), 4.4);
+ }
+}
+
QTEST_APPLESS_MAIN(tst_QMargins)
#include "tst_qmargins.moc"