18 void testMakeGrid_data();
20 void testMakeRegularGrid_data();
21 void testMakeRegularGrid();
32 quad[2] =
KWin::WindowVertex(r.x() + r.width(), r.y() + r.height(), r.x() + r.width(), r.y() + r.height());
37void WindowQuadListTest::testMakeGrid_data()
39 QTest::addColumn<KWin::WindowQuadList>(
"orig");
40 QTest::addColumn<int>(
"quadSize");
41 QTest::addColumn<int>(
"expectedCount");
42 QTest::addColumn<KWin::WindowQuadList>(
"expected");
47 QTest::newRow(
"empty") << orig << 10 << 0 << expected;
49 orig.append(makeQuad(QRectF(0, 0, 10, 10)));
50 expected.append(makeQuad(QRectF(0, 0, 10, 10)));
51 QTest::newRow(
"quadSizeTooLarge") << orig << 10 << 1 << expected;
54 expected.append(makeQuad(QRectF(0, 0, 5, 5)));
55 expected.append(makeQuad(QRectF(0, 5, 5, 5)));
56 expected.append(makeQuad(QRectF(5, 0, 5, 5)));
57 expected.append(makeQuad(QRectF(5, 5, 5, 5)));
58 QTest::newRow(
"regularGrid") << orig << 5 << 4 << expected;
61 expected.append(makeQuad(QRectF(0, 0, 9, 9)));
62 expected.append(makeQuad(QRectF(0, 9, 9, 1)));
63 expected.append(makeQuad(QRectF(9, 0, 1, 9)));
64 expected.append(makeQuad(QRectF(9, 9, 1, 1)));
65 QTest::newRow(
"irregularGrid") << orig << 9 << 4 << expected;
67 orig.append(makeQuad(QRectF(0, 10, 4, 3)));
69 expected.append(makeQuad(QRectF(0, 0, 4, 4)));
70 expected.append(makeQuad(QRectF(0, 4, 4, 4)));
71 expected.append(makeQuad(QRectF(0, 8, 4, 2)));
72 expected.append(makeQuad(QRectF(0, 10, 4, 2)));
73 expected.append(makeQuad(QRectF(0, 12, 4, 1)));
74 expected.append(makeQuad(QRectF(4, 0, 4, 4)));
75 expected.append(makeQuad(QRectF(4, 4, 4, 4)));
76 expected.append(makeQuad(QRectF(4, 8, 4, 2)));
77 expected.append(makeQuad(QRectF(8, 0, 2, 4)));
78 expected.append(makeQuad(QRectF(8, 4, 2, 4)));
79 expected.append(makeQuad(QRectF(8, 8, 2, 2)));
80 QTest::newRow(
"irregularGrid2") << orig << 4 << 11 << expected;
83void WindowQuadListTest::testMakeGrid()
86 QFETCH(
int, quadSize);
87 QFETCH(
int, expectedCount);
89 QCOMPARE(actual.count(), expectedCount);
92 for (
auto it = actual.constBegin(); it != actual.constEnd(); ++it) {
95 for (
auto it2 = expected.constBegin(); it2 != expected.constEnd(); ++it2) {
97 auto vertexTest = [actualQuad, expectedQuad](
int index) {
100 if (actualVertex.
x() != expectedVertex.
x()) {
103 if (actualVertex.
y() != expectedVertex.
y()) {
106 if (!qFuzzyIsNull(actualVertex.
u() - expectedVertex.
u())) {
109 if (!qFuzzyIsNull(actualVertex.
v() - expectedVertex.
v())) {
114 found = vertexTest(0) && vertexTest(1) && vertexTest(2) && vertexTest(3);
119 QVERIFY2(found, qPrintable(QStringLiteral(
"%0, %1 / %2, %3").arg(QString::number(actualQuad.
left()), QString::number(actualQuad.
top()), QString::number(actualQuad.
right()), QString::number(actualQuad.
bottom()))));
123void WindowQuadListTest::testMakeRegularGrid_data()
125 QTest::addColumn<KWin::WindowQuadList>(
"orig");
126 QTest::addColumn<int>(
"xSubdivisions");
127 QTest::addColumn<int>(
"ySubdivisions");
128 QTest::addColumn<int>(
"expectedCount");
129 QTest::addColumn<KWin::WindowQuadList>(
"expected");
134 QTest::newRow(
"empty") << orig << 1 << 1 << 0 << expected;
136 orig.append(makeQuad(QRectF(0, 0, 10, 10)));
137 expected.append(makeQuad(QRectF(0, 0, 10, 10)));
138 QTest::newRow(
"noSplit") << orig << 1 << 1 << 1 << expected;
141 expected.append(makeQuad(QRectF(0, 0, 5, 10)));
142 expected.append(makeQuad(QRectF(5, 0, 5, 10)));
143 QTest::newRow(
"xSplit") << orig << 2 << 1 << 2 << expected;
146 expected.append(makeQuad(QRectF(0, 0, 10, 5)));
147 expected.append(makeQuad(QRectF(0, 5, 10, 5)));
148 QTest::newRow(
"ySplit") << orig << 1 << 2 << 2 << expected;
151 expected.append(makeQuad(QRectF(0, 0, 5, 5)));
152 expected.append(makeQuad(QRectF(5, 0, 5, 5)));
153 expected.append(makeQuad(QRectF(0, 5, 5, 5)));
154 expected.append(makeQuad(QRectF(5, 5, 5, 5)));
155 QTest::newRow(
"xySplit") << orig << 2 << 2 << 4 << expected;
157 orig.append(makeQuad(QRectF(0, 10, 4, 2)));
159 expected.append(makeQuad(QRectF(0, 0, 5, 3)));
160 expected.append(makeQuad(QRectF(5, 0, 5, 3)));
161 expected.append(makeQuad(QRectF(0, 3, 5, 3)));
162 expected.append(makeQuad(QRectF(5, 3, 5, 3)));
163 expected.append(makeQuad(QRectF(0, 6, 5, 3)));
164 expected.append(makeQuad(QRectF(5, 6, 5, 3)));
165 expected.append(makeQuad(QRectF(0, 9, 5, 1)));
166 expected.append(makeQuad(QRectF(0, 10, 4, 2)));
167 expected.append(makeQuad(QRectF(5, 9, 5, 1)));
168 QTest::newRow(
"multipleQuads") << orig << 2 << 4 << 9 << expected;
171void WindowQuadListTest::testMakeRegularGrid()
174 QFETCH(
int, xSubdivisions);
175 QFETCH(
int, ySubdivisions);
176 QFETCH(
int, expectedCount);
178 QCOMPARE(actual.count(), expectedCount);
181 for (
auto it = actual.constBegin(); it != actual.constEnd(); ++it) {
184 for (
auto it2 = expected.constBegin(); it2 != expected.constEnd(); ++it2) {
186 auto vertexTest = [actualQuad, expectedQuad](
int index) {
189 if (actualVertex.
x() != expectedVertex.
x()) {
192 if (actualVertex.
y() != expectedVertex.
y()) {
195 if (!qFuzzyIsNull(actualVertex.
u() - expectedVertex.
u())) {
198 if (!qFuzzyIsNull(actualVertex.
v() - expectedVertex.
v())) {
203 found = vertexTest(0) && vertexTest(1) && vertexTest(2) && vertexTest(3);
208 QVERIFY2(found, qPrintable(QStringLiteral(
"%0, %1 / %2, %3").arg(QString::number(actualQuad.
left()), QString::number(actualQuad.
top()), QString::number(actualQuad.
right()), QString::number(actualQuad.
bottom()))));
214#include "windowquadlisttest.moc"
Class representing one area of a window.
WindowQuadList makeGrid(int maxquadsize) const
WindowQuadList makeRegularGrid(int xSubdivisions, int ySubdivisions) const
QTEST_MAIN(OnScreenNotificationTest)