blob: be75acfa6e6d7184811aa3c8caf6a388f0c28224 [file] [log] [blame]
/****************************************************************************
**
** 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$
**
****************************************************************************/
#include <QtCore/QString>
#include <QtTest/QtTest>
#include "qgeocameradata_p.h"
QT_USE_NAMESPACE
class tst_QGeoCameraData : public QObject
{
Q_OBJECT
public:
tst_QGeoCameraData();
private:
void populateCameraData();
private Q_SLOTS:
void constructorTest_data();
void constructorTest();
void centerTest();
void bearingTest();
void tiltTest();
void rollTest();
void zoomLevelTest();
void operatorsTest_data();
void operatorsTest();
};
tst_QGeoCameraData::tst_QGeoCameraData()
{
}
void tst_QGeoCameraData::populateCameraData()
{
QTest::addColumn<QGeoCoordinate>("center");
QTest::addColumn<double>("bearing");
QTest::addColumn<double>("tilt");
QTest::addColumn<double>("roll");
QTest::addColumn<double>("zoomLevel");
QTest::newRow("zeros") << QGeoCoordinate() << 0.0 << 0.0 << 0.0 << 0.0;
QTest::newRow("valid") << QGeoCoordinate(10.0,20.5,30.8) << 0.1 << 0.2 << 0.3 << 2.0;
QTest::newRow("negative values") << QGeoCoordinate(-50,-20,100) << -0.1 << -0.2 << -0.3 << 1.0;
}
void tst_QGeoCameraData::constructorTest_data(){
populateCameraData();
}
void tst_QGeoCameraData::constructorTest()
{
QFETCH(QGeoCoordinate, center);
QFETCH(double, bearing);
QFETCH(double, tilt);
QFETCH(double, roll);
QFETCH(double, zoomLevel);
// constructor test with default values
QGeoCameraData cameraData;
QGeoCameraData cameraData2(cameraData);
QCOMPARE(cameraData.center(), cameraData2.center());
QCOMPARE(cameraData.bearing(), cameraData2.bearing());
QCOMPARE(cameraData.tilt(), cameraData2.tilt());
QCOMPARE(cameraData.roll(), cameraData2.roll());
QCOMPARE(cameraData.zoomLevel(), cameraData2.zoomLevel());
// constructor test after setting values
cameraData.setCenter(center);
cameraData.setBearing(bearing);
cameraData.setTilt(tilt);
cameraData.setRoll(roll);
cameraData.setZoomLevel(zoomLevel);
QGeoCameraData cameraData3(cameraData);
// test the correctness of the constructor copy
QCOMPARE(cameraData3.center(), center);
QCOMPARE(cameraData3.bearing(), bearing);
QCOMPARE(cameraData3.tilt(), tilt);
QCOMPARE(cameraData3.roll(), roll);
QCOMPARE(cameraData3.zoomLevel(), zoomLevel);
// verify that values have not changed after a constructor copy
QCOMPARE(cameraData.center(), cameraData3.center());
QCOMPARE(cameraData.bearing(), cameraData3.bearing());
QCOMPARE(cameraData.tilt(), cameraData3.tilt());
QCOMPARE(cameraData.roll(), cameraData3.roll());
QCOMPARE(cameraData.zoomLevel(), cameraData3.zoomLevel());
}
void tst_QGeoCameraData::centerTest()
{
QGeoCameraData cameraData; //center currently default to (-27.5, 153)
cameraData.setCenter(QGeoCoordinate(10.0,20.4,30.8));
QCOMPARE(cameraData.center(),QGeoCoordinate(10.0,20.4,30.8));
}
void tst_QGeoCameraData::bearingTest(){
QGeoCameraData cameraData;
QCOMPARE(cameraData.bearing(),0.0);
cameraData.setBearing(0.1);
QCOMPARE(cameraData.bearing(),0.1);
QGeoCameraData cameraData2 = cameraData;
QCOMPARE(cameraData2.bearing(),0.1);
cameraData.setBearing(0.2);
QCOMPARE(cameraData2.bearing(),0.1);
}
void tst_QGeoCameraData::tiltTest(){
QGeoCameraData cameraData;
QCOMPARE(cameraData.tilt(),0.0);
cameraData.setTilt(0.4);
QCOMPARE(cameraData.tilt(),0.4);
QGeoCameraData cameraData2 = cameraData;
QCOMPARE(cameraData2.tilt(),0.4);
cameraData.setTilt(0.5);
QCOMPARE(cameraData2.tilt(),0.4);
}
void tst_QGeoCameraData::rollTest(){
QGeoCameraData cameraData;
QCOMPARE(cameraData.roll(),0.0);
cameraData.setRoll(0.5);
QCOMPARE(cameraData.roll(),0.5);
QGeoCameraData cameraData2 = cameraData;
QCOMPARE(cameraData2.roll(),0.5);
cameraData.setRoll(0.6);
QCOMPARE(cameraData2.roll(),0.5);
}
void tst_QGeoCameraData::zoomLevelTest(){
QGeoCameraData cameraData; //zoom level currently defaults to 9.0
cameraData.setZoomLevel(8.0);
QCOMPARE(cameraData.zoomLevel(),8.0);
QGeoCameraData cameraData2 = cameraData;
QCOMPARE(cameraData2.zoomLevel(),8.0);
cameraData.setZoomLevel(9.0);
QCOMPARE(cameraData2.zoomLevel(),8.0);
}
void tst_QGeoCameraData::operatorsTest_data(){
populateCameraData();
}
void tst_QGeoCameraData::operatorsTest(){
QGeoCameraData cameraData;
QGeoCameraData cameraData2;
QVERIFY2(cameraData == cameraData2, "Camera data with default values are not copied correctly");
QFETCH(QGeoCoordinate, center);
QFETCH(double, bearing);
QFETCH(double, tilt);
QFETCH(double, roll);
QFETCH(double, zoomLevel);
cameraData.setCenter(center);
cameraData.setBearing(bearing);
cameraData.setTilt(tilt);
cameraData.setRoll(roll);
cameraData.setZoomLevel(zoomLevel);
QGeoCameraData cameraData3;
cameraData3 = cameraData;
QVERIFY2(cameraData == cameraData3, "Camera data not copied correctly");
// test QGeoCameraData pairs where they differ in one field
QGeoCameraData cameraData4;
cameraData4 = cameraData;
cameraData4.setCenter(QGeoCoordinate(10.0,20.0,30.0));
QVERIFY2(cameraData != cameraData4, "Camera data should be different");
QGeoCameraData cameraData5;
cameraData5 = cameraData;
cameraData5.setBearing(bearing+1.0);
QVERIFY2(cameraData != cameraData5, "Camera data should be different");
QGeoCameraData cameraData6;
cameraData6 = cameraData;
cameraData6.setTilt(tilt+0.1);
QVERIFY2(cameraData != cameraData6, "Camera data should be different");
QGeoCameraData cameraData7;
cameraData7 = cameraData;
cameraData7.setRoll(roll+0.1);
QVERIFY2(cameraData != cameraData7, "Camera data should be different");
QGeoCameraData cameraData8;
cameraData8 = cameraData;
cameraData8.setZoomLevel(zoomLevel+1.0);
QVERIFY2(cameraData != cameraData8, "Camera data should be different");
}
QTEST_APPLESS_MAIN(tst_QGeoCameraData)
#include "tst_qgeocameradata.moc"