summaryrefslogtreecommitdiff
path: root/tests/auto/qgeorectangle/tst_qgeorectangle.cpp
diff options
context:
space:
mode:
authorIvan Solovev <ivan.solovev@qt.io>2021-10-21 17:27:08 +0200
committerIvan Solovev <ivan.solovev@qt.io>2021-11-02 09:46:33 +0200
commit6db775f6d9d72cf8ee9d66333b8424e74be1e352 (patch)
tree0a293756b61619a91970d9368a0449b7bf922728 /tests/auto/qgeorectangle/tst_qgeorectangle.cpp
parent5a1f44c3d41febca8480c077bd4c34e5a3332cdc (diff)
downloadqtlocation-6.2.tar.gz
Remove QtPositioning module from qtlocation.git6.2.46.2.36.2.26.2
Turns out that our CI does not support repos without any tests. This is treated like an error and leads to integration failure. This patch fixes it by disabling tests in coin/module_config.yaml. This config should be fixed when QtLocation tests are enabled Task-number: QTBUG-97084 Change-Id: Ib06e865fe2836806bbbee34345f06b471dd48660 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 23f32792ad53e23bbafbff6d7667f0bb0f69fc53)
Diffstat (limited to 'tests/auto/qgeorectangle/tst_qgeorectangle.cpp')
-rw-r--r--tests/auto/qgeorectangle/tst_qgeorectangle.cpp2414
1 files changed, 0 insertions, 2414 deletions
diff --git a/tests/auto/qgeorectangle/tst_qgeorectangle.cpp b/tests/auto/qgeorectangle/tst_qgeorectangle.cpp
deleted file mode 100644
index 696ac6b1..00000000
--- a/tests/auto/qgeorectangle/tst_qgeorectangle.cpp
+++ /dev/null
@@ -1,2414 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//TESTED_COMPONENT=src/location
-
-#include <QtTest/QtTest>
-#include <QtPositioning/QGeoCoordinate>
-#include <QtPositioning/QGeoCircle>
-#include <QtPositioning/QGeoRectangle>
-
-QT_USE_NAMESPACE
-
-class tst_QGeoRectangle : public QObject
-{
- Q_OBJECT
-
-private slots:
- void default_constructor();
- void center_constructor();
- void corner_constructor();
- void list_constructor();
- void copy_constructor();
- void assignment();
- void destructor();
-
- void equality();
- void equality_data();
-
- void isValid();
- void isValid_data();
-
- void isEmpty();
- void isEmpty_data();
-
- void corners();
- void corners_data();
-
- void setCorners();
-
- void width();
- void width_data();
-
- void height();
- void height_data();
-
- void center();
- void center_data();
-
- void boundingGeoRectangle();
- void boundingGeoRectangle_data();
-
- void containsCoord();
- void containsCoord_data();
-
- void containsBoxAndIntersects();
- void containsBoxAndIntersects_data();
-
- void translate();
- void translate_data();
-
- void unite();
- void unite_data();
-
- void extendRectangle();
- void extendRectangle_data();
-
- void areaComparison();
- void areaComparison_data();
-
- void circleComparison();
- void circleComparison_data();
-
- void hashing();
-};
-
-void tst_QGeoRectangle::default_constructor()
-{
- QGeoRectangle box;
- QCOMPARE(box.topLeft().isValid(), false);
- QCOMPARE(box.bottomRight().isValid(), false);
-}
-
-void tst_QGeoRectangle::center_constructor()
-{
- QGeoRectangle b1 = QGeoRectangle(QGeoCoordinate(5.0, 5.0), 10.0, 10.0);
-
- QCOMPARE(b1.topLeft(), QGeoCoordinate(10.0, 0.0));
- QCOMPARE(b1.bottomRight(), QGeoCoordinate(0.0, 10.0));
-}
-
-void tst_QGeoRectangle::corner_constructor()
-{
- QGeoRectangle b1 = QGeoRectangle(QGeoCoordinate(10.0, 0.0),
- QGeoCoordinate(0.0, 10.0));
-
- QCOMPARE(b1.topLeft(), QGeoCoordinate(10.0, 0.0));
- QCOMPARE(b1.bottomRight(), QGeoCoordinate(0.0, 10.0));
-}
-
-void tst_QGeoRectangle::list_constructor()
-{
- QList<QGeoCoordinate> coordinates;
- QGeoRectangle b1 = QGeoRectangle(coordinates);
- QCOMPARE(b1.isValid(), false);
-
- coordinates << QGeoCoordinate(10.0, 0.0);
- b1 = QGeoRectangle(coordinates);
- QCOMPARE(b1.isValid(), true);
- QCOMPARE(b1.isEmpty(), true);
-
- coordinates << QGeoCoordinate(0.0, 10.0) << QGeoCoordinate(0.0, 5.0);
- b1 = QGeoRectangle(coordinates);
- QCOMPARE(b1.topLeft(), QGeoCoordinate(10.0,0.0));
- QCOMPARE(b1.bottomRight(), QGeoCoordinate(0.0, 10.0));
-}
-
-void tst_QGeoRectangle::copy_constructor()
-{
- QGeoRectangle b1 = QGeoRectangle(QGeoCoordinate(10.0, 0.0),
- QGeoCoordinate(0.0, 10.0));
- QGeoRectangle b2 = QGeoRectangle(b1);
-
- QCOMPARE(b2.topLeft(), QGeoCoordinate(10.0, 0.0));
- QCOMPARE(b2.bottomRight(), QGeoCoordinate(0.0, 10.0));
-
- b2.setTopLeft(QGeoCoordinate(30.0, 0.0));
- b2.setBottomRight(QGeoCoordinate(0.0, 30.0));
- QCOMPARE(b1.topLeft(), QGeoCoordinate(10.0, 0.0));
- QCOMPARE(b1.bottomRight(), QGeoCoordinate(0.0, 10.0));
-
- QGeoShape area;
- QGeoRectangle areaBox(area);
- QVERIFY(!areaBox.isValid());
- QVERIFY(areaBox.isEmpty());
-
- QGeoCircle circle;
- QGeoRectangle circleBox(circle);
- QVERIFY(!circleBox.isValid());
- QVERIFY(circleBox.isEmpty());
-}
-
-void tst_QGeoRectangle::destructor()
-{
- QGeoRectangle *box = new QGeoRectangle();
- delete box;
- // checking for a crash
-}
-
-void tst_QGeoRectangle::assignment()
-{
- QGeoRectangle b1 = QGeoRectangle(QGeoCoordinate(10.0, 0.0),
- QGeoCoordinate(0.0, 10.0));
- QGeoRectangle b2 = QGeoRectangle(QGeoCoordinate(20.0, 0.0),
- QGeoCoordinate(0.0, 20.0));
-
- QVERIFY(b1 != b2);
-
- b2 = b1;
- QCOMPARE(b2.topLeft(), QGeoCoordinate(10.0, 0.0));
- QCOMPARE(b2.bottomRight(), QGeoCoordinate(0.0, 10.0));
- QCOMPARE(b1, b2);
-
- b2.setTopLeft(QGeoCoordinate(30.0, 0.0));
- b2.setBottomRight(QGeoCoordinate(0.0, 30.0));
- QCOMPARE(b1.topLeft(), QGeoCoordinate(10.0, 0.0));
- QCOMPARE(b1.bottomRight(), QGeoCoordinate(0.0, 10.0));
-
- // Assign b1 to an area
- QGeoShape area = b1;
- QCOMPARE(area.type(), b1.type());
- QVERIFY(area == b1);
-
- // Assign the area back to a bounding box
- QGeoRectangle ba = area;
- QCOMPARE(ba.topLeft(), b1.topLeft());
- QCOMPARE(ba.bottomRight(), b1.bottomRight());
-
- // Check that the copy is not modified when modifying the original.
- b1.setTopLeft(QGeoCoordinate(80, 30));
- QVERIFY(ba.topLeft() != b1.topLeft());
- QVERIFY(ba != b1);
-}
-
-void tst_QGeoRectangle::equality()
-{
- QFETCH(QGeoRectangle, box1);
- QFETCH(QGeoRectangle, box2);
- QFETCH(QGeoShape, area1);
- QFETCH(QGeoShape, area2);
- QFETCH(bool, equal);
-
- // compare boxes
- QCOMPARE((box1 == box2), equal);
- QCOMPARE((box1 != box2), !equal);
-
- // compare areas
- QCOMPARE((area1 == area2), equal);
- QCOMPARE((area1 != area2), !equal);
-
- // compare area to box
- QCOMPARE((area1 == box2), equal);
- QCOMPARE((area1 != box2), !equal);
-
- // compare box to area
- QCOMPARE((box1 == area2), equal);
- QCOMPARE((box1 != area2), !equal);
-}
-
-void tst_QGeoRectangle::equality_data()
-{
- QTest::addColumn<QGeoRectangle>("box1");
- QTest::addColumn<QGeoRectangle>("box2");
- QTest::addColumn<QGeoShape>("area1");
- QTest::addColumn<QGeoShape>("area2");
- QTest::addColumn<bool>("equal");
-
- QGeoCoordinate c1(10, 5);
- QGeoCoordinate c2(5, 10);
- QGeoCoordinate c3(20, 15);
- QGeoCoordinate c4(15, 20);
-
- QGeoRectangle b1(c1, c2);
- QGeoRectangle b2(c3, c4);
- QGeoRectangle b3(c3, c2);
- QGeoRectangle b4(c1, c3);
- QGeoRectangle b5(c1, c2);
-
- QGeoShape a1(b1);
- QGeoShape a2(b2);
- QGeoShape a3(b3);
- QGeoShape a4(b4);
- QGeoShape a5(b5);
-
- QTest::newRow("all unequal")
- << b1 << b2 << a1 << a2 << false;
- QTest::newRow("top left unequal")
- << b1 << b3 << a1 << a3 << false;
- QTest::newRow("bottom right unequal")
- << b1 << b4 << a1 << a4 << false;
- QTest::newRow("equal")
- << b1 << b5 << a1 << a5 << true;
-}
-
-void tst_QGeoRectangle::isValid()
-{
- QFETCH(QGeoRectangle, input);
- QFETCH(bool, valid);
-
- QCOMPARE(input.isValid(), valid);
-
- QGeoShape area = input;
- QCOMPARE(area.isValid(), valid);
-}
-
-void tst_QGeoRectangle::isValid_data()
-{
- QTest::addColumn<QGeoRectangle>("input");
- QTest::addColumn<bool>("valid");
-
- QGeoCoordinate c0;
- QGeoCoordinate c1(10, 5);
- QGeoCoordinate c2(5, 10);
-
- QTest::newRow("both corners invalid")
- << QGeoRectangle(c0, c0) << false;
- QTest::newRow("top left corner invalid")
- << QGeoRectangle(c0, c2) << false;
- QTest::newRow("bottom right corner invalid")
- << QGeoRectangle(c1, c0) << false;
- QTest::newRow("height in wrong order")
- << QGeoRectangle(c2, c1) << false;
- QTest::newRow("both corners valid")
- << QGeoRectangle(c1, c2) << true;
-}
-
-void tst_QGeoRectangle::isEmpty()
-{
- QFETCH(QGeoRectangle, input);
- QFETCH(bool, empty);
-
- QCOMPARE(input.isEmpty(), empty);
-
- QGeoShape area = input;
- QCOMPARE(area.isEmpty(), empty);
-}
-
-void tst_QGeoRectangle::isEmpty_data()
-{
- QTest::addColumn<QGeoRectangle>("input");
- QTest::addColumn<bool>("empty");
-
- QGeoCoordinate c0;
- QGeoCoordinate c1(10, 5);
- QGeoCoordinate c2(5, 10);
- QGeoCoordinate c3(10, 10);
-
- QTest::newRow("both corners invalid")
- << QGeoRectangle(c0, c0) << true;
- QTest::newRow("top left corner invalid")
- << QGeoRectangle(c0, c2) << true;
- QTest::newRow("bottom right corner invalid")
- << QGeoRectangle(c1, c0) << true;
- QTest::newRow("zero width")
- << QGeoRectangle(c1, c3) << true;
- QTest::newRow("zero height")
- << QGeoRectangle(c3, c2) << true;
- QTest::newRow("zero width and height")
- << QGeoRectangle(c1, c1) << true;
- QTest::newRow("non-zero width and height")
- << QGeoRectangle(c1, c2) << false;
-}
-
-void tst_QGeoRectangle::corners()
-{
- QFETCH(QGeoRectangle, box);
- QFETCH(QGeoCoordinate, topLeft);
- QFETCH(QGeoCoordinate, topRight);
- QFETCH(QGeoCoordinate, bottomLeft);
- QFETCH(QGeoCoordinate, bottomRight);
-
- QCOMPARE(box.topLeft(), topLeft);
- QCOMPARE(box.topRight(), topRight);
- QCOMPARE(box.bottomLeft(), bottomLeft);
- QCOMPARE(box.bottomRight(), bottomRight);
-}
-
-void tst_QGeoRectangle::corners_data()
-{
- QTest::addColumn<QGeoRectangle>("box");
- QTest::addColumn<QGeoCoordinate>("topLeft");
- QTest::addColumn<QGeoCoordinate>("topRight");
- QTest::addColumn<QGeoCoordinate>("bottomLeft");
- QTest::addColumn<QGeoCoordinate>("bottomRight");
-
- QGeoCoordinate c0;
- QGeoCoordinate tl(10, 5);
- QGeoCoordinate br(5, 10);
- QGeoCoordinate tr(10, 10);
- QGeoCoordinate bl(5, 5);
-
- QTest::newRow("both invalid")
- << QGeoRectangle(c0, c0)
- << c0
- << c0
- << c0
- << c0;
- QTest::newRow("top left invalid")
- << QGeoRectangle(c0, br)
- << c0
- << c0
- << c0
- << br;
- QTest::newRow("bottom right invalid")
- << QGeoRectangle(tl, c0)
- << tl
- << c0
- << c0
- << c0;
- QTest::newRow("both valid")
- << QGeoRectangle(tl, br)
- << tl
- << tr
- << bl
- << br;
-}
-
-void tst_QGeoRectangle::setCorners()
-{
- QGeoRectangle box(QGeoCoordinate(10.0, 0.0),
- QGeoCoordinate(0.0, 10.0));
-
- box.setTopLeft(QGeoCoordinate(20.0, -10.0));
-
- QCOMPARE(box.topLeft(), QGeoCoordinate(20.0, -10.0));
- QCOMPARE(box.topRight(), QGeoCoordinate(20.0, 10.0));
- QCOMPARE(box.bottomLeft(), QGeoCoordinate(0.0, -10.0));
- QCOMPARE(box.bottomRight(), QGeoCoordinate(0.0, 10.0));
-
- box.setTopRight(QGeoCoordinate(30.0, 20.0));
-
- QCOMPARE(box.topLeft(), QGeoCoordinate(30.0, -10.0));
- QCOMPARE(box.topRight(), QGeoCoordinate(30.0, 20.0));
- QCOMPARE(box.bottomLeft(), QGeoCoordinate(0.0, -10.0));
- QCOMPARE(box.bottomRight(), QGeoCoordinate(0.0, 20.0));
-
- box.setBottomRight(QGeoCoordinate(-10.0, 30.0));
-
- QCOMPARE(box.topLeft(), QGeoCoordinate(30.0, -10.0));
- QCOMPARE(box.topRight(), QGeoCoordinate(30.0, 30.0));
- QCOMPARE(box.bottomLeft(), QGeoCoordinate(-10.0, -10.0));
- QCOMPARE(box.bottomRight(), QGeoCoordinate(-10.0, 30.0));
-
- box.setBottomLeft(QGeoCoordinate(-20.0, -20.0));
-
- QCOMPARE(box.topLeft(), QGeoCoordinate(30.0, -20.0));
- QCOMPARE(box.topRight(), QGeoCoordinate(30.0, 30.0));
- QCOMPARE(box.bottomLeft(), QGeoCoordinate(-20.0, -20.0));
- QCOMPARE(box.bottomRight(), QGeoCoordinate(-20.0, 30.0));
-
-
-}
-
-void tst_QGeoRectangle::width()
-{
- QFETCH(QGeoRectangle, box);
- QFETCH(double, oldWidth);
- QFETCH(double, newWidth);
- QFETCH(QGeoRectangle, newBox);
-
- if (qIsNaN(oldWidth))
- QVERIFY(qIsNaN(box.width()));
- else
- QCOMPARE(box.width(), oldWidth);
-
- box.setWidth(newWidth);
-
- QCOMPARE(box, newBox);
-}
-
-void tst_QGeoRectangle::width_data()
-{
- QTest::addColumn<QGeoRectangle>("box");
- QTest::addColumn<double>("oldWidth");
- QTest::addColumn<double>("newWidth");
- QTest::addColumn<QGeoRectangle>("newBox");
-
- QTest::newRow("invalid box")
- << QGeoRectangle()
- << qQNaN()
- << 100.0
- << QGeoRectangle();
-
- QTest::newRow("0 width -> negative width")
- << QGeoRectangle(QGeoCoordinate(10.0, 90.0),
- QGeoCoordinate(5.0, 90.0))
- << 0.0
- << -1.0
- << QGeoRectangle(QGeoCoordinate(10.0, 90.0),
- QGeoCoordinate(5.0, 90.0));
-
- QTest::newRow("0 width -> 0 width")
- << QGeoRectangle(QGeoCoordinate(10.0, 90.0),
- QGeoCoordinate(5.0, 90.0))
- << 0.0
- << 0.0
- << QGeoRectangle(QGeoCoordinate(10.0, 90.0),
- QGeoCoordinate(5.0, 90.0));
-
- QTest::newRow("0 width -> non wrapping width")
- << QGeoRectangle(QGeoCoordinate(10.0, 90.0),
- QGeoCoordinate(5.0, 90.0))
- << 0.0
- << 10.0
- << QGeoRectangle(QGeoCoordinate(10.0, 85.0),
- QGeoCoordinate(5.0, 95.0));
-
- QTest::newRow("0 width -> wrapping width positive")
- << QGeoRectangle(QGeoCoordinate(10.0, 90.0),
- QGeoCoordinate(5.0, 90.0))
- << 0.0
- << 190.0
- << QGeoRectangle(QGeoCoordinate(10.0, -5.0),
- QGeoCoordinate(5.0, -175.0));
-
- QTest::newRow("0 width -> wrapping width negative")
- << QGeoRectangle(QGeoCoordinate(10.0, -90.0),
- QGeoCoordinate(5.0, -90.0))
- << 0.0
- << 190.0
- << QGeoRectangle(QGeoCoordinate(10.0, 175.0),
- QGeoCoordinate(5.0, 5.0));
-
- QTest::newRow("0 width -> 360 width")
- << QGeoRectangle(QGeoCoordinate(10.0, 90.0),
- QGeoCoordinate(5.0, 90.0))
- << 0.0
- << 360.0
- << QGeoRectangle(QGeoCoordinate(10.0, -180.0),
- QGeoCoordinate(5.0, 180.0));
-
- QTest::newRow("0 width -> 360+ width")
- << QGeoRectangle(QGeoCoordinate(10.0, 90.0),
- QGeoCoordinate(5.0, 90.0))
- << 0.0
- << 370.0
- << QGeoRectangle(QGeoCoordinate(10.0, -180.0),
- QGeoCoordinate(5.0, 180.0));
-
- QTest::newRow("non wrapping width -> negative width")
- << QGeoRectangle(QGeoCoordinate(10.0, 85.0),
- QGeoCoordinate(5.0, 95.0))
- << 10.0
- << -1.0
- << QGeoRectangle(QGeoCoordinate(10.0, 85.0),
- QGeoCoordinate(5.0, 95.0));
-
- QTest::newRow("non wrapping width -> 0 width")
- << QGeoRectangle(QGeoCoordinate(10.0, 85.0),
- QGeoCoordinate(5.0, 95.0))
- << 10.0
- << 0.0
- << QGeoRectangle(QGeoCoordinate(10.0, 90.0),
- QGeoCoordinate(5.0, 90.0));
-
- QTest::newRow("non wrapping width -> non wrapping width")
- << QGeoRectangle(QGeoCoordinate(10.0, 85.0),
- QGeoCoordinate(5.0, 95.0))
- << 10.0
- << 20.0
- << QGeoRectangle(QGeoCoordinate(10.0, 80.0),
- QGeoCoordinate(5.0, 100.0));
-
- QTest::newRow("non wrapping width -> wrapping width positive")
- << QGeoRectangle(QGeoCoordinate(10.0, 85.0),
- QGeoCoordinate(5.0, 95.0))
- << 10.0
- << 190.0
- << QGeoRectangle(QGeoCoordinate(10.0, -5.0),
- QGeoCoordinate(5.0, -175.0));
-
- QTest::newRow("non wrapping width -> wrapping width negative")
- << QGeoRectangle(QGeoCoordinate(10.0, -95.0),
- QGeoCoordinate(5.0, -85.0))
- << 10.0
- << 190.0
- << QGeoRectangle(QGeoCoordinate(10.0, 175.0),
- QGeoCoordinate(5.0, 5.0));
-
- QTest::newRow("non wrapping width -> 360 width")
- << QGeoRectangle(QGeoCoordinate(10.0, 85.0),
- QGeoCoordinate(5.0, 95.0))
- << 10.0
- << 360.0
- << QGeoRectangle(QGeoCoordinate(10.0, -180.0),
- QGeoCoordinate(5.0, 180.0));
-
- QTest::newRow("non wrapping width width -> 360+ width")
- << QGeoRectangle(QGeoCoordinate(10.0, 85.0),
- QGeoCoordinate(5.0, 95.0))
- << 10.0
- << 370.0
- << QGeoRectangle(QGeoCoordinate(10.0, -180.0),
- QGeoCoordinate(5.0, 180.0));
-
- QTest::newRow("wrapping width -> negative width")
- << QGeoRectangle(QGeoCoordinate(10.0, 175.0),
- QGeoCoordinate(5.0, -85.0))
- << 100.0
- << -1.0
- << QGeoRectangle(QGeoCoordinate(10.0, 175.0),
- QGeoCoordinate(5.0, -85.0));
-
- QTest::newRow("wrapping width -> 0 width")
- << QGeoRectangle(QGeoCoordinate(10.0, 175.0),
- QGeoCoordinate(5.0, -85.0))
- << 100.0
- << 0.0
- << QGeoRectangle(QGeoCoordinate(10.0, -135.0),
- QGeoCoordinate(5.0, -135.0));
-
- QTest::newRow("wrapping width -> non wrapping width")
- << QGeoRectangle(QGeoCoordinate(10.0, 175.0),
- QGeoCoordinate(5.0, -85.0))
- << 100.0
- << 80.0
- << QGeoRectangle(QGeoCoordinate(10.0, -175.0),
- QGeoCoordinate(5.0, -95.0));
-
- QTest::newRow("wrapping width -> wrapping width")
- << QGeoRectangle(QGeoCoordinate(10.0, 175.0),
- QGeoCoordinate(5.0, -85.0))
- << 100.0
- << 120.0
- << QGeoRectangle(QGeoCoordinate(10.0, 165.0),
- QGeoCoordinate(5.0, -75.0));
-
- QTest::newRow("wrapping width -> 360 width")
- << QGeoRectangle(QGeoCoordinate(10.0, 175.0),
- QGeoCoordinate(5.0, -85.0))
- << 100.0
- << 360.0
- << QGeoRectangle(QGeoCoordinate(10.0, -180.0),
- QGeoCoordinate(5.0, 180.0));
-
- QTest::newRow("wrapping width width -> 360+ width")
- << QGeoRectangle(QGeoCoordinate(10.0, 175.0),
- QGeoCoordinate(5.0, -85.0))
- << 100.0
- << 370.0
- << QGeoRectangle(QGeoCoordinate(10.0, -180.0),
- QGeoCoordinate(5.0, 180.0));
-}
-
-void tst_QGeoRectangle::height()
-{
- QFETCH(QGeoRectangle, box);
- QFETCH(double, oldHeight);
- QFETCH(double, newHeight);
- QFETCH(QGeoRectangle, newBox);
-
- if (qIsNaN(oldHeight))
- QVERIFY(qIsNaN(box.height()));
- else
- QCOMPARE(box.height(), oldHeight);
-
- box.setHeight(newHeight);
- QCOMPARE(box, newBox);
-}
-
-void tst_QGeoRectangle::height_data()
-{
- QTest::addColumn<QGeoRectangle>("box");
- QTest::addColumn<double>("oldHeight");
- QTest::addColumn<double>("newHeight");
- QTest::addColumn<QGeoRectangle>("newBox");
-
- QTest::newRow("invalid box")
- << QGeoRectangle()
- << qQNaN()
- << 100.0
- << QGeoRectangle();
-
- QTest::newRow("0 height -> negative height")
- << QGeoRectangle(QGeoCoordinate(10.0, 5.0),
- QGeoCoordinate(10.0, 10.0))
- << 0.0
- << -1.0
- << QGeoRectangle(QGeoCoordinate(10.0, 5.0),
- QGeoCoordinate(10.0, 10.0));
-
- QTest::newRow("0 height -> 0 height")
- << QGeoRectangle(QGeoCoordinate(10.0, 5.0),
- QGeoCoordinate(10.0, 10.0))
- << 0.0
- << 0.0
- << QGeoRectangle(QGeoCoordinate(10.0, 5.0),
- QGeoCoordinate(10.0, 10.0));
-
- QTest::newRow("0 height -> non zero height")
- << QGeoRectangle(QGeoCoordinate(10.0, 5.0),
- QGeoCoordinate(10.0, 10.0))
- << 0.0
- << 20.0
- << QGeoRectangle(QGeoCoordinate(20.0, 5.0),
- QGeoCoordinate(0.0, 10.0));
-
- QTest::newRow("0 height -> squash top")
- << QGeoRectangle(QGeoCoordinate(70.0, 30.0),
- QGeoCoordinate(70.0, 70.0))
- << 0.0
- << 60.0
- << QGeoRectangle(QGeoCoordinate(90.0, 30.0),
- QGeoCoordinate(50.0, 70.0));
-
- QTest::newRow("0 height -> squash bottom")
- << QGeoRectangle(QGeoCoordinate(-70.0, 30.0),
- QGeoCoordinate(-70.0, 70.0))
- << 0.0
- << 60.0
- << QGeoRectangle(QGeoCoordinate(-50.0, 30.0),
- QGeoCoordinate(-90.0, 70.0));
-
- QTest::newRow("0 height -> 180")
- << QGeoRectangle(QGeoCoordinate(0.0, 5.0),
- QGeoCoordinate(0.0, 10.0))
- << 0.0
- << 180.0
- << QGeoRectangle(QGeoCoordinate(90.0, 5.0),
- QGeoCoordinate(-90.0, 10.0));
-
- QTest::newRow("0 height -> 180 squash top")
- << QGeoRectangle(QGeoCoordinate(20.0, 5.0),
- QGeoCoordinate(20.0, 10.0))
- << 0.0
- << 180.0
- << QGeoRectangle(QGeoCoordinate(90.0, 5.0),
- QGeoCoordinate(-50.0, 10.0));
-
- QTest::newRow("0 height -> 180 squash bottom")
- << QGeoRectangle(QGeoCoordinate(-20.0, 5.0),
- QGeoCoordinate(-20.0, 10.0))
- << 0.0
- << 180.0
- << QGeoRectangle(QGeoCoordinate(50.0, 5.0),
- QGeoCoordinate(-90.0, 10.0));
-
- QTest::newRow("0 height -> 180+")
- << QGeoRectangle(QGeoCoordinate(0.0, 5.0),
- QGeoCoordinate(0.0, 10.0))
- << 0.0
- << 190.0
- << QGeoRectangle(QGeoCoordinate(90.0, 5.0),
- QGeoCoordinate(-90.0, 10.0));
-
- QTest::newRow("0 height -> 180+ squash top")
- << QGeoRectangle(QGeoCoordinate(20.0, 5.0),
- QGeoCoordinate(20.0, 10.0))
- << 0.0
- << 190.0
- << QGeoRectangle(QGeoCoordinate(90.0, 5.0),
- QGeoCoordinate(-50.0, 10.0));
-
- QTest::newRow("0 height -> 180+ squash bottom")
- << QGeoRectangle(QGeoCoordinate(-20.0, 5.0),
- QGeoCoordinate(-20.0, 10.0))
- << 0.0
- << 190.0
- << QGeoRectangle(QGeoCoordinate(50.0, 5.0),
- QGeoCoordinate(-90.0, 10.0));
-
- QTest::newRow("non zero height -> negative height")
- << QGeoRectangle(QGeoCoordinate(70.0, 30.0),
- QGeoCoordinate(30.0, 70.0))
- << 40.0
- << -1.0
- << QGeoRectangle(QGeoCoordinate(70.0, 30.0),
- QGeoCoordinate(30.0, 70.0));
-
- QTest::newRow("non zero height -> 0 height")
- << QGeoRectangle(QGeoCoordinate(70.0, 30.0),
- QGeoCoordinate(30.0, 70.0))
- << 40.0
- << 0.0
- << QGeoRectangle(QGeoCoordinate(50.0, 30.0),
- QGeoCoordinate(50.0, 70.0));
-
- QTest::newRow("non zero height -> non zero height")
- << QGeoRectangle(QGeoCoordinate(70.0, 30.0),
- QGeoCoordinate(30.0, 70.0))
- << 40.0
- << 20.0
- << QGeoRectangle(QGeoCoordinate(60.0, 30.0),
- QGeoCoordinate(40.0, 70.0));
-
- QTest::newRow("non zero height -> squash top")
- << QGeoRectangle(QGeoCoordinate(70.0, 30.0),
- QGeoCoordinate(30.0, 70.0))
- << 40.0
- << 100.0
- << QGeoRectangle(QGeoCoordinate(90.0, 30.0),
- QGeoCoordinate(10.0, 70.0));
-
- QTest::newRow("non zero height -> squash bottom")
- << QGeoRectangle(QGeoCoordinate(-30.0, 30.0),
- QGeoCoordinate(-70.0, 70.0))
- << 40.0
- << 100.0
- << QGeoRectangle(QGeoCoordinate(-10.0, 30.0),
- QGeoCoordinate(-90.0, 70.0));
-
- QTest::newRow("non zero height -> 180")
- << QGeoRectangle(QGeoCoordinate(20.0, 30.0),
- QGeoCoordinate(-20.0, 70.0))
- << 40.0
- << 180.0
- << QGeoRectangle(QGeoCoordinate(90.0, 30.0),
- QGeoCoordinate(-90.0, 70.0));
-
- QTest::newRow("non zero height -> 180 squash top")
- << QGeoRectangle(QGeoCoordinate(70.0, 30.0),
- QGeoCoordinate(30.0, 70.0))
- << 40.0
- << 180.0
- << QGeoRectangle(QGeoCoordinate(90.0, 30.0),
- QGeoCoordinate(10.0, 70.0));
-
- QTest::newRow("non zero height -> 180 squash bottom")
- << QGeoRectangle(QGeoCoordinate(-30.0, 30.0),
- QGeoCoordinate(-70.0, 70.0))
- << 40.0
- << 180.0
- << QGeoRectangle(QGeoCoordinate(-10.0, 30.0),
- QGeoCoordinate(-90.0, 70.0));
-
- QTest::newRow("non zero height -> 180+")
- << QGeoRectangle(QGeoCoordinate(20.0, 30.0),
- QGeoCoordinate(-20.0, 70.0))
- << 40.0
- << 190.0
- << QGeoRectangle(QGeoCoordinate(90.0, 30.0),
- QGeoCoordinate(-90.0, 70.0));
-
- QTest::newRow("non zero height -> 180+ squash top")
- << QGeoRectangle(QGeoCoordinate(70.0, 30.0),
- QGeoCoordinate(30.0, 70.0))
- << 40.0
- << 190.0
- << QGeoRectangle(QGeoCoordinate(90.0, 30.0),
- QGeoCoordinate(10.0, 70.0));
-
- QTest::newRow("non zero height -> 180+ squash bottom")
- << QGeoRectangle(QGeoCoordinate(-30.0, 30.0),
- QGeoCoordinate(-70.0, 70.0))
- << 40.0
- << 190.0
- << QGeoRectangle(QGeoCoordinate(-10.0, 30.0),
- QGeoCoordinate(-90.0, 70.0));
-}
-
-void tst_QGeoRectangle::center()
-{
- QFETCH(QGeoRectangle, box);
- QFETCH(QGeoCoordinate, oldCenter);
- QFETCH(QGeoCoordinate, newCenter);
- QFETCH(QGeoRectangle, newBox);
-
- QGeoShape shape = box;
- QCOMPARE(box.center(), oldCenter);
- QCOMPARE(shape.center(), oldCenter);
- box.setCenter(newCenter);
- QCOMPARE(box, newBox);
-}
-
-void tst_QGeoRectangle::center_data()
-{
- QTest::addColumn<QGeoRectangle>("box");
- QTest::addColumn<QGeoCoordinate>("oldCenter");
- QTest::addColumn<QGeoCoordinate>("newCenter");
- QTest::addColumn<QGeoRectangle>("newBox");
-
- QTest::newRow("invalid")
- << QGeoRectangle()
- << QGeoCoordinate()
- << QGeoCoordinate(0.0, 0.0)
- << QGeoRectangle(QGeoCoordinate(0.0, 0.0), 0.0, 0.0);
-
- QTest::newRow("zero width")
- << QGeoRectangle(QGeoCoordinate(10.0, 5.0),
- QGeoCoordinate(5.0, 5.0))
- << QGeoCoordinate(7.5, 5.0)
- << QGeoCoordinate(20.0, 20.0)
- << QGeoRectangle(QGeoCoordinate(22.5, 20.0),
- QGeoCoordinate(17.5, 20.0));
-
- QTest::newRow("360 width")
- << QGeoRectangle(QGeoCoordinate(10.0, -180.0),
- QGeoCoordinate(5.0, 180.0))
- << QGeoCoordinate(7.5, 0.0)
- << QGeoCoordinate(20.0, 20.0)
- << QGeoRectangle(QGeoCoordinate(22.5, -180.0),
- QGeoCoordinate(17.5, 180.0));
-
- QTest::newRow("zero height")
- << QGeoRectangle(QGeoCoordinate(5.0, 5.0),
- QGeoCoordinate(5.0, 10.0))
- << QGeoCoordinate(5.0, 7.5)
- << QGeoCoordinate(20.0, 20.0)
- << QGeoRectangle(QGeoCoordinate(20.0, 17.5),
- QGeoCoordinate(20.0, 22.5));
-
- QTest::newRow("180 height -> move")
- << QGeoRectangle(QGeoCoordinate(90.0, 5.0),
- QGeoCoordinate(-90.0, 10.0))
- << QGeoCoordinate(0.0, 7.5)
- << QGeoCoordinate(0.0, 20.0)
- << QGeoRectangle(QGeoCoordinate(90.0, 17.5),
- QGeoCoordinate(-90.0, 22.5));
-
- QTest::newRow("180 height -> squash top")
- << QGeoRectangle(QGeoCoordinate(90.0, 5.0),
- QGeoCoordinate(-90.0, 10.0))
- << QGeoCoordinate(0.0, 7.5)
- << QGeoCoordinate(-20.0, 20.0)
- << QGeoRectangle(QGeoCoordinate(50.0, 17.5),
- QGeoCoordinate(-90.0, 22.5));
-
- QTest::newRow("180 height -> squash bottom")
- << QGeoRectangle(QGeoCoordinate(90.0, 5.0),
- QGeoCoordinate(-90.0, 10.0))
- << QGeoCoordinate(0.0, 7.5)
- << QGeoCoordinate(20.0, 20.0)
- << QGeoRectangle(QGeoCoordinate(90.0, 17.5),
- QGeoCoordinate(-50.0, 22.5));
-
- QTest::newRow("non wrapping -> non wrapping")
- << QGeoRectangle(QGeoCoordinate(70.0, 30.0),
- QGeoCoordinate(30.0, 70.0))
- << QGeoCoordinate(50.0, 50.0)
- << QGeoCoordinate(10.0, 10.0)
- << QGeoRectangle(QGeoCoordinate(30.0, -10.0),
- QGeoCoordinate(-10.0, 30.0));
-
- QTest::newRow("non wrapping -> wrapping")
- << QGeoRectangle(QGeoCoordinate(70.0, 30.0),
- QGeoCoordinate(30.0, 70.0))
- << QGeoCoordinate(50.0, 50.0)
- << QGeoCoordinate(10.0, 170.0)
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-10.0, -170.0));
-
- QTest::newRow("non wrapping -> squash top")
- << QGeoRectangle(QGeoCoordinate(70.0, 30.0),
- QGeoCoordinate(30.0, 70.0))
- << QGeoCoordinate(50.0, 50.0)
- << QGeoCoordinate(80.0, 50.0)
- << QGeoRectangle(QGeoCoordinate(90.0, 30.0),
- QGeoCoordinate(70.0, 70.0));
-
- QTest::newRow("non wrapping -> squash bottom")
- << QGeoRectangle(QGeoCoordinate(70.0, 30.0),
- QGeoCoordinate(30.0, 70.0))
- << QGeoCoordinate(50.0, 50.0)
- << QGeoCoordinate(-80.0, 50.0)
- << QGeoRectangle(QGeoCoordinate(-70.0, 30.0),
- QGeoCoordinate(-90.0, 70.0));
-
- QTest::newRow("wrapping -> non wrapping")
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-10.0, -170.0))
- << QGeoCoordinate(10.0, 170.0)
- << QGeoCoordinate(50.0, 50.0)
- << QGeoRectangle(QGeoCoordinate(70.0, 30.0),
- QGeoCoordinate(30.0, 70.0));
-
- QTest::newRow("wrapping -> wrapping")
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-10.0, -170.0))
- << QGeoCoordinate(10.0, 170.0)
- << QGeoCoordinate(10.0, -170.0)
- << QGeoRectangle(QGeoCoordinate(30.0, 170.0),
- QGeoCoordinate(-10.0, -150.0));
-
- QTest::newRow("wrapping -> squash top")
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-10.0, -170.0))
- << QGeoCoordinate(10.0, 170.0)
- << QGeoCoordinate(80.0, 170.0)
- << QGeoRectangle(QGeoCoordinate(90.0, 150.0),
- QGeoCoordinate(70.0, -170.0));
-
- QTest::newRow("wrapping -> squash bottom")
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-10.0, -170.0))
- << QGeoCoordinate(10.0, 170.0)
- << QGeoCoordinate(-80.0, 170.0)
- << QGeoRectangle(QGeoCoordinate(-70.0, 150.0),
- QGeoCoordinate(-90.0, -170.0));
-}
-
-void tst_QGeoRectangle::boundingGeoRectangle_data()
-{
- QTest::addColumn<QGeoRectangle>("rectangle");
-
- QGeoRectangle b1(QGeoCoordinate(70, 30), QGeoCoordinate(30, 70));
- QGeoRectangle b2(QGeoCoordinate(70, 150), QGeoCoordinate(30, -170));
- QGeoRectangle b3(QGeoCoordinate(90, 30), QGeoCoordinate(50, 70));
- QGeoRectangle b4(QGeoCoordinate(-50, 30), QGeoCoordinate(-90, 70));
-
- QTest::newRow("Box 1") << b1;
- QTest::newRow("Box 2") << b2;
- QTest::newRow("Box 3") << b3;
- QTest::newRow("Box 4") << b4;
-}
-
-void tst_QGeoRectangle::boundingGeoRectangle()
-{
- QFETCH(QGeoRectangle, rectangle);
-
- QGeoRectangle box = rectangle.boundingGeoRectangle();
- QCOMPARE(box, rectangle);
-}
-
-void tst_QGeoRectangle::containsCoord()
-{
- QFETCH(QGeoRectangle, box);
- QFETCH(QGeoCoordinate, coord);
- QFETCH(bool, contains);
-
- QCOMPARE(box.contains(coord), contains);
-
- QGeoShape area = box;
- QCOMPARE(area.contains(coord), contains);
-}
-
-void tst_QGeoRectangle::containsCoord_data()
-{
- QTest::addColumn<QGeoRectangle>("box");
- QTest::addColumn<QGeoCoordinate>("coord");
- QTest::addColumn<bool>("contains");
-
- QGeoRectangle b1(QGeoCoordinate(70, 30), QGeoCoordinate(30, 70));
-
- double lonLO1 = 20.0;
- double lonL1 = 30.0;
- double lonLI1 = 40.0;
- double lonC1 = 50.0;
- double lonRI1 = 60.0;
- double lonR1 = 70.0;
- double lonRO1 = 80.0;
-
- double latTO1 = 80.0;
- double latT1 = 70.0;
- double latTI1 = 60.0;
- double latC1 = 50.0;
- double latBI1 = 40.0;
- double latB1 = 30.0;
- double latBO1 = 20.0;
-
- QTest::newRow("non wrapped - in center")
- << b1 << QGeoCoordinate(latC1, lonC1) << true;
- QTest::newRow("non wrapped - left edge - inside")
- << b1 << QGeoCoordinate(latC1, lonLI1) << true;
- QTest::newRow("non wrapped - left edge")
- << b1 << QGeoCoordinate(latC1, lonL1) << true;
- QTest::newRow("non wrapped - left edge - outside")
- << b1 << QGeoCoordinate(latC1, lonLO1) << false;
- QTest::newRow("non wrapped - right edge - inside")
- << b1 << QGeoCoordinate(latC1, lonRI1) << true;
- QTest::newRow("non wrapped - right edge")
- << b1 << QGeoCoordinate(latC1, lonR1) << true;
- QTest::newRow("non wrapped - right edge - outside")
- << b1 << QGeoCoordinate(latC1, lonRO1) << false;
- QTest::newRow("non wrapped - top edge - inside")
- << b1 << QGeoCoordinate(latTI1, lonC1) << true;
- QTest::newRow("non wrapped - top edge")
- << b1 << QGeoCoordinate(latT1, lonC1) << true;
- QTest::newRow("non wrapped - top edge - outside")
- << b1 << QGeoCoordinate(latTO1, lonC1) << false;
- QTest::newRow("non wrapped - bottom edge - inside")
- << b1 << QGeoCoordinate(latBI1, lonC1) << true;
- QTest::newRow("non wrapped - bottom edge")
- << b1 << QGeoCoordinate(latB1, lonC1) << true;
- QTest::newRow("non wrapped - bottom edge - outside")
- << b1 << QGeoCoordinate(latBO1, lonC1) << false;
- QTest::newRow("non wrapped - top left - inside")
- << b1 << QGeoCoordinate(latTI1, lonLI1) << true;
- QTest::newRow("non wrapped - top left")
- << b1 << QGeoCoordinate(latT1, lonL1) << true;
- QTest::newRow("non wrapped - top left - outside")
- << b1 << QGeoCoordinate(latTO1, lonLO1) << false;
- QTest::newRow("non wrapped - top right - inside")
- << b1 << QGeoCoordinate(latTI1, lonRI1) << true;
- QTest::newRow("non wrapped - top right")
- << b1 << QGeoCoordinate(latT1, lonR1) << true;
- QTest::newRow("non wrapped - top right - outside")
- << b1 << QGeoCoordinate(latTO1, lonRO1) << false;
- QTest::newRow("non wrapped - bottom left - inside")
- << b1 << QGeoCoordinate(latBI1, lonLI1) << true;
- QTest::newRow("non wrapped - bottom left")
- << b1 << QGeoCoordinate(latB1, lonL1) << true;
- QTest::newRow("non wrapped - bottom left - outside")
- << b1 << QGeoCoordinate(latBO1, lonLO1) << false;
- QTest::newRow("non wrapped - bottom right - inside")
- << b1 << QGeoCoordinate(latBI1, lonRI1) << true;
- QTest::newRow("non wrapped - bottom right")
- << b1 << QGeoCoordinate(latB1, lonR1) << true;
- QTest::newRow("non wrapped - bottom right - outside")
- << b1 << QGeoCoordinate(latBO1, lonRO1) << false;
-
- QGeoRectangle b2(QGeoCoordinate(70, 150), QGeoCoordinate(30, -170));
-
- double lonLO2 = 140.0;
- double lonL2 = 150.0;
- double lonLI2 = 160.0;
- double lonC2 = 170.0;
- double lonRI2 = 180.0;
- double lonR2 = -170.0;
- double lonRO2 = -160.0;
-
- double latTO2 = 80.0;
- double latT2 = 70.0;
- double latTI2 = 60.0;
- double latC2 = 50.0;
- double latBI2 = 40.0;
- double latB2 = 30.0;
- double latBO2 = 20.0;
-
- QTest::newRow("wrapped - in center")
- << b2 << QGeoCoordinate(latC2, lonC2) << true;
- QTest::newRow("wrapped - left edge - inside")
- << b2 << QGeoCoordinate(latC2, lonLI2) << true;
- QTest::newRow("wrapped - left edge")
- << b2 << QGeoCoordinate(latC2, lonL2) << true;
- QTest::newRow("wrapped - left edge - outside")
- << b2 << QGeoCoordinate(latC2, lonLO2) << false;
- QTest::newRow("wrapped - right edge - inside")
- << b2 << QGeoCoordinate(latC2, lonRI2) << true;
- QTest::newRow("wrapped - right edge")
- << b2 << QGeoCoordinate(latC2, lonR2) << true;
- QTest::newRow("wrapped - right edge - outside")
- << b2 << QGeoCoordinate(latC2, lonRO2) << false;
- QTest::newRow("wrapped - top edge - inside")
- << b2 << QGeoCoordinate(latTI2, lonC2) << true;
- QTest::newRow("wrapped - top edge")
- << b2 << QGeoCoordinate(latT2, lonC2) << true;
- QTest::newRow("wrapped - top edge - outside")
- << b2 << QGeoCoordinate(latTO2, lonC2) << false;
- QTest::newRow("wrapped - bottom edge - inside")
- << b2 << QGeoCoordinate(latBI2, lonC2) << true;
- QTest::newRow("wrapped - bottom edge")
- << b2 << QGeoCoordinate(latB2, lonC2) << true;
- QTest::newRow("wrapped - bottom edge - outside")
- << b2 << QGeoCoordinate(latBO2, lonC2) << false;
- QTest::newRow("wrapped - top left - inside")
- << b2 << QGeoCoordinate(latTI2, lonLI2) << true;
- QTest::newRow("wrapped - top left")
- << b2 << QGeoCoordinate(latT2, lonL2) << true;
- QTest::newRow("wrapped - top left - outside")
- << b2 << QGeoCoordinate(latTO2, lonLO2) << false;
- QTest::newRow("wrapped - top right - inside")
- << b2 << QGeoCoordinate(latTI2, lonRI2) << true;
- QTest::newRow("wrapped - top right")
- << b2 << QGeoCoordinate(latT2, lonR2) << true;
- QTest::newRow("wrapped - top right - outside")
- << b2 << QGeoCoordinate(latTO2, lonRO2) << false;
- QTest::newRow("wrapped - bottom left - inside")
- << b2 << QGeoCoordinate(latBI2, lonLI2) << true;
- QTest::newRow("wrapped - bottom left")
- << b2 << QGeoCoordinate(latB2, lonL2) << true;
- QTest::newRow("wrapped - bottom left - outside")
- << b2 << QGeoCoordinate(latBO2, lonLO2) << false;
- QTest::newRow("wrapped - bottom right - inside")
- << b2 << QGeoCoordinate(latBI2, lonRI2) << true;
- QTest::newRow("wrapped - bottom right")
- << b2 << QGeoCoordinate(latB2, lonR2) << true;
- QTest::newRow("wrapped - bottom right - outside")
- << b2 << QGeoCoordinate(latBO2, lonRO2) << false;
-
- QGeoRectangle b3(QGeoCoordinate(90, 30), QGeoCoordinate(50, 70));
-
- double lonLO3 = 20.0;
- double lonL3 = 30.0;
- double lonLI3 = 40.0;
- double lonC3 = 50.0;
- double lonRI3 = 60.0;
- double lonR3 = 70.0;
- double lonRO3 = 80.0;
-
- double latT3 = 90.0;
- double latTI3 = 80.0;
- double latC3 = 70.0;
- /* current unused:
- double latBI3 = 60.0;
- double latB3 = 50.0;
- double latBO3 = 40.0;
- */
-
- QTest::newRow("north pole - in center")
- << b3 << QGeoCoordinate(latC3, lonC3) << true;
- QTest::newRow("north pole - left edge - inside")
- << b3 << QGeoCoordinate(latC3, lonLI3) << true;
- QTest::newRow("north pole - left edge")
- << b3 << QGeoCoordinate(latC3, lonL3) << true;
- QTest::newRow("north pole - left edge - outside")
- << b3 << QGeoCoordinate(latC3, lonLO3) << false;
- QTest::newRow("north pole - right edge - inside")
- << b3 << QGeoCoordinate(latC3, lonRI3) << true;
- QTest::newRow("north pole - right edge")
- << b3 << QGeoCoordinate(latC3, lonR3) << true;
- QTest::newRow("north pole - right edge - outside")
- << b3 << QGeoCoordinate(latC3, lonRO3) << false;
- QTest::newRow("north pole - top edge - inside")
- << b3 << QGeoCoordinate(latTI3, lonC3) << true;
- QTest::newRow("north pole - top edge")
- << b3 << QGeoCoordinate(latT3, lonC3) << true;
- QTest::newRow("north pole - top left - inside")
- << b3 << QGeoCoordinate(latTI3, lonLI3) << true;
- QTest::newRow("north pole - top left")
- << b3 << QGeoCoordinate(latT3, lonL3) << true;
- QTest::newRow("north pole - top left - outside")
- << b3 << QGeoCoordinate(latT3, lonLO3) << true;
- QTest::newRow("north pole - top right - inside")
- << b3 << QGeoCoordinate(latTI3, lonRI3) << true;
- QTest::newRow("north pole - top right")
- << b3 << QGeoCoordinate(latT3, lonR3) << true;
- QTest::newRow("north pole - top right - outside")
- << b3 << QGeoCoordinate(latT3, lonRO3) << true;
-
- QGeoRectangle b4(QGeoCoordinate(-50, 30), QGeoCoordinate(-90, 70));
-
- double lonLO4 = 20.0;
- double lonL4 = 30.0;
- double lonLI4 = 40.0;
- double lonC4 = 50.0;
- double lonRI4 = 60.0;
- double lonR4 = 70.0;
- double lonRO4 = 80.0;
-
- /* currently unused:
- double latTO4 = -40.0;
- double latT4 = -50.0;
- double latTI4 = -60.0;
- */
- double latC4 = -70.0;
- double latBI4 = -80.0;
- double latB4 = -90.0;
-
- QTest::newRow("south pole - in center")
- << b4 << QGeoCoordinate(latC4, lonC4) << true;
- QTest::newRow("south pole - left edge - inside")
- << b4 << QGeoCoordinate(latC4, lonLI4) << true;
- QTest::newRow("south pole - left edge")
- << b4 << QGeoCoordinate(latC4, lonL4) << true;
- QTest::newRow("south pole - left edge - outside")
- << b4 << QGeoCoordinate(latC4, lonLO4) << false;
- QTest::newRow("south pole - right edge - inside")
- << b4 << QGeoCoordinate(latC4, lonRI4) << true;
- QTest::newRow("south pole - right edge")
- << b4 << QGeoCoordinate(latC4, lonR4) << true;
- QTest::newRow("south pole - right edge - outside")
- << b4 << QGeoCoordinate(latC4, lonRO4) << false;
- QTest::newRow("south pole - bottom edge - inside")
- << b4 << QGeoCoordinate(latBI4, lonC4) << true;
- QTest::newRow("south pole - bottom edge")
- << b4 << QGeoCoordinate(latB4, lonC4) << true;
- QTest::newRow("south pole - bottom left - inside")
- << b4 << QGeoCoordinate(latBI4, lonLI4) << true;
- QTest::newRow("south pole - bottom left")
- << b4 << QGeoCoordinate(latB4, lonL4) << true;
- QTest::newRow("south pole - bottom left - outside")
- << b4 << QGeoCoordinate(latB4, lonLO4) << true;
- QTest::newRow("south pole - bottom right - inside")
- << b4 << QGeoCoordinate(latBI4, lonRI4) << true;
- QTest::newRow("south pole - bottom right")
- << b4 << QGeoCoordinate(latB4, lonR4) << true;
- QTest::newRow("south pole - bottom right - outside")
- << b4 << QGeoCoordinate(latB4, lonRO4) << true;
-}
-
-void tst_QGeoRectangle::containsBoxAndIntersects()
-{
- QFETCH(QGeoRectangle, box1);
- QFETCH(QGeoRectangle, box2);
- QFETCH(bool, contains);
- QFETCH(bool, intersects);
-
- QCOMPARE(box1.contains(box2), contains);
- QCOMPARE(box1.intersects(box2), intersects);
-}
-
-void tst_QGeoRectangle::containsBoxAndIntersects_data()
-{
- QTest::addColumn<QGeoRectangle>("box1");
- QTest::addColumn<QGeoRectangle>("box2");
- QTest::addColumn<bool>("contains");
- QTest::addColumn<bool>("intersects");
-
- QGeoRectangle b1(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0));
-
- QTest::newRow("non wrapped same")
- << b1
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << true << true;
-
- QTest::newRow("non wrapped smaller")
- << b1
- << QGeoRectangle(QGeoCoordinate(20.0, -20.0),
- QGeoCoordinate(-20.0, 20.0))
- << true << true;
-
- QTest::newRow("non wrapped larger")
- << b1
- << QGeoRectangle(QGeoCoordinate(40.0, -40.0),
- QGeoCoordinate(-40.0, 40.0))
- << false << true;
-
- QTest::newRow("non wrapped outside top")
- << b1
- << QGeoRectangle(QGeoCoordinate(80.0, -30.0),
- QGeoCoordinate(50.0, 30.0))
- << false << false;
-
- QTest::newRow("non wrapped outside bottom")
- << b1
- << QGeoRectangle(QGeoCoordinate(-50.0, -30.0),
- QGeoCoordinate(-80.0, 30.0))
- << false << false;
-
- QTest::newRow("non wrapped outside left")
- << b1
- << QGeoRectangle(QGeoCoordinate(30.0, -80.0),
- QGeoCoordinate(-30.0, -50.0))
- << false << false;
-
- QTest::newRow("non wrapped outside wrapped")
- << b1
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-30.0, -150.0))
- << false << false;
-
- QTest::newRow("non wrapped outside right")
- << b1
- << QGeoRectangle(QGeoCoordinate(30.0, 50.0),
- QGeoCoordinate(-30.0, 80.0))
- << false << false;
-
- QTest::newRow("non wrapped top left cross")
- << b1
- << QGeoRectangle(QGeoCoordinate(40.0, -40.0),
- QGeoCoordinate(20.0, -20.0))
- << false << true;
-
- QTest::newRow("non wrapped top cross")
- << b1
- << QGeoRectangle(QGeoCoordinate(40.0, -10.0),
- QGeoCoordinate(20.0, 10.0))
- << false << true;
-
- QTest::newRow("non wrapped top right cross")
- << b1
- << QGeoRectangle(QGeoCoordinate(40.0, 20.0),
- QGeoCoordinate(20.0, 40.0))
- << false << true;
-
- QTest::newRow("non wrapped left cross")
- << b1
- << QGeoRectangle(QGeoCoordinate(10.0, -40.0),
- QGeoCoordinate(-10.0, -20.0))
- << false << true;
-
- QTest::newRow("non wrapped right cross")
- << b1
- << QGeoRectangle(QGeoCoordinate(10.0, 20.0),
- QGeoCoordinate(-10.0, 40.0))
- << false << true;
-
- QTest::newRow("non wrapped bottom left cross")
- << b1
- << QGeoRectangle(QGeoCoordinate(-20.0, -40.0),
- QGeoCoordinate(-40.0, -20.0))
- << false << true;
-
- QTest::newRow("non wrapped bottom cross")
- << b1
- << QGeoRectangle(QGeoCoordinate(-20.0, -10.0),
- QGeoCoordinate(-40.0, 10.0))
- << false << true;
-
- QTest::newRow("non wrapped bottom right cross")
- << b1
- << QGeoRectangle(QGeoCoordinate(-20.0, 20.0),
- QGeoCoordinate(-40.0, 40.0))
- << false << true;
-
- QTest::newRow("non wrapped top left touch outside")
- << b1
- << QGeoRectangle(QGeoCoordinate(50.0, -50.0),
- QGeoCoordinate(30.0, -30.0))
- << false << true;
-
- QTest::newRow("non wrapped top touch outside")
- << b1
- << QGeoRectangle(QGeoCoordinate(50.0, -10.0),
- QGeoCoordinate(30.0, 10.0))
- << false << true;
-
- QTest::newRow("non wrapped top right touch outside")
- << b1
- << QGeoRectangle(QGeoCoordinate(50.0, 30.0),
- QGeoCoordinate(30.0, 50.0))
- << false << true;
-
- QTest::newRow("non wrapped left touch outside")
- << b1
- << QGeoRectangle(QGeoCoordinate(10.0, -50.0),
- QGeoCoordinate(-10.0, -30.0))
- << false << true;
-
- QTest::newRow("non wrapped right touch outside")
- << b1
- << QGeoRectangle(QGeoCoordinate(10.0, 30.0),
- QGeoCoordinate(-10.0, 50.0))
- << false << true;
-
- QTest::newRow("non wrapped bottom left touch outside")
- << b1
- << QGeoRectangle(QGeoCoordinate(-30.0, -30.0),
- QGeoCoordinate(-50.0, -50.0))
- << false << true;
-
- QTest::newRow("non wrapped bottom touch outside")
- << b1
- << QGeoRectangle(QGeoCoordinate(-30.0, -10.0),
- QGeoCoordinate(-50.0, 10.0))
- << false << true;
-
- QTest::newRow("non wrapped bottom right touch outside")
- << b1
- << QGeoRectangle(QGeoCoordinate(-30.0, 30.0),
- QGeoCoordinate(-50.0, 50.0))
- << false << true;
-
- QTest::newRow("non wrapped top left touch inside")
- << b1
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(10.0, -10.0))
- << true << true;
-
- QTest::newRow("non wrapped top touch inside")
- << b1
- << QGeoRectangle(QGeoCoordinate(30.0, -10.0),
- QGeoCoordinate(10.0, 10.0))
- << true << true;
-
- QTest::newRow("non wrapped top right touch inside")
- << b1
- << QGeoRectangle(QGeoCoordinate(30.0, 10.0),
- QGeoCoordinate(10.0, 30.0))
- << true << true;
-
- QTest::newRow("non wrapped left touch inside")
- << b1
- << QGeoRectangle(QGeoCoordinate(10.0, -30.0),
- QGeoCoordinate(-10.0, -10.0))
- << true << true;
-
- QTest::newRow("non wrapped right touch inside")
- << b1
- << QGeoRectangle(QGeoCoordinate(10.0, 10.0),
- QGeoCoordinate(-10.0, 30.0))
- << true << true;
-
- QTest::newRow("non wrapped bottom left touch inside")
- << b1
- << QGeoRectangle(QGeoCoordinate(-10.0, -30.0),
- QGeoCoordinate(-30.0, -10.0))
- << true << true;
-
- QTest::newRow("non wrapped bottom touch inside")
- << b1
- << QGeoRectangle(QGeoCoordinate(-10.0, -10.0),
- QGeoCoordinate(-30.0, 10.0))
- << true << true;
-
- QTest::newRow("non wrapped bottom right touch inside")
- << b1
- << QGeoRectangle(QGeoCoordinate(-10.0, 10.0),
- QGeoCoordinate(-30.0, 30.0))
- << true << true;
-
- QTest::newRow("non wrapped top lon strip")
- << b1
- << QGeoRectangle(QGeoCoordinate(40.0, -40.0),
- QGeoCoordinate(20.0, 40.0))
- << false << true;
-
- QTest::newRow("non wrapped center lon strip")
- << b1
- << QGeoRectangle(QGeoCoordinate(10.0, -40.0),
- QGeoCoordinate(-10.0, 40.0))
- << false << true;
-
- QTest::newRow("non wrapped bottom lon strip")
- << b1
- << QGeoRectangle(QGeoCoordinate(-20.0, -40.0),
- QGeoCoordinate(-40.0, 40.0))
- << false << true;
-
- QTest::newRow("non wrapped left lat strip")
- << b1
- << QGeoRectangle(QGeoCoordinate(40.0, -40.0),
- QGeoCoordinate(-40.0, -20.0))
- << false << true;
-
- QTest::newRow("non wrapped center lat strip")
- << b1
- << QGeoRectangle(QGeoCoordinate(40.0, -10.0),
- QGeoCoordinate(-40.0, 10.0))
- << false << true;
-
- QTest::newRow("non wrapped right lat strip")
- << b1
- << QGeoRectangle(QGeoCoordinate(40.0, 20.0),
- QGeoCoordinate(-40.0, 40.0))
- << false << true;
-
- QGeoRectangle b2(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-30.0, -150.0));
-
- QTest::newRow("wrapped same")
- << b2
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-30.0, -150.0))
- << true << true;
-
- QTest::newRow("wrapped smaller")
- << b2
- << QGeoRectangle(QGeoCoordinate(20.0, 160.0),
- QGeoCoordinate(-20.0, -160.0))
- << true << true;
-
- QTest::newRow("wrapped larger")
- << b2
- << QGeoRectangle(QGeoCoordinate(40.0, 140.0),
- QGeoCoordinate(-40.0, -140.0))
- << false << true;
-
- QTest::newRow("wrapped outside top")
- << b2
- << QGeoRectangle(QGeoCoordinate(80.0, 150.0),
- QGeoCoordinate(50.0, -150.0))
- << false << false;
-
- QTest::newRow("wrapped outside bottom")
- << b2
- << QGeoRectangle(QGeoCoordinate(-50.0, 150.0),
- QGeoCoordinate(-80.0, -150.0))
- << false << false;
-
- QTest::newRow("wrapped outside left")
- << b2
- << QGeoRectangle(QGeoCoordinate(30.0, 70.0),
- QGeoCoordinate(-30.0, 130.0))
- << false << false;
-
- QTest::newRow("wrapped outside right")
- << b2
- << QGeoRectangle(QGeoCoordinate(30.0, -130.0),
- QGeoCoordinate(-30.0, -70.0))
- << false << false;
-
- QTest::newRow("wrapped top left cross")
- << b2
- << QGeoRectangle(QGeoCoordinate(40.0, 140.0),
- QGeoCoordinate(20.0, 160.0))
- << false << true;
-
- QTest::newRow("wrapped top cross")
- << b2
- << QGeoRectangle(QGeoCoordinate(40.0, 170.0),
- QGeoCoordinate(20.0, -170.0))
- << false << true;
-
- QTest::newRow("wrapped top right cross")
- << b2
- << QGeoRectangle(QGeoCoordinate(40.0, -160.0),
- QGeoCoordinate(20.0, -140.0))
- << false << true;
-
- QTest::newRow("wrapped left cross")
- << b2
- << QGeoRectangle(QGeoCoordinate(10.0, 140.0),
- QGeoCoordinate(-10.0, 160.0))
- << false << true;
-
- QTest::newRow("wrapped right cross")
- << b2
- << QGeoRectangle(QGeoCoordinate(10.0, -160.0),
- QGeoCoordinate(-10.0, -140.0))
- << false << true;
-
- QTest::newRow("wrapped bottom left cross")
- << b2
- << QGeoRectangle(QGeoCoordinate(-20.0, 140.0),
- QGeoCoordinate(-40.0, 160.0))
- << false << true;
-
- QTest::newRow("wrapped bottom cross")
- << b2
- << QGeoRectangle(QGeoCoordinate(-20.0, 170.0),
- QGeoCoordinate(-40.0, -170.0))
- << false << true;
-
- QTest::newRow("wrapped bottom right cross")
- << b2
- << QGeoRectangle(QGeoCoordinate(-20.0, -160.0),
- QGeoCoordinate(-40.0, -140.0))
- << false << true;
-
- QTest::newRow("wrapped top left touch outside")
- << b2
- << QGeoRectangle(QGeoCoordinate(50.0, 130.0),
- QGeoCoordinate(30.0, 150.0))
- << false << true;
-
- QTest::newRow("wrapped top touch outside")
- << b2
- << QGeoRectangle(QGeoCoordinate(50.0, 170.0),
- QGeoCoordinate(30.0, -170.0))
- << false << true;
-
- QTest::newRow("wrapped top right touch outside")
- << b2
- << QGeoRectangle(QGeoCoordinate(50.0, -150.0),
- QGeoCoordinate(30.0, -130.0))
- << false << true;
-
- QTest::newRow("wrapped left touch outside")
- << b2
- << QGeoRectangle(QGeoCoordinate(10.0, 130.0),
- QGeoCoordinate(-10.0, 150.0))
- << false << true;
-
- QTest::newRow("wrapped right touch outside")
- << b2
- << QGeoRectangle(QGeoCoordinate(10.0, -150.0),
- QGeoCoordinate(-10.0, -130.0))
- << false << true;
-
- QTest::newRow("wrapped bottom left touch outside")
- << b2
- << QGeoRectangle(QGeoCoordinate(-30.0, 150.0),
- QGeoCoordinate(-50.0, 130.0))
- << false << true;
-
- QTest::newRow("wrapped bottom touch outside")
- << b2
- << QGeoRectangle(QGeoCoordinate(-30.0, 170.0),
- QGeoCoordinate(-50.0, -170.0))
- << false << true;
-
- QTest::newRow("wrapped bottom right touch outside")
- << b2
- << QGeoRectangle(QGeoCoordinate(-30.0, -150.0),
- QGeoCoordinate(-50.0, -130.0))
- << false << true;
-
- QTest::newRow("wrapped top left touch inside")
- << b2
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(10.0, 170.0))
- << true << true;
-
- QTest::newRow("wrapped top touch inside")
- << b2
- << QGeoRectangle(QGeoCoordinate(30.0, 170.0),
- QGeoCoordinate(10.0, -170.0))
- << true << true;
-
- QTest::newRow("wrapped top right touch inside")
- << b2
- << QGeoRectangle(QGeoCoordinate(30.0, -170.0),
- QGeoCoordinate(10.0, -150.0))
- << true << true;
-
- QTest::newRow("wrapped left touch inside")
- << b2
- << QGeoRectangle(QGeoCoordinate(10.0, 150.0),
- QGeoCoordinate(-10.0, 170.0))
- << true << true;
-
- QTest::newRow("wrapped right touch inside")
- << b2
- << QGeoRectangle(QGeoCoordinate(10.0, -170.0),
- QGeoCoordinate(-10.0, -150.0))
- << true << true;
-
- QTest::newRow("wrapped bottom left touch inside")
- << b2
- << QGeoRectangle(QGeoCoordinate(-10.0, 150.0),
- QGeoCoordinate(-30.0, 170.0))
- << true << true;
-
- QTest::newRow("wrapped bottom touch inside")
- << b2
- << QGeoRectangle(QGeoCoordinate(-10.0, 170.0),
- QGeoCoordinate(-30.0, -170.0))
- << true << true;
-
- QTest::newRow("wrapped bottom right touch inside")
- << b2
- << QGeoRectangle(QGeoCoordinate(-10.0, -170.0),
- QGeoCoordinate(-30.0, -150.0))
- << true << true;
-
- QTest::newRow("wrapped top lon strip")
- << b2
- << QGeoRectangle(QGeoCoordinate(40.0, 140.0),
- QGeoCoordinate(20.0, -140.0))
- << false << true;
-
- QTest::newRow("wrapped center lon strip")
- << b2
- << QGeoRectangle(QGeoCoordinate(10.0, 140.0),
- QGeoCoordinate(-10.0, -140.0))
- << false << true;
-
- QTest::newRow("wrapped bottom lon strip")
- << b2
- << QGeoRectangle(QGeoCoordinate(-20.0, 140.0),
- QGeoCoordinate(-40.0, -140.0))
- << false << true;
-
- QTest::newRow("wrapped left lat strip")
- << b2
- << QGeoRectangle(QGeoCoordinate(40.0, 140.0),
- QGeoCoordinate(-40.0, 160.0))
- << false << true;
-
- QTest::newRow("wrapped center lat strip")
- << b2
- << QGeoRectangle(QGeoCoordinate(40.0, 170.0),
- QGeoCoordinate(-40.0, -170.0))
- << false << true;
-
- QTest::newRow("wrapped right lat strip")
- << b2
- << QGeoRectangle(QGeoCoordinate(40.0, -160.0),
- QGeoCoordinate(-40.0, -140.0))
- << false << true;
-
- QTest::newRow("north pole touching")
- << QGeoRectangle(QGeoCoordinate(90.0, 20.0),
- QGeoCoordinate(40.0, 40.0))
- << QGeoRectangle(QGeoCoordinate(90.0, 60.0),
- QGeoCoordinate(30.0, 80.0))
- << false << true;
-
- QTest::newRow("south pole touching")
- << QGeoRectangle(QGeoCoordinate(40.0, 20.0),
- QGeoCoordinate(-90.0, 40.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 60.0),
- QGeoCoordinate(-90.0, 80.0))
- << false << true;
-}
-
-void tst_QGeoRectangle::translate()
-{
- QFETCH(QGeoRectangle, box);
- QFETCH(double, degreesLatitude);
- QFETCH(double, degreesLongitude);
- QFETCH(QGeoRectangle, newBox);
-
- QGeoRectangle test = box.translated(degreesLatitude, degreesLongitude);
- QCOMPARE(test, newBox);
- box.translate(degreesLatitude, degreesLongitude);
- QCOMPARE(box, newBox);
-
-}
-
-void tst_QGeoRectangle::translate_data()
-{
- QTest::addColumn<QGeoRectangle>("box");
- QTest::addColumn<double>("degreesLatitude");
- QTest::addColumn<double>("degreesLongitude");
- QTest::addColumn<QGeoRectangle>("newBox");
-
- QTest::newRow("invalid")
- << QGeoRectangle()
- << 20.0
- << 20.0
- << QGeoRectangle();
-
- QTest::newRow("360 width")
- << QGeoRectangle(QGeoCoordinate(30.0, -180.0),
- QGeoCoordinate(-30.0, 180.0))
- << 20.0
- << 20.0
- << QGeoRectangle(QGeoCoordinate(50.0, -180.0),
- QGeoCoordinate(-10.0, 180.0));
-
- QTest::newRow("180 height")
- << QGeoRectangle(QGeoCoordinate(90.0, -30.0),
- QGeoCoordinate(-90.0, 30.0))
- << 20.0
- << 20.0
- << QGeoRectangle(QGeoCoordinate(90.0, -10.0),
- QGeoCoordinate(-90.0, 50.0));
-
- QTest::newRow("non wrapping -> non wrapping")
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << 20.0
- << 20.0
- << QGeoRectangle(QGeoCoordinate(50.0, -10.0),
- QGeoCoordinate(-10.0, 50.0));
-
- QTest::newRow("non wrapping -> wrapping")
- << QGeoRectangle(QGeoCoordinate(30.0, 110.0),
- QGeoCoordinate(-30.0, 170.0))
- << 20.0
- << 20.0
- << QGeoRectangle(QGeoCoordinate(50.0, 130.0),
- QGeoCoordinate(-10.0, -170.0));
-
- QTest::newRow("non wrapping -> north clip")
- << QGeoRectangle(QGeoCoordinate(80.0, -30.0),
- QGeoCoordinate(20.0, 30.0))
- << 20.0
- << 20.0
- << QGeoRectangle(QGeoCoordinate(90.0, -10.0),
- QGeoCoordinate(30.0, 50.0));
-
- QTest::newRow("non wrapping -> south clip")
- << QGeoRectangle(QGeoCoordinate(-20.0, -30.0),
- QGeoCoordinate(-80.0, 30.0))
- << -20.0
- << 20.0
- << QGeoRectangle(QGeoCoordinate(-30.0, -10.0),
- QGeoCoordinate(-90.0, 50.0));
-
- QTest::newRow("wrapping -> non wrapping")
- << QGeoRectangle(QGeoCoordinate(30.0, 130.0),
- QGeoCoordinate(-30.0, -170.0))
- << 20.0
- << -20.0
- << QGeoRectangle(QGeoCoordinate(50.0, 110.0),
- QGeoCoordinate(-10.0, 170.0));
-
- QTest::newRow("wrapping -> wrapping")
- << QGeoRectangle(QGeoCoordinate(30.0, 130.0),
- QGeoCoordinate(-30.0, -170.0))
- << 20.0
- << 20.0
- << QGeoRectangle(QGeoCoordinate(50.0, 150.0),
- QGeoCoordinate(-10.0, -150.0));
-
- QTest::newRow("wrapping -> north clip")
- << QGeoRectangle(QGeoCoordinate(80.0, 130.0),
- QGeoCoordinate(20.0, -170.0))
- << 20.0
- << 20.0
- << QGeoRectangle(QGeoCoordinate(90.0, 150.0),
- QGeoCoordinate(30.0, -150.0));
-
- QTest::newRow("wrapping -> south clip")
- << QGeoRectangle(QGeoCoordinate(-20.0, 130.0),
- QGeoCoordinate(-80.0, -170.0))
- << -20.0
- << 20.0
- << QGeoRectangle(QGeoCoordinate(-30.0, 150.0),
- QGeoCoordinate(-90.0, -150.0));
-}
-
-void tst_QGeoRectangle::unite()
-{
- QFETCH(QGeoRectangle, in1);
- QFETCH(QGeoRectangle, in2);
- QFETCH(QGeoRectangle, out);
-
- QCOMPARE(in1.united(in2), out);
- QCOMPARE(in2.united(in1), out);
-
- QCOMPARE(in1 | in2, out);
- QCOMPARE(in2 | in1, out);
-
- QGeoRectangle united1 = QGeoRectangle(in1);
- united1 |= in2;
- QCOMPARE(united1, out);
-
- QGeoRectangle united2 = QGeoRectangle(in2);
- united2 |= in1;
- QCOMPARE(united2, out);
-}
-
-void tst_QGeoRectangle::unite_data()
-{
- QTest::addColumn<QGeoRectangle>("in1");
- QTest::addColumn<QGeoRectangle>("in2");
- QTest::addColumn<QGeoRectangle>("out");
-
- QTest::newRow("central and taller")
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(50.0, -30.0),
- QGeoCoordinate(-50.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(50.0, -30.0),
- QGeoCoordinate(-50.0, 30.0));
-
- QTest::newRow("central and 180 high")
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(90.0, -30.0),
- QGeoCoordinate(-90.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(90.0, -30.0),
- QGeoCoordinate(-90.0, 30.0));
-
- QTest::newRow("central and non overlapping higher")
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(60.0, -30.0),
- QGeoCoordinate(50.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(60.0, -30.0),
- QGeoCoordinate(-30.0, 30.0));
-
- QTest::newRow("central and overlapping higher")
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(60.0, -30.0),
- QGeoCoordinate(0.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(60.0, -30.0),
- QGeoCoordinate(-30.0, 30.0));
-
- QTest::newRow("central and touching higher")
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(60.0, -30.0),
- QGeoCoordinate(30.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(60.0, -30.0),
- QGeoCoordinate(-30.0, 30.0));
-
- QTest::newRow("central and non overlapping lower")
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(-50.0, -30.0),
- QGeoCoordinate(-60.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-60.0, 30.0));
-
- QTest::newRow("central and overlapping lower")
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(0.0, -30.0),
- QGeoCoordinate(-60.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-60.0, 30.0));
-
- QTest::newRow("central and touching lower")
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(-30.0, -30.0),
- QGeoCoordinate(-60.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-60.0, 30.0));
-
- QTest::newRow("non wrapping central and wider")
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -50.0),
- QGeoCoordinate(-30.0, 50.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -50.0),
- QGeoCoordinate(-30.0, 50.0));
-
- QTest::newRow("non wrapping central and 360 width")
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -180.0),
- QGeoCoordinate(-30.0, 180.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -180.0),
- QGeoCoordinate(-30.0, 180.0));
-
- QTest::newRow("non wrapping central and non overlapping non wrapping left")
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -110.0),
- QGeoCoordinate(-30.0, -50.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -110.0),
- QGeoCoordinate(-30.0, 30.0));
-
- QTest::newRow("non wrapping central and overlapping non wrapping left")
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -80.0),
- QGeoCoordinate(-30.0, -20.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -80.0),
- QGeoCoordinate(-30.0, 30.0));
-
- QTest::newRow("non wrapping central and touching non wrapping left")
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -90.0),
- QGeoCoordinate(-30.0, -30.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -90.0),
- QGeoCoordinate(-30.0, 30.0));
-
- QTest::newRow("non wrapping central and non overlapping non wrapping right")
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 50.0),
- QGeoCoordinate(-30.0, 110.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 110.0));
-
- QTest::newRow("non wrapping central and overlapping non wrapping right")
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 20.0),
- QGeoCoordinate(-30.0, 80.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 80.0));
-
- QTest::newRow("non wrapping central and touching non wrapping right")
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 30.0),
- QGeoCoordinate(-30.0, 90.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 90.0));
-
- QTest::newRow("wrapping and wider")
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-30.0, -150.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 130.0),
- QGeoCoordinate(-30.0, -130.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 130.0),
- QGeoCoordinate(-30.0, -130.0));
-
- QTest::newRow("wrapping and 360 width")
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-30.0, -150.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -180.0),
- QGeoCoordinate(-30.0, 180.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -180.0),
- QGeoCoordinate(-30.0, 180.0));
-
- QTest::newRow("wrapping and non overlapping right")
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-30.0, -150.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -130.0),
- QGeoCoordinate(-30.0, -70.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-30.0, -70.0));
-
- QTest::newRow("wrapping and overlapping right")
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-30.0, -150.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -160.0),
- QGeoCoordinate(-30.0, -70.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-30.0, -70.0));
-
- QTest::newRow("wrapping and touching right")
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-30.0, -150.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -150.0),
- QGeoCoordinate(-30.0, -90.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-30.0, -90.0));
-
- QTest::newRow("wrapping and non overlapping left")
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-30.0, -150.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 70.0),
- QGeoCoordinate(-30.0, 130.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 70.0),
- QGeoCoordinate(-30.0, -150.0));
-
- QTest::newRow("wrapping and overlapping left")
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-30.0, -150.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 100.0),
- QGeoCoordinate(-30.0, 160.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 100.0),
- QGeoCoordinate(-30.0, -150.0));
-
- QTest::newRow("wrapping and touching left")
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-30.0, -150.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 90.0),
- QGeoCoordinate(-30.0, 150.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 90.0),
- QGeoCoordinate(-30.0, -150.0));
-
- QTest::newRow("wrapping and non overlapping center")
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-30.0, -150.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -30.0),
- QGeoCoordinate(-30.0, 30.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -180.0),
- QGeoCoordinate(-30.0, 180.0));
-
- QTest::newRow("wrapping and overlapping center")
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-30.0, -150.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -160.0),
- QGeoCoordinate(-30.0, 160.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -180.0),
- QGeoCoordinate(-30.0, 180.0));
-
- QTest::newRow("wrapping and touching center")
- << QGeoRectangle(QGeoCoordinate(30.0, 150.0),
- QGeoCoordinate(-30.0, -150.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -150.0),
- QGeoCoordinate(-30.0, 150.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -180.0),
- QGeoCoordinate(-30.0, 180.0));
-
- QTest::newRow("wrapping and one containing other")
- << QGeoRectangle(QGeoCoordinate(30.0, 40.0),
- QGeoCoordinate(-30.0, -40.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 160.0),
- QGeoCoordinate(-30.0, 170.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 40.0),
- QGeoCoordinate(-30.0, -40.0));
-
- QTest::newRow("small gap over zero line")
- << QGeoRectangle(QGeoCoordinate(30.0, -20.0),
- QGeoCoordinate(-30.0, -10.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 10.0),
- QGeoCoordinate(-30.0, 20.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -20.0),
- QGeoCoordinate(-30.0, 20.0));
-
- QTest::newRow("small gap before zero line")
- << QGeoRectangle(QGeoCoordinate(30.0, -40.0),
- QGeoCoordinate(-30.0, -30.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -20.0),
- QGeoCoordinate(-30.0, -10.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -40.0),
- QGeoCoordinate(-30.0, -10.0));
-
- QTest::newRow("small gap after zero line")
- << QGeoRectangle(QGeoCoordinate(30.0, 10.0),
- QGeoCoordinate(-30.0, 20.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 30.0),
- QGeoCoordinate(-30.0, 40.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 10.0),
- QGeoCoordinate(-30.0, 40.0));
-
- QTest::newRow("small gap over dateline")
- << QGeoRectangle(QGeoCoordinate(30.0, 160.0),
- QGeoCoordinate(-30.0, 170.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -170.0),
- QGeoCoordinate(-30.0, -160.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 160.0),
- QGeoCoordinate(-30.0, -160.0));
-
- QTest::newRow("small gap before dateline")
- << QGeoRectangle(QGeoCoordinate(30.0, 140.0),
- QGeoCoordinate(-30.0, 150.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 160.0),
- QGeoCoordinate(-30.0, 170.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 140.0),
- QGeoCoordinate(-30.0, 170.0));
-
- QTest::newRow("small gap after dateline")
- << QGeoRectangle(QGeoCoordinate(30.0, -170.0),
- QGeoCoordinate(-30.0, -160.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -150.0),
- QGeoCoordinate(-30.0, -140.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -170.0),
- QGeoCoordinate(-30.0, -140.0));
-
- QTest::newRow("90-degree inner gap over zero line")
- << QGeoRectangle(QGeoCoordinate(30.0, -55.0),
- QGeoCoordinate(-30.0, -45.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 45.0),
- QGeoCoordinate(-30.0, 55.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -55.0),
- QGeoCoordinate(-30.0, 55.0));
-
- QTest::newRow("90-degree inner gap before zero line")
- << QGeoRectangle(QGeoCoordinate(30.0, -20.0),
- QGeoCoordinate(-30.0, -10.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -65.0),
- QGeoCoordinate(-30.0, -55.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -65.0),
- QGeoCoordinate(-30.0, -10.0));
-
- QTest::newRow("90-degree inner gap after zero line")
- << QGeoRectangle(QGeoCoordinate(30.0, 65.0),
- QGeoCoordinate(-30.0, 75.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 10.0),
- QGeoCoordinate(-30.0, 20.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 10.0),
- QGeoCoordinate(-30.0, 75.0));
-
- QTest::newRow("90-degree inner gap over dateline")
- << QGeoRectangle(QGeoCoordinate(30.0, 125.0),
- QGeoCoordinate(-30.0, 135.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -135.0),
- QGeoCoordinate(-30.0, -125.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 125.0),
- QGeoCoordinate(-30.0, -125.0));
-
- QTest::newRow("90-degree inner gap before dateline")
- << QGeoRectangle(QGeoCoordinate(30.0, 160.0),
- QGeoCoordinate(-30.0, 170.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 50.0),
- QGeoCoordinate(-30.0, 60.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 50.0),
- QGeoCoordinate(-30.0, 170.0));
-
- QTest::newRow("90-degree inner gap after dateline")
- << QGeoRectangle(QGeoCoordinate(30.0, -170.0),
- QGeoCoordinate(-30.0, -160.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -60.0),
- QGeoCoordinate(-30.0, -50.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -170.0),
- QGeoCoordinate(-30.0, -50.0));
-
- QTest::newRow("180-degree inner gap centered on zero line")
- << QGeoRectangle(QGeoCoordinate(30.0, -100.0),
- QGeoCoordinate(-30.0, -90.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 90.0),
- QGeoCoordinate(-30.0, 100.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 90.0),
- QGeoCoordinate(-30.0, -90.0));
-
- QTest::newRow("180-degree outer gap cenetered on zero line")
- << QGeoRectangle(QGeoCoordinate(30.0, -90.0),
- QGeoCoordinate(-30.0, -80.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 80.0),
- QGeoCoordinate(-30.0, 90.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -90.0),
- QGeoCoordinate(-30.0, 90.0));
-
- QTest::newRow("180-degree shift centered on zero line")
- << QGeoRectangle(QGeoCoordinate(30.0, -100.0),
- QGeoCoordinate(-30.0, -80.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 80.0),
- QGeoCoordinate(-30.0, 100.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -180.0),
- QGeoCoordinate(-30.0, 180.0));
-
- QTest::newRow("180-degree inner gap centered on dateline")
- << QGeoRectangle(QGeoCoordinate(30.0, 80.0),
- QGeoCoordinate(-30.0, 90.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -90.0),
- QGeoCoordinate(-30.0, -80.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -90.0),
- QGeoCoordinate(-30.0, 90.0));
-
- QTest::newRow("180-degree outer gap centered on dateline")
- << QGeoRectangle(QGeoCoordinate(30.0, 90.0),
- QGeoCoordinate(-30.0, 100.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -100.0),
- QGeoCoordinate(-30.0, -90.0))
- << QGeoRectangle(QGeoCoordinate(30.0, 90.0),
- QGeoCoordinate(-30.0, -90.0));
-
- QTest::newRow("180-degree shift centered on dateline")
- << QGeoRectangle(QGeoCoordinate(30.0, 80.0),
- QGeoCoordinate(-30.0, 100.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -100.0),
- QGeoCoordinate(-30.0, -80.0))
- << QGeoRectangle(QGeoCoordinate(30.0, -180.0),
- QGeoCoordinate(-30.0, 180.0));
-
- QTest::newRow("Small outer gap centered on dateline")
- << QGeoRectangle(QGeoCoordinate(30, 160), QGeoCoordinate(-30, 170))
- << QGeoRectangle(QGeoCoordinate(30, -170), QGeoCoordinate(-30, 160))
- << QGeoRectangle(QGeoCoordinate(30, -170), QGeoCoordinate(-30, 170));
-
- QTest::newRow("Overlapping over the dateline")
- << QGeoRectangle(QGeoCoordinate(30, 160), QGeoCoordinate(-30, 170))
- << QGeoRectangle(QGeoCoordinate(30, 160), QGeoCoordinate(-30, -170))
- << QGeoRectangle(QGeoCoordinate(30, 160), QGeoCoordinate(-30, -170));
-}
-
-
-void tst_QGeoRectangle::extendRectangle()
-{
- QFETCH(QGeoRectangle, box);
- QFETCH(QGeoCoordinate, coord);
- QFETCH(QGeoRectangle, out);
-
- box.extendRectangle(coord);
- QCOMPARE(box, out);
-}
-
-void tst_QGeoRectangle::extendRectangle_data()
-{
- QTest::addColumn<QGeoRectangle>("box");
- QTest::addColumn<QGeoCoordinate>("coord");
- QTest::addColumn<QGeoRectangle>("out");
-
- QTest::newRow("valid rect - invalid coordinate")
- << QGeoRectangle(QGeoCoordinate(30.0, -20.0),
- QGeoCoordinate(-30.0, 20.0))
- << QGeoCoordinate(100.0, 190.0)
- << QGeoRectangle(QGeoCoordinate(30.0, -20.0),
- QGeoCoordinate(-30.0, 20));
- QTest::newRow("invalid rect - valid coordinate")
- << QGeoRectangle()
- << QGeoCoordinate(10.0, 10.0)
- << QGeoRectangle();
- QTest::newRow("inside rect - not wrapped")
- << QGeoRectangle(QGeoCoordinate(30.0, -20.0),
- QGeoCoordinate(-30.0, 20.0))
- << QGeoCoordinate(10.0, 10.0)
- << QGeoRectangle(QGeoCoordinate(30.0, -20.0),
- QGeoCoordinate(-30.0, 20));
- QTest::newRow("lat outside rect - not wrapped")
- << QGeoRectangle(QGeoCoordinate(30.0, -20.0),
- QGeoCoordinate(-30.0, 20.0))
- << QGeoCoordinate(40.0, 10.0)
- << QGeoRectangle(QGeoCoordinate(40.0, -20.0),
- QGeoCoordinate(-30.0, 20));
- QTest::newRow("positive lon outside rect - not wrapped")
- << QGeoRectangle(QGeoCoordinate(30.0, -20.0),
- QGeoCoordinate(-30.0, 20.0))
- << QGeoCoordinate(10.0, 40.0)
- << QGeoRectangle(QGeoCoordinate(30.0, -20.0),
- QGeoCoordinate(-30.0, 40));
- QTest::newRow("negative lon outside rect - not wrapped")
- << QGeoRectangle(QGeoCoordinate(30.0, -20.0),
- QGeoCoordinate(-30.0, 20.0))
- << QGeoCoordinate(10.0, -40.0)
- << QGeoRectangle(QGeoCoordinate(30.0, -40.0),
- QGeoCoordinate(-30.0, 20.0));
- QTest::newRow("inside rect - wrapped")
- << QGeoRectangle(QGeoCoordinate(30.0, 160.0),
- QGeoCoordinate(-30.0, -160.0))
- << QGeoCoordinate(10.0, -170.0)
- << QGeoRectangle(QGeoCoordinate(30.0, 160.0),
- QGeoCoordinate(-30.0, -160.0));
- QTest::newRow("lat outside rect - wrapped")
- << QGeoRectangle(QGeoCoordinate(30.0, 160.0),
- QGeoCoordinate(-30.0, -160.0))
- << QGeoCoordinate(-40.0, -170.0)
- << QGeoRectangle(QGeoCoordinate(30.0, 160.0),
- QGeoCoordinate(-40.0, -160.0));
- QTest::newRow("positive lon outside rect - wrapped")
- << QGeoRectangle(QGeoCoordinate(30.0, 160.0),
- QGeoCoordinate(-30.0, -160.0))
- << QGeoCoordinate(10.0, 140.0)
- << QGeoRectangle(QGeoCoordinate(30.0, 140.0),
- QGeoCoordinate(-30.0, -160.0));
- QTest::newRow("negative lon outside rect - wrapped")
- << QGeoRectangle(QGeoCoordinate(30.0, 160.0),
- QGeoCoordinate(-30.0, -160.0))
- << QGeoCoordinate(10.0, -140.0)
- << QGeoRectangle(QGeoCoordinate(30.0, 160.0),
- QGeoCoordinate(-30.0, -140.0));
- QTest::newRow("extending over 180 degree line eastward")
- << QGeoRectangle(QGeoCoordinate(30.0, 130.0),
- QGeoCoordinate(-30.0, 160.0))
- << QGeoCoordinate(10.0, -170.0)
- << QGeoRectangle(QGeoCoordinate(30.0, 130.0),
- QGeoCoordinate(-30.0, -170));
- QTest::newRow("extending over -180 degree line westward")
- << QGeoRectangle(QGeoCoordinate(30.0, -160.0),
- QGeoCoordinate(-30.0, -130.0))
- << QGeoCoordinate(10.0, 170.0)
- << QGeoRectangle(QGeoCoordinate(30.0, 170.0),
- QGeoCoordinate(-30.0, -130));
-}
-
-void tst_QGeoRectangle::areaComparison_data()
-{
- QTest::addColumn<QGeoShape>("area");
- QTest::addColumn<QGeoRectangle>("box");
- QTest::addColumn<bool>("equal");
-
- QGeoRectangle b1(QGeoCoordinate(10.0, 0.0), QGeoCoordinate(0.0, 10.0));
- QGeoRectangle b2(QGeoCoordinate(20.0, 0.0), QGeoCoordinate(0.0, 20.0));
- QGeoCircle c(QGeoCoordinate(0.0, 0.0), 10);
-
- QTest::newRow("default constructed") << QGeoShape() << QGeoRectangle() << false;
- QTest::newRow("b1 b1") << QGeoShape(b1) << b1 << true;
- QTest::newRow("b1 b2") << QGeoShape(b1) << b2 << false;
- QTest::newRow("b2 b1") << QGeoShape(b2) << b1 << false;
- QTest::newRow("b2 b2") << QGeoShape(b2) << b2 << true;
- QTest::newRow("c b1") << QGeoShape(c) << b1 << false;
-}
-
-void tst_QGeoRectangle::areaComparison()
-{
- QFETCH(QGeoShape, area);
- QFETCH(QGeoRectangle, box);
- QFETCH(bool, equal);
-
- QCOMPARE((area == box), equal);
- QCOMPARE((area != box), !equal);
-
- QCOMPARE((box == area), equal);
- QCOMPARE((box != area), !equal);
-}
-
-void tst_QGeoRectangle::circleComparison_data()
-{
- QTest::addColumn<QGeoCircle>("circle");
- QTest::addColumn<QGeoRectangle>("box");
- QTest::addColumn<bool>("equal");
-
- QGeoRectangle b(QGeoCoordinate(10.0, 0.0), QGeoCoordinate(0.0, 10.0));
- QGeoCircle c(QGeoCoordinate(0.0, 0.0), 10);
-
- QTest::newRow("default constructed") << QGeoCircle() << QGeoRectangle() << false;
- QTest::newRow("c b") << c << b << false;
-}
-
-void tst_QGeoRectangle::circleComparison()
-{
- QFETCH(QGeoCircle, circle);
- QFETCH(QGeoRectangle, box);
- QFETCH(bool, equal);
-
- QCOMPARE((circle == box), equal);
- QCOMPARE((circle != box), !equal);
-
- QCOMPARE((box == circle), equal);
- QCOMPARE((box != circle), !equal);
-}
-
-void tst_QGeoRectangle::hashing()
-{
- const QGeoRectangle rectangle(QGeoCoordinate(10.0, 0.0), QGeoCoordinate(0.0, 10.0));
- const size_t rectangleHash = qHash(rectangle);
-
- QGeoRectangle otherTopLeftRectangle = rectangle;
- otherTopLeftRectangle.setTopLeft(QGeoCoordinate(20.0, 0.0));
- QVERIFY(qHash(otherTopLeftRectangle) != rectangleHash);
-
- QGeoRectangle otherBottomRightRectangle = rectangle;
- otherBottomRightRectangle.setBottomRight(QGeoCoordinate(0.0, 5.0));
- QVERIFY(qHash(otherBottomRightRectangle) != rectangleHash);
-
- // Do not assign, so that they do not share same d_ptr
- QGeoRectangle similarRectangle(QGeoCoordinate(10.0, 0.0), QGeoCoordinate(0.0, 10.0));
- QCOMPARE(qHash(similarRectangle), rectangleHash);
-}
-
-QTEST_MAIN(tst_QGeoRectangle)
-#include "tst_qgeorectangle.moc"
-