1348 lines
41 KiB
C++
1348 lines
41 KiB
C++
/*
|
|
SPDX-FileCopyrightText: 2024 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
|
|
|
|
SPDX-License-Identifier: LGPL-2.0-or-later
|
|
*/
|
|
|
|
#include <QTest>
|
|
|
|
#include "core/rect.h"
|
|
|
|
using namespace KWin;
|
|
|
|
class TestRect : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
TestRect() = default;
|
|
|
|
private Q_SLOTS:
|
|
void equals_data();
|
|
void equals();
|
|
void notEquals_data();
|
|
void notEquals();
|
|
void empty_data();
|
|
void empty();
|
|
void containsPoint_data();
|
|
void containsPoint();
|
|
void containsRect_data();
|
|
void containsRect();
|
|
void x_data();
|
|
void x();
|
|
void setX_data();
|
|
void setX();
|
|
void y_data();
|
|
void y();
|
|
void setY_data();
|
|
void setY();
|
|
void width_data();
|
|
void width();
|
|
void setWidth_data();
|
|
void setWidth();
|
|
void height_data();
|
|
void height();
|
|
void setHeight_data();
|
|
void setHeight();
|
|
void left_data();
|
|
void left();
|
|
void setLeft_data();
|
|
void setLeft();
|
|
void moveLeft_data();
|
|
void moveLeft();
|
|
void top_data();
|
|
void top();
|
|
void setTop_data();
|
|
void setTop();
|
|
void moveTop_data();
|
|
void moveTop();
|
|
void right_data();
|
|
void right();
|
|
void setRight_data();
|
|
void setRight();
|
|
void moveRight_data();
|
|
void moveRight();
|
|
void bottom_data();
|
|
void bottom();
|
|
void setBottom_data();
|
|
void setBottom();
|
|
void moveBottom_data();
|
|
void moveBottom();
|
|
void center_data();
|
|
void center();
|
|
void moveCenter_data();
|
|
void moveCenter();
|
|
void topLeft_data();
|
|
void topLeft();
|
|
void setTopLeft_data();
|
|
void setTopLeft();
|
|
void moveTopLeft_data();
|
|
void moveTopLeft();
|
|
void topRight_data();
|
|
void topRight();
|
|
void setTopRight_data();
|
|
void setTopRight();
|
|
void moveTopRight_data();
|
|
void moveTopRight();
|
|
void bottomRight_data();
|
|
void bottomRight();
|
|
void setBottomRight_data();
|
|
void setBottomRight();
|
|
void moveBottomRight_data();
|
|
void moveBottomRight();
|
|
void bottomLeft_data();
|
|
void bottomLeft();
|
|
void setBottomLeft_data();
|
|
void setBottomLeft();
|
|
void moveBottomLeft_data();
|
|
void moveBottomLeft();
|
|
void transposed_data();
|
|
void transposed();
|
|
void translate_data();
|
|
void translate();
|
|
void translated_data();
|
|
void translated();
|
|
void scaled_data();
|
|
void scaled();
|
|
void adjust_data();
|
|
void adjust();
|
|
void adjusted_data();
|
|
void adjusted();
|
|
void grownBy_data();
|
|
void grownBy();
|
|
void shrunkBy_data();
|
|
void shrunkBy();
|
|
void united_data();
|
|
void united();
|
|
void intersects_data();
|
|
void intersects();
|
|
void intersected_data();
|
|
void intersected();
|
|
void implicitConversions();
|
|
};
|
|
|
|
void TestRect::equals_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect1");
|
|
QTest::addColumn<Rect>("rect2");
|
|
QTest::addColumn<bool>("expected");
|
|
|
|
QTest::addRow("default == default") << Rect() << Rect() << true;
|
|
QTest::addRow("2,3 4x5 == default") << Rect(2, 3, 4, 5) << Rect() << false;
|
|
QTest::addRow("default == 2,3 4x5") << Rect() << Rect(2, 3, 4, 5) << false;
|
|
QTest::addRow("2,3 4x5 == 2,3 4x5") << Rect(2, 3, 4, 5) << Rect(2, 3, 4, 5) << true;
|
|
|
|
QTest::addRow("2,3 4x5 == 0,3 4x5") << Rect(2, 3, 4, 5) << Rect(0, 3, 4, 5) << false;
|
|
QTest::addRow("2,3 4x5 == 2,0 4x5") << Rect(2, 3, 4, 5) << Rect(2, 0, 4, 5) << false;
|
|
QTest::addRow("2,3 4x5 == 2,3 0x5") << Rect(2, 3, 4, 5) << Rect(2, 3, 0, 5) << false;
|
|
QTest::addRow("2,3 4x5 == 2,3 4x0") << Rect(2, 3, 4, 5) << Rect(2, 3, 4, 0) << false;
|
|
}
|
|
|
|
void TestRect::equals()
|
|
{
|
|
QFETCH(Rect, rect1);
|
|
QFETCH(Rect, rect2);
|
|
|
|
QTEST(rect1 == rect2, "expected");
|
|
}
|
|
|
|
void TestRect::notEquals_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect1");
|
|
QTest::addColumn<Rect>("rect2");
|
|
QTest::addColumn<bool>("expected");
|
|
|
|
QTest::addRow("default == default") << Rect() << Rect() << false;
|
|
QTest::addRow("2,3 4x5 == default") << Rect(2, 3, 4, 5) << Rect() << true;
|
|
QTest::addRow("default == 2,3 4x5") << Rect() << Rect(2, 3, 4, 5) << true;
|
|
QTest::addRow("2,3 4x5 == 2,3 4x5") << Rect(2, 3, 4, 5) << Rect(2, 3, 4, 5) << false;
|
|
|
|
QTest::addRow("2,3 4x5 == 0,3 4x5") << Rect(2, 3, 4, 5) << Rect(0, 3, 4, 5) << true;
|
|
QTest::addRow("2,3 4x5 == 2,0 4x5") << Rect(2, 3, 4, 5) << Rect(2, 0, 4, 5) << true;
|
|
QTest::addRow("2,3 4x5 == 2,3 0x5") << Rect(2, 3, 4, 5) << Rect(2, 3, 0, 5) << true;
|
|
QTest::addRow("2,3 4x5 == 2,3 4x0") << Rect(2, 3, 4, 5) << Rect(2, 3, 4, 0) << true;
|
|
}
|
|
|
|
void TestRect::notEquals()
|
|
{
|
|
QFETCH(Rect, rect1);
|
|
QFETCH(Rect, rect2);
|
|
|
|
QTEST(rect1 != rect2, "expected");
|
|
}
|
|
|
|
void TestRect::empty_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<bool>("empty");
|
|
|
|
QTest::addRow("default") << Rect() << true;
|
|
|
|
QTest::addRow("0,0 0x0") << Rect(0, 0, 0, 0) << true;
|
|
QTest::addRow("2,3 0x0") << Rect(2, 3, 0, 0) << true;
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << false;
|
|
|
|
QTest::addRow("QPoint(1, 1) QPoint(1, 1)") << Rect(QPoint(1, 1), QPoint(1, 1)) << true;
|
|
QTest::addRow("QPoint(1, 1) QPoint(1, 2)") << Rect(QPoint(1, 1), QPoint(1, 2)) << true;
|
|
QTest::addRow("QPoint(1, 1) QPoint(2, 1)") << Rect(QPoint(1, 1), QPoint(2, 1)) << true;
|
|
QTest::addRow("QPoint(1, 1) QPoint(2, 2)") << Rect(QPoint(1, 1), QPoint(2, 2)) << false;
|
|
|
|
QTest::addRow("QPoint(1, 1) QSize(0, 0)") << Rect(QPoint(1, 1), QSize(0, 0)) << true;
|
|
QTest::addRow("QPoint(1, 1) QSize(0, 1)") << Rect(QPoint(1, 1), QSize(0, 1)) << true;
|
|
QTest::addRow("QPoint(1, 1) QSize(1, 0)") << Rect(QPoint(1, 1), QSize(1, 0)) << true;
|
|
QTest::addRow("QPoint(1, 1) QSize(1, 1)") << Rect(QPoint(1, 1), QSize(1, 1)) << false;
|
|
|
|
QTest::addRow("QRect()") << Rect(QRect()) << true;
|
|
QTest::addRow("QRect(1, 1, 0, 0)") << Rect(QRect(1, 1, 0, 0)) << true;
|
|
QTest::addRow("QRect(1, 1, 0, 1)") << Rect(QRect(1, 1, 0, 1)) << true;
|
|
QTest::addRow("QRect(1, 1, 1, 0)") << Rect(QRect(1, 1, 1, 0)) << true;
|
|
QTest::addRow("QRect(1, 1, 1, 1)") << Rect(QRect(1, 1, 1, 1)) << false;
|
|
}
|
|
|
|
void TestRect::empty()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
|
|
QTEST(rect.isEmpty(), "empty");
|
|
}
|
|
|
|
void TestRect::containsPoint_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QPoint>("point");
|
|
QTest::addColumn<bool>("contains");
|
|
|
|
QTest::addRow("empty - 0,0") << Rect() << QPoint(0, 0) << false;
|
|
QTest::addRow("empty - 1,1") << Rect() << QPoint(1, 1) << false;
|
|
|
|
QTest::addRow("2,3 4x5 - 1,2") << Rect(2, 3, 4, 5) << QPoint(1, 2) << false;
|
|
QTest::addRow("2,3 4x5 - 7,9") << Rect(2, 3, 4, 5) << QPoint(7, 9) << false;
|
|
QTest::addRow("2,3 4x5 - 1,9") << Rect(2, 3, 4, 5) << QPoint(1, 9) << false;
|
|
QTest::addRow("2,3 4x5 - 7,2") << Rect(2, 3, 4, 5) << QPoint(7, 2) << false;
|
|
|
|
QTest::addRow("2,3 4x5 - 2,3") << Rect(2, 3, 4, 5) << QPoint(2, 3) << true;
|
|
QTest::addRow("2,3 4x5 - 6,3") << Rect(2, 3, 4, 5) << QPoint(6, 3) << false;
|
|
QTest::addRow("2,3 4x5 - 5,3") << Rect(2, 3, 4, 5) << QPoint(5, 3) << true;
|
|
QTest::addRow("2,3 4x5 - 6,8") << Rect(2, 3, 4, 5) << QPoint(6, 8) << false;
|
|
QTest::addRow("2,3 4x5 - 5,7") << Rect(2, 3, 4, 5) << QPoint(5, 7) << true;
|
|
QTest::addRow("2,3 4x5 - 2,8") << Rect(2, 3, 4, 5) << QPoint(2, 8) << false;
|
|
QTest::addRow("2,3 4x5 - 2,7") << Rect(2, 3, 4, 5) << QPoint(2, 7) << true;
|
|
|
|
QTest::addRow("2,3 4x5 - 2,5") << Rect(2, 3, 4, 5) << QPoint(2, 5) << true;
|
|
QTest::addRow("2,3 4x5 - 1,5") << Rect(2, 3, 4, 5) << QPoint(1, 5) << false;
|
|
QTest::addRow("2,3 4x5 - 3,5") << Rect(2, 3, 4, 5) << QPoint(3, 5) << true;
|
|
|
|
QTest::addRow("2,3 4x5 - 4,3") << Rect(2, 3, 4, 5) << QPoint(4, 3) << true;
|
|
QTest::addRow("2,3 4x5 - 4,2") << Rect(2, 3, 4, 5) << QPoint(4, 2) << false;
|
|
QTest::addRow("2,3 4x5 - 4,4") << Rect(2, 3, 4, 5) << QPoint(4, 4) << true;
|
|
|
|
QTest::addRow("2,3 4x5 - 6,5") << Rect(2, 3, 4, 5) << QPoint(6, 5) << false;
|
|
QTest::addRow("2,3 4x5 - 5,5") << Rect(2, 3, 4, 5) << QPoint(5, 5) << true;
|
|
QTest::addRow("2,3 4x5 - 7,5") << Rect(2, 3, 4, 5) << QPoint(7, 5) << false;
|
|
|
|
QTest::addRow("2,3 4x5 - 4,8") << Rect(2, 3, 4, 5) << QPoint(4, 8) << false;
|
|
QTest::addRow("2,3 4x5 - 4,7") << Rect(2, 3, 4, 5) << QPoint(4, 7) << true;
|
|
QTest::addRow("2,3 4x5 - 4,9") << Rect(2, 3, 4, 5) << QPoint(4, 9) << false;
|
|
}
|
|
|
|
void TestRect::containsPoint()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(QPoint, point);
|
|
|
|
QTEST(rect.contains(point), "contains");
|
|
QTEST(rect.contains(point.x(), point.y()), "contains");
|
|
}
|
|
|
|
void TestRect::containsRect_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<Rect>("other");
|
|
QTest::addColumn<bool>("contains");
|
|
|
|
QTest::addRow("empty - empty") << Rect() << Rect() << false;
|
|
QTest::addRow("empty - 2,3 4x5") << Rect() << Rect(2, 3, 4, 5) << false;
|
|
QTest::addRow("2,3 4x5 - empty") << Rect(2, 3, 4, 5) << Rect() << false;
|
|
|
|
QTest::addRow("2,3 4x5 - 2,3 4x5") << Rect(2, 3, 4, 5) << Rect(2, 3, 4, 5) << true;
|
|
QTest::addRow("2,3 4x5 - 2,3 0x0") << Rect(2, 3, 4, 5) << Rect(2, 3, 0, 0) << true;
|
|
QTest::addRow("2,3 4x5 - 2,3 4x6") << Rect(2, 3, 4, 5) << Rect(2, 3, 4, 6) << false;
|
|
QTest::addRow("2,3 4x5 - 2,3 5x5") << Rect(2, 3, 4, 5) << Rect(2, 3, 5, 5) << false;
|
|
QTest::addRow("2,3 4x5 - 1,3 4x5") << Rect(2, 3, 4, 5) << Rect(1, 3, 4, 5) << false;
|
|
QTest::addRow("2,3 4x5 - 2,2 4x5") << Rect(2, 3, 4, 5) << Rect(2, 2, 4, 5) << false;
|
|
|
|
QTest::addRow("5,5 1x1 - 2,2 1x1") << Rect(5, 5, 1, 1) << Rect(2, 2, 1, 1) << false;
|
|
QTest::addRow("2,2 1x1 - 5,5 1x1") << Rect(2, 2, 1, 1) << Rect(5, 5, 1, 1) << false;
|
|
}
|
|
|
|
void TestRect::containsRect()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(Rect, other);
|
|
|
|
QTEST(rect.contains(other), "contains");
|
|
}
|
|
|
|
void TestRect::x_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("x");
|
|
|
|
QTest::addRow("default") << Rect() << 0;
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 2;
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << 2;
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << 2;
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << 2;
|
|
}
|
|
|
|
void TestRect::x()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
|
|
QTEST(rect.x(), "x");
|
|
}
|
|
|
|
void TestRect::setX_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("empty") << Rect() << -1 << Rect(-1, 0, 1, 0);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 0 << Rect(0, 3, 6, 5);
|
|
}
|
|
|
|
void TestRect::setX()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(int, value);
|
|
|
|
rect.setX(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::y_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("y");
|
|
|
|
QTest::addRow("default") << Rect() << 0;
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 3;
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << 3;
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << 3;
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << 3;
|
|
}
|
|
|
|
void TestRect::y()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
|
|
QTEST(rect.y(), "y");
|
|
}
|
|
|
|
void TestRect::setY_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("empty") << Rect() << -1 << Rect(0, -1, 0, 1);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 0 << Rect(2, 0, 4, 8);
|
|
}
|
|
|
|
void TestRect::setY()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(int, value);
|
|
|
|
rect.setY(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::width_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("width");
|
|
|
|
QTest::addRow("default") << Rect() << 0;
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 4;
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << 4;
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << 4;
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << 4;
|
|
}
|
|
|
|
void TestRect::width()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
|
|
QTEST(rect.width(), "width");
|
|
}
|
|
|
|
void TestRect::setWidth_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("empty") << Rect() << 1 << Rect(0, 0, 1, 0);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 0 << Rect(2, 3, 0, 5);
|
|
}
|
|
|
|
void TestRect::setWidth()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(int, value);
|
|
|
|
rect.setWidth(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::height_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("height");
|
|
|
|
QTest::addRow("default") << Rect() << 0;
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 5;
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << 5;
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << 5;
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << 5;
|
|
}
|
|
|
|
void TestRect::height()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
|
|
QTEST(rect.height(), "height");
|
|
}
|
|
|
|
void TestRect::setHeight_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("empty") << Rect() << 1 << Rect(0, 0, 0, 1);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 0 << Rect(2, 3, 4, 0);
|
|
}
|
|
|
|
void TestRect::setHeight()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(int, value);
|
|
|
|
rect.setHeight(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::left_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("left");
|
|
|
|
QTest::addRow("default") << Rect() << 0;
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 2;
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << 2;
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << 2;
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << 2;
|
|
}
|
|
|
|
void TestRect::left()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
|
|
QTEST(rect.left(), "left");
|
|
}
|
|
|
|
void TestRect::setLeft_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("empty") << Rect() << -1 << Rect(-1, 0, 1, 0);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 0 << Rect(0, 3, 6, 5);
|
|
}
|
|
|
|
void TestRect::setLeft()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(int, value);
|
|
|
|
rect.setLeft(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::moveLeft_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("empty") << Rect() << -1 << Rect(-1, 0, 0, 0);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 0 << Rect(0, 3, 4, 5);
|
|
}
|
|
|
|
void TestRect::moveLeft()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(int, value);
|
|
|
|
rect.moveLeft(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::top_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("top");
|
|
|
|
QTest::addRow("default") << Rect() << 0;
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 3;
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << 3;
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << 3;
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << 3;
|
|
}
|
|
|
|
void TestRect::top()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
|
|
QTEST(rect.top(), "top");
|
|
}
|
|
|
|
void TestRect::setTop_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("empty") << Rect() << -1 << Rect(0, -1, 0, 1);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 0 << Rect(2, 0, 4, 8);
|
|
}
|
|
|
|
void TestRect::setTop()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(int, value);
|
|
|
|
rect.setTop(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::moveTop_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("empty") << Rect() << -1 << Rect(0, -1, 0, 0);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 0 << Rect(2, 0, 4, 5);
|
|
}
|
|
|
|
void TestRect::moveTop()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(int, value);
|
|
|
|
rect.moveTop(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::right_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("right");
|
|
|
|
QTest::addRow("default") << Rect() << 0;
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 6;
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << 6;
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << 6;
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << 6;
|
|
}
|
|
|
|
void TestRect::right()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
|
|
QTEST(rect.right(), "right");
|
|
}
|
|
|
|
void TestRect::setRight_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("empty") << Rect() << 1 << Rect(0, 0, 1, 0);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 12 << Rect(2, 3, 10, 5);
|
|
}
|
|
|
|
void TestRect::setRight()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(int, value);
|
|
|
|
rect.setRight(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::moveRight_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("empty") << Rect() << -1 << Rect(-1, 0, 0, 0);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 14 << Rect(10, 3, 4, 5);
|
|
}
|
|
|
|
void TestRect::moveRight()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(int, value);
|
|
|
|
rect.moveRight(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::bottom_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("bottom");
|
|
|
|
QTest::addRow("default") << Rect() << 0;
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 8;
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << 8;
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << 8;
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << 8;
|
|
}
|
|
|
|
void TestRect::bottom()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
|
|
QTEST(rect.bottom(), "bottom");
|
|
}
|
|
|
|
void TestRect::setBottom_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("empty") << Rect() << 1 << Rect(0, 0, 0, 1);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 13 << Rect(2, 3, 4, 10);
|
|
}
|
|
|
|
void TestRect::setBottom()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(int, value);
|
|
|
|
rect.setBottom(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::moveBottom_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("empty") << Rect() << -1 << Rect(0, -1, 0, 0);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << 15 << Rect(2, 10, 4, 5);
|
|
}
|
|
|
|
void TestRect::moveBottom()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(int, value);
|
|
|
|
rect.moveBottom(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::center_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QPoint>("center");
|
|
|
|
QTest::addRow("default") << Rect() << QPoint(0, 0);
|
|
QTest::addRow("2,3 0x0") << Rect(2, 3, 0, 0) << QPoint(2, 3);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << QPoint(4, 5);
|
|
QTest::addRow("2,3 4x6") << Rect(2, 3, 4, 6) << QPoint(4, 6);
|
|
QTest::addRow("2,3 5x5") << Rect(2, 3, 5, 5) << QPoint(4, 5);
|
|
}
|
|
|
|
void TestRect::center()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
|
|
QTEST(rect.center(), "center");
|
|
}
|
|
|
|
void TestRect::moveCenter_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QPoint>("center");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("default - 0,0") << Rect() << QPoint(0, 0) << Rect();
|
|
QTest::addRow("2,3 0x0 - 2,3") << Rect(2, 3, 0, 0) << QPoint(2, 3) << Rect(2, 3, 0, 0);
|
|
QTest::addRow("2,3 4x5 - 4,5") << Rect(2, 3, 4, 5) << QPoint(4, 5) << Rect(2, 3, 4, 5);
|
|
QTest::addRow("2,3 4x6 - 4,6") << Rect(2, 3, 4, 6) << QPoint(4, 6) << Rect(2, 3, 4, 6);
|
|
QTest::addRow("2,3 5x5 - 4,5") << Rect(2, 3, 5, 5) << QPoint(4, 5) << Rect(2, 3, 5, 5);
|
|
|
|
QTest::addRow("2,3 4x5 - 10,10") << Rect(2, 3, 4, 5) << QPoint(10, 10) << Rect(8, 8, 4, 5);
|
|
QTest::addRow("2,3 4x6 - 10,10") << Rect(2, 3, 4, 6) << QPoint(10, 10) << Rect(8, 7, 4, 6);
|
|
|
|
QTest::addRow("2,3 5x5 - 10,10") << Rect(2, 3, 5, 5) << QPoint(10, 10) << Rect(8, 8, 5, 5);
|
|
QTest::addRow("2,3 5x6 - 10,10") << Rect(2, 3, 5, 6) << QPoint(10, 10) << Rect(8, 7, 5, 6);
|
|
}
|
|
|
|
void TestRect::moveCenter()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(QPoint, center);
|
|
|
|
rect.moveCenter(center);
|
|
QCOMPARE(rect.center(), center);
|
|
}
|
|
|
|
void TestRect::topLeft_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QPoint>("topLeft");
|
|
|
|
QTest::addRow("default") << Rect() << QPoint(0, 0);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << QPoint(2, 3);
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << QPoint(2, 3);
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << QPoint(2, 3);
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << QPoint(2, 3);
|
|
}
|
|
|
|
void TestRect::topLeft()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
|
|
QTEST(rect.topLeft(), "topLeft");
|
|
}
|
|
|
|
void TestRect::setTopLeft_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QPoint>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("default") << Rect() << QPoint(-1, -2) << Rect(-1, -2, 1, 2);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << QPoint(0, -1) << Rect(0, -1, 6, 9);
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << QPoint(0, -1) << Rect(0, -1, 6, 9);
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << QPoint(0, -1) << Rect(0, -1, 6, 9);
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << QPoint(0, -1) << Rect(0, -1, 6, 9);
|
|
}
|
|
|
|
void TestRect::setTopLeft()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(QPoint, value);
|
|
|
|
rect.setTopLeft(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::moveTopLeft_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QPoint>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("default") << Rect() << QPoint(1, 2) << Rect(1, 2, 0, 0);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << QPoint(10, 11) << Rect(10, 11, 4, 5);
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << QPoint(10, 11) << Rect(10, 11, 4, 5);
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << QPoint(10, 11) << Rect(10, 11, 4, 5);
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << QPoint(10, 11) << Rect(10, 11, 4, 5);
|
|
}
|
|
|
|
void TestRect::moveTopLeft()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(QPoint, value);
|
|
|
|
rect.moveTopLeft(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::topRight_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QPoint>("topRight");
|
|
|
|
QTest::addRow("default") << Rect() << QPoint(0, 0);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << QPoint(6, 3);
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << QPoint(6, 3);
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << QPoint(6, 3);
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << QPoint(6, 3);
|
|
}
|
|
|
|
void TestRect::topRight()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
|
|
QTEST(rect.topRight(), "topRight");
|
|
}
|
|
|
|
void TestRect::setTopRight_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QPoint>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("default") << Rect() << QPoint(1, -2) << Rect(0, -2, 1, 2);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << QPoint(12, 0) << Rect(2, 0, 10, 8);
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << QPoint(12, 0) << Rect(2, 0, 10, 8);
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << QPoint(12, 0) << Rect(2, 0, 10, 8);
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << QPoint(12, 0) << Rect(2, 0, 10, 8);
|
|
}
|
|
|
|
void TestRect::setTopRight()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(QPoint, value);
|
|
|
|
rect.setTopRight(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::moveTopRight_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QPoint>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("default") << Rect() << QPoint(10, 1) << Rect(10, 1, 0, 0);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << QPoint(10, 1) << Rect(6, 1, 4, 5);
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << QPoint(10, 1) << Rect(6, 1, 4, 5);
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << QPoint(10, 1) << Rect(6, 1, 4, 5);
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << QPoint(10, 1) << Rect(6, 1, 4, 5);
|
|
}
|
|
|
|
void TestRect::moveTopRight()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(QPoint, value);
|
|
|
|
rect.moveTopRight(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::bottomRight_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QPoint>("bottomRight");
|
|
|
|
QTest::addRow("default") << Rect() << QPoint(0, 0);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << QPoint(6, 8);
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << QPoint(6, 8);
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << QPoint(6, 8);
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << QPoint(6, 8);
|
|
}
|
|
|
|
void TestRect::bottomRight()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
|
|
QTEST(rect.bottomRight(), "bottomRight");
|
|
}
|
|
|
|
void TestRect::setBottomRight_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QPoint>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("default") << Rect() << QPoint(1, 2) << Rect(0, 0, 1, 2);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << QPoint(12, 16) << Rect(2, 3, 10, 13);
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << QPoint(12, 16) << Rect(2, 3, 10, 13);
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << QPoint(12, 16) << Rect(2, 3, 10, 13);
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << QPoint(12, 16) << Rect(2, 3, 10, 13);
|
|
}
|
|
|
|
void TestRect::setBottomRight()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(QPoint, value);
|
|
|
|
rect.setBottomRight(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::moveBottomRight_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QPoint>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("default") << Rect() << QPoint(10, 15) << Rect(10, 15, 0, 0);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << QPoint(10, 15) << Rect(6, 10, 4, 5);
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << QPoint(10, 15) << Rect(6, 10, 4, 5);
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << QPoint(10, 15) << Rect(6, 10, 4, 5);
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << QPoint(10, 15) << Rect(6, 10, 4, 5);
|
|
}
|
|
|
|
void TestRect::moveBottomRight()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(QPoint, value);
|
|
|
|
rect.moveBottomRight(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::bottomLeft_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QPoint>("bottomLeft");
|
|
|
|
QTest::addRow("default") << Rect() << QPoint(0, 0);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << QPoint(2, 8);
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << QPoint(2, 8);
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << QPoint(2, 8);
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << QPoint(2, 8);
|
|
}
|
|
|
|
void TestRect::bottomLeft()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
|
|
QTEST(rect.bottomLeft(), "bottomLeft");
|
|
}
|
|
|
|
void TestRect::setBottomLeft_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QPoint>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("default") << Rect() << QPoint(-1, 2) << Rect(-1, 0, 1, 2);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << QPoint(0, 10) << Rect(0, 3, 6, 7);
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << QPoint(0, 10) << Rect(0, 3, 6, 7);
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << QPoint(0, 10) << Rect(0, 3, 6, 7);
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << QPoint(0, 10) << Rect(0, 3, 6, 7);
|
|
}
|
|
|
|
void TestRect::setBottomLeft()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(QPoint, value);
|
|
|
|
rect.setBottomLeft(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::moveBottomLeft_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QPoint>("value");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("default") << Rect() << QPoint(1, 15) << Rect(1, 15, 0, 0);
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << QPoint(1, 15) << Rect(1, 10, 4, 5);
|
|
QTest::addRow("QPoint(2, 3) QPoint(6, 8)") << Rect(QPoint(2, 3), QPoint(6, 8)) << QPoint(1, 15) << Rect(1, 10, 4, 5);
|
|
QTest::addRow("QPoint(2, 3) QSize(4, 5)") << Rect(QPoint(2, 3), QSize(4, 5)) << QPoint(1, 15) << Rect(1, 10, 4, 5);
|
|
QTest::addRow("QRect(2, 3, 4, 5)") << Rect(QRect(2, 3, 4, 5)) << QPoint(1, 15) << Rect(1, 10, 4, 5);
|
|
}
|
|
|
|
void TestRect::moveBottomLeft()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(QPoint, value);
|
|
|
|
rect.moveBottomLeft(value);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::transposed_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("default") << Rect() << Rect();
|
|
QTest::addRow("2,3 4x5") << Rect(2, 3, 4, 5) << Rect(2, 3, 5, 4);
|
|
}
|
|
|
|
void TestRect::transposed()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
|
|
QTEST(rect.transposed(), "expected");
|
|
}
|
|
|
|
void TestRect::translate_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QPoint>("offset");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("default") << Rect() << QPoint(1, 2) << Rect(1, 2, 0, 0);
|
|
QTest::addRow("2,3 4x5 by 1,0") << Rect(2, 3, 4, 5) << QPoint(1, 0) << Rect(3, 3, 4, 5);
|
|
QTest::addRow("2,3 4x5 by 0,1") << Rect(2, 3, 4, 5) << QPoint(0, 1) << Rect(2, 4, 4, 5);
|
|
QTest::addRow("2,3 4x5 by 1,1") << Rect(2, 3, 4, 5) << QPoint(1, 1) << Rect(3, 4, 4, 5);
|
|
}
|
|
|
|
void TestRect::translate()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(QPoint, offset);
|
|
|
|
{
|
|
Rect tmp = rect;
|
|
tmp.translate(offset);
|
|
QTEST(tmp, "expected");
|
|
}
|
|
|
|
{
|
|
Rect tmp = rect;
|
|
tmp.translate(offset.x(), offset.y());
|
|
QTEST(tmp, "expected");
|
|
}
|
|
}
|
|
|
|
void TestRect::translated_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QPoint>("offset");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("default") << Rect() << QPoint(1, 2) << Rect(1, 2, 0, 0);
|
|
QTest::addRow("2,3 4x5 by 1,0") << Rect(2, 3, 4, 5) << QPoint(1, 0) << Rect(3, 3, 4, 5);
|
|
QTest::addRow("2,3 4x5 by 0,1") << Rect(2, 3, 4, 5) << QPoint(0, 1) << Rect(2, 4, 4, 5);
|
|
QTest::addRow("2,3 4x5 by 1,1") << Rect(2, 3, 4, 5) << QPoint(1, 1) << Rect(3, 4, 4, 5);
|
|
}
|
|
|
|
void TestRect::translated()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(QPoint, offset);
|
|
|
|
QTEST(rect.translated(offset), "expected");
|
|
QTEST(rect.translated(offset.x(), offset.y()), "expected");
|
|
}
|
|
|
|
void TestRect::scaled_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<qreal>("scale");
|
|
QTest::addColumn<RectF>("expected");
|
|
|
|
QTest::addRow("default x 1.0") << Rect() << 1.0 << RectF();
|
|
QTest::addRow("default x 2.0") << Rect() << 2.0 << RectF();
|
|
QTest::addRow("empty x 1.0") << Rect(0, 0, 0, 0) << 1.0 << RectF(0, 0, 0, 0);
|
|
QTest::addRow("empty x 2.0") << Rect(0, 0, 0, 0) << 2.0 << RectF(0, 0, 0, 0);
|
|
QTest::addRow("1,1 0,0 x 1.0") << Rect(1, 1, 0, 0) << 1.0 << RectF(1, 1, 0, 0);
|
|
QTest::addRow("1,1 0,0 x 2.0") << Rect(1, 1, 0, 0) << 2.0 << RectF(2, 2, 0, 0);
|
|
QTest::addRow("2,3 4,5 x 1.0") << Rect(2, 3, 4, 5) << 1.0 << RectF(2, 3, 4, 5);
|
|
QTest::addRow("2,3 4,5 x 1.75") << Rect(2, 3, 4, 5) << 1.75 << RectF(3.5, 5.25, 7, 8.75);
|
|
QTest::addRow("2,3 4,5 x 2.0") << Rect(2, 3, 4, 5) << 2.0 << RectF(4, 6, 8, 10);
|
|
}
|
|
|
|
void TestRect::scaled()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(qreal, scale);
|
|
|
|
QTEST(rect.scaled(scale), "expected");
|
|
}
|
|
|
|
void TestRect::adjust_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("x0");
|
|
QTest::addColumn<int>("y0");
|
|
QTest::addColumn<int>("x1");
|
|
QTest::addColumn<int>("y1");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("default - -1,0,0,0") << Rect() << -1 << 0 << 0 << 0 << Rect(-1, 0, 1, 0);
|
|
QTest::addRow("default - 0,-1,0,0") << Rect() << 0 << -1 << 0 << 0 << Rect(0, -1, 0, 1);
|
|
QTest::addRow("default - 0,0,1,0") << Rect() << 0 << 0 << 1 << 0 << Rect(0, 0, 1, 0);
|
|
QTest::addRow("default - 0,0,0,1") << Rect() << 0 << 0 << 0 << 1 << Rect(0, 0, 0, 1);
|
|
QTest::addRow("default - -1,0,1,0") << Rect() << -1 << 0 << 1 << 0 << Rect(-1, 0, 2, 0);
|
|
QTest::addRow("default - 0,-1,0,1") << Rect() << 0 << -1 << 0 << 1 << Rect(0, -1, 0, 2);
|
|
QTest::addRow("default - -1,-1,1,1") << Rect() << -1 << -1 << 1 << 1 << Rect(-1, -1, 2, 2);
|
|
|
|
QTest::addRow("2,3 4x5 - -1,0,1,0") << Rect(2, 3, 4, 5) << -1 << 0 << 1 << 0 << Rect(1, 3, 6, 5);
|
|
QTest::addRow("2,3 4x5 - 0,-1,0,1") << Rect(2, 3, 4, 5) << 0 << -1 << 0 << 1 << Rect(2, 2, 4, 7);
|
|
}
|
|
|
|
void TestRect::adjust()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(int, x0);
|
|
QFETCH(int, y0);
|
|
QFETCH(int, x1);
|
|
QFETCH(int, y1);
|
|
|
|
rect.adjust(x0, y0, x1, y1);
|
|
QTEST(rect, "expected");
|
|
}
|
|
|
|
void TestRect::adjusted_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<int>("x0");
|
|
QTest::addColumn<int>("y0");
|
|
QTest::addColumn<int>("x1");
|
|
QTest::addColumn<int>("y1");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("default - -1,0,0,0") << Rect() << -1 << 0 << 0 << 0 << Rect(-1, 0, 1, 0);
|
|
QTest::addRow("default - 0,-1,0,0") << Rect() << 0 << -1 << 0 << 0 << Rect(0, -1, 0, 1);
|
|
QTest::addRow("default - 0,0,1,0") << Rect() << 0 << 0 << 1 << 0 << Rect(0, 0, 1, 0);
|
|
QTest::addRow("default - 0,0,0,1") << Rect() << 0 << 0 << 0 << 1 << Rect(0, 0, 0, 1);
|
|
QTest::addRow("default - -1,0,1,0") << Rect() << -1 << 0 << 1 << 0 << Rect(-1, 0, 2, 0);
|
|
QTest::addRow("default - 0,-1,0,1") << Rect() << 0 << -1 << 0 << 1 << Rect(0, -1, 0, 2);
|
|
QTest::addRow("default - -1,-1,1,1") << Rect() << -1 << -1 << 1 << 1 << Rect(-1, -1, 2, 2);
|
|
|
|
QTest::addRow("2,3 4x5 - -1,0,1,0") << Rect(2, 3, 4, 5) << -1 << 0 << 1 << 0 << Rect(1, 3, 6, 5);
|
|
QTest::addRow("2,3 4x5 - 0,-1,0,1") << Rect(2, 3, 4, 5) << 0 << -1 << 0 << 1 << Rect(2, 2, 4, 7);
|
|
}
|
|
|
|
void TestRect::adjusted()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(int, x0);
|
|
QFETCH(int, y0);
|
|
QFETCH(int, x1);
|
|
QFETCH(int, y1);
|
|
|
|
QTEST(rect.adjusted(x0, y0, x1, y1), "expected");
|
|
}
|
|
|
|
void TestRect::grownBy_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QMargins>("margins");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("2,3 4x5 - 1,0,0,0") << Rect(2, 3, 4, 5) << QMargins(1, 0, 0, 0) << Rect(1, 3, 5, 5);
|
|
QTest::addRow("2,3 4x5 - 0,1,0,0") << Rect(2, 3, 4, 5) << QMargins(0, 1, 0, 0) << Rect(2, 2, 4, 6);
|
|
QTest::addRow("2,3 4x5 - 0,0,1,0") << Rect(2, 3, 4, 5) << QMargins(0, 0, 1, 0) << Rect(2, 3, 5, 5);
|
|
QTest::addRow("2,3 4x5 - 0,0,0,1") << Rect(2, 3, 4, 5) << QMargins(0, 0, 0, 1) << Rect(2, 3, 4, 6);
|
|
QTest::addRow("2,3 4x5 - 1,1,1,1") << Rect(2, 3, 4, 5) << QMargins(1, 1, 1, 1) << Rect(1, 2, 6, 7);
|
|
}
|
|
|
|
void TestRect::grownBy()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(QMargins, margins);
|
|
|
|
{
|
|
QTEST(rect.grownBy(margins), "expected");
|
|
QTEST(rect.marginsAdded(margins), "expected");
|
|
}
|
|
|
|
{
|
|
Rect tmp = rect;
|
|
tmp += margins;
|
|
QTEST(tmp, "expected");
|
|
}
|
|
}
|
|
|
|
void TestRect::shrunkBy_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect");
|
|
QTest::addColumn<QMargins>("margins");
|
|
QTest::addColumn<Rect>("expected");
|
|
|
|
QTest::addRow("2,3 4x5 - 1,0,0,0") << Rect(2, 3, 4, 5) << QMargins(1, 0, 0, 0) << Rect(3, 3, 3, 5);
|
|
QTest::addRow("2,3 4x5 - 0,1,0,0") << Rect(2, 3, 4, 5) << QMargins(0, 1, 0, 0) << Rect(2, 4, 4, 4);
|
|
QTest::addRow("2,3 4x5 - 0,0,1,0") << Rect(2, 3, 4, 5) << QMargins(0, 0, 1, 0) << Rect(2, 3, 3, 5);
|
|
QTest::addRow("2,3 4x5 - 0,0,0,1") << Rect(2, 3, 4, 5) << QMargins(0, 0, 0, 1) << Rect(2, 3, 4, 4);
|
|
QTest::addRow("2,3 4x5 - 1,1,1,1") << Rect(2, 3, 4, 5) << QMargins(1, 1, 1, 1) << Rect(3, 4, 2, 3);
|
|
}
|
|
|
|
void TestRect::shrunkBy()
|
|
{
|
|
QFETCH(Rect, rect);
|
|
QFETCH(QMargins, margins);
|
|
|
|
{
|
|
QTEST(rect.shrunkBy(margins), "expected");
|
|
QTEST(rect.marginsRemoved(margins), "expected");
|
|
}
|
|
|
|
{
|
|
Rect tmp = rect;
|
|
tmp -= margins;
|
|
QTEST(tmp, "expected");
|
|
}
|
|
}
|
|
|
|
void TestRect::united_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect1");
|
|
QTest::addColumn<Rect>("rect2");
|
|
QTest::addColumn<Rect>("result");
|
|
|
|
QTest::addRow("empty - empty") << Rect() << Rect() << Rect();
|
|
QTest::addRow("2,3 4x5 - empty") << Rect(2, 3, 4, 5) << Rect() << Rect(2, 3, 4, 5);
|
|
QTest::addRow("empty - 2,3 4x5") << Rect() << Rect(2, 3, 4, 5) << Rect(2, 3, 4, 5);
|
|
QTest::addRow("2,3 4x5 - 2,3 4x5") << Rect(2, 3, 4, 5) << Rect(2, 3, 4, 5) << Rect(2, 3, 4, 5);
|
|
|
|
QTest::addRow("1,0 1x5 - 5,0 1x5") << Rect(1, 0, 1, 5) << Rect(5, 0, 1, 5) << Rect(1, 0, 5, 5);
|
|
QTest::addRow("0,1 5x1 - 0,5 5x1") << Rect(0, 1, 5, 1) << Rect(0, 5, 5, 1) << Rect(0, 1, 5, 5);
|
|
|
|
QTest::addRow("2,3 4x5 - 10,10 0x0") << Rect(2, 3, 4, 5) << Rect(10, 10, 0, 0) << Rect(2, 3, 4, 5);
|
|
}
|
|
|
|
void TestRect::united()
|
|
{
|
|
QFETCH(Rect, rect1);
|
|
QFETCH(Rect, rect2);
|
|
|
|
{
|
|
QTEST(rect1.united(rect2), "result");
|
|
}
|
|
|
|
{
|
|
QTEST(rect1 | rect2, "result");
|
|
}
|
|
|
|
{
|
|
Rect tmp = rect1;
|
|
tmp |= rect2;
|
|
QTEST(tmp, "result");
|
|
}
|
|
}
|
|
|
|
void TestRect::intersects_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect1");
|
|
QTest::addColumn<Rect>("rect2");
|
|
QTest::addColumn<bool>("intersects");
|
|
|
|
QTest::addRow("empty - empty") << Rect() << Rect() << false;
|
|
QTest::addRow("2,3 4x5 - empty") << Rect(2, 3, 4, 5) << Rect() << false;
|
|
|
|
QTest::addRow("0,0 5x5 - 0,-5 5x5") << Rect(0, 0, 5, 5) << Rect(0, -5, 5, 5) << false;
|
|
QTest::addRow("0,0 5x5 - -5,0 5x5") << Rect(0, 0, 5, 5) << Rect(-5, 0, 5, 5) << false;
|
|
QTest::addRow("0,0 5x5 - -5,-5 5x5") << Rect(0, 0, 5, 5) << Rect(-5, -5, 5, 5) << false;
|
|
QTest::addRow("0,0 5x5 - 0,5 5x5") << Rect(0, 0, 5, 5) << Rect(0, 5, 5, 5) << false;
|
|
QTest::addRow("0,0 5x5 - 5,0 5x5") << Rect(0, 0, 5, 5) << Rect(5, 0, 5, 5) << false;
|
|
QTest::addRow("0,0 5x5 - 5,5 5x5") << Rect(0, 0, 5, 5) << Rect(5, 5, 5, 5) << false;
|
|
|
|
QTest::addRow("0,0 5x5 - 2,2 5x5") << Rect(0, 0, 5, 5) << Rect(2, 2, 5, 5) << true;
|
|
QTest::addRow("0,0 5x5 - 2,2 0x0") << Rect(0, 0, 5, 5) << Rect(2, 2, 0, 0) << false;
|
|
}
|
|
|
|
void TestRect::intersects()
|
|
{
|
|
QFETCH(Rect, rect1);
|
|
QFETCH(Rect, rect2);
|
|
|
|
QTEST(rect1.intersects(rect2), "intersects");
|
|
QTEST(rect2.intersects(rect1), "intersects");
|
|
}
|
|
|
|
void TestRect::intersected_data()
|
|
{
|
|
QTest::addColumn<Rect>("rect1");
|
|
QTest::addColumn<Rect>("rect2");
|
|
QTest::addColumn<Rect>("result");
|
|
|
|
QTest::addRow("empty - empty") << Rect() << Rect() << Rect();
|
|
QTest::addRow("2,3 4x5 - empty") << Rect(2, 3, 4, 5) << Rect() << Rect();
|
|
|
|
QTest::addRow("0,0 5x5 - 0,-5 5x5") << Rect(0, 0, 5, 5) << Rect(0, -5, 5, 5) << Rect();
|
|
QTest::addRow("0,0 5x5 - -5,0 5x5") << Rect(0, 0, 5, 5) << Rect(-5, 0, 5, 5) << Rect();
|
|
QTest::addRow("0,0 5x5 - -5,-5 5x5") << Rect(0, 0, 5, 5) << Rect(-5, -5, 5, 5) << Rect();
|
|
QTest::addRow("0,0 5x5 - 0,5 5x5") << Rect(0, 0, 5, 5) << Rect(0, 5, 5, 5) << Rect();
|
|
QTest::addRow("0,0 5x5 - 5,0 5x5") << Rect(0, 0, 5, 5) << Rect(5, 0, 5, 5) << Rect();
|
|
QTest::addRow("0,0 5x5 - 5,5 5x5") << Rect(0, 0, 5, 5) << Rect(5, 5, 5, 5) << Rect();
|
|
|
|
QTest::addRow("0,0 5x5 - 2,2 5x5") << Rect(0, 0, 5, 5) << Rect(2, 2, 5, 5) << Rect(2, 2, 3, 3);
|
|
QTest::addRow("0,0 5x5 - 2,2 0x0") << Rect(0, 0, 5, 5) << Rect(2, 2, 0, 0) << Rect();
|
|
}
|
|
|
|
void TestRect::intersected()
|
|
{
|
|
QFETCH(Rect, rect1);
|
|
QFETCH(Rect, rect2);
|
|
|
|
{
|
|
QTEST(rect1.intersected(rect2), "result");
|
|
QTEST(rect2.intersected(rect1), "result");
|
|
}
|
|
|
|
{
|
|
QTEST(rect1 & rect2, "result");
|
|
QTEST(rect2 & rect1, "result");
|
|
}
|
|
|
|
{
|
|
Rect tmp = rect1;
|
|
tmp &= rect2;
|
|
QTEST(tmp, "result");
|
|
}
|
|
|
|
{
|
|
Rect tmp = rect2;
|
|
tmp &= rect1;
|
|
QTEST(tmp, "result");
|
|
}
|
|
}
|
|
|
|
void TestRect::implicitConversions()
|
|
{
|
|
const auto qrectFunction = [](const QRect &rect) { };
|
|
qrectFunction(Rect());
|
|
|
|
const auto rectFunction = [](const Rect &rect) { };
|
|
rectFunction(QRect());
|
|
|
|
{
|
|
const Rect rect;
|
|
const QRect qrect = rect;
|
|
QCOMPARE(qrect, QRect());
|
|
QVERIFY(qrect == rect);
|
|
QVERIFY(rect == qrect);
|
|
}
|
|
|
|
{
|
|
const Rect rect(1, 2, 3, 4);
|
|
const QRect qrect = rect;
|
|
QCOMPARE(qrect, QRect(1, 2, 3, 4));
|
|
QVERIFY(qrect == rect);
|
|
QVERIFY(rect == qrect);
|
|
}
|
|
|
|
{
|
|
Rect rect(0, 0, 1, 1);
|
|
rect |= QRect(1, 1, 1, 1);
|
|
QCOMPARE(rect, Rect(0, 0, 2, 2));
|
|
}
|
|
|
|
{
|
|
QRect qrect(0, 0, 1, 1);
|
|
qrect |= Rect(1, 1, 1, 1);
|
|
QCOMPARE(qrect, QRect(0, 0, 2, 2));
|
|
}
|
|
|
|
{
|
|
Rect rect(0, 0, 3, 3);
|
|
rect &= QRect(1, 1, 3, 3);
|
|
QCOMPARE(rect, Rect(1, 1, 2, 2));
|
|
}
|
|
|
|
{
|
|
QRect qrect(0, 0, 3, 3);
|
|
qrect &= Rect(1, 1, 3, 3);
|
|
QCOMPARE(qrect, QRect(1, 1, 2, 2));
|
|
}
|
|
}
|
|
|
|
QTEST_MAIN(TestRect)
|
|
|
|
#include "test_rect.moc"
|