diff options
Diffstat (limited to 'tests/auto/declarative_positioning_core/tst_coordinate.qml')
-rw-r--r-- | tests/auto/declarative_positioning_core/tst_coordinate.qml | 404 |
1 files changed, 0 insertions, 404 deletions
diff --git a/tests/auto/declarative_positioning_core/tst_coordinate.qml b/tests/auto/declarative_positioning_core/tst_coordinate.qml deleted file mode 100644 index eb5a2573..00000000 --- a/tests/auto/declarative_positioning_core/tst_coordinate.qml +++ /dev/null @@ -1,404 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtTest 1.0 -import QtPositioning 6.2 - -Item { - id: item - - property var empty: QtPositioning.coordinate() - property var base: QtPositioning.coordinate(1.0, 1.0, 5.0) - property var zero: QtPositioning.coordinate(0, 0) - property var plusone: QtPositioning.coordinate(0, 1) - property var minusone: QtPositioning.coordinate(0, -1) - property var north: QtPositioning.coordinate(3, 0) - - SignalSpy { id: coordSpy; target: item; signalName: "baseChanged" } - - property var inside: QtPositioning.coordinate(0.5, 0.5) - property var outside: QtPositioning.coordinate(2, 2) - property var tl: QtPositioning.coordinate(1, 0) - property var br: QtPositioning.coordinate(0, 1) - property var box: QtPositioning.rectangle(tl, br) - - - Address { - id: validTestAddress - street: "Brandl St" - streetNumber: "53" - city: "Eight Mile Plains" - country: "Australia" - countryCode: "AUS" - } - - Location { - id: testLocation - coordinate: inside - boundingShape: box - address: validTestAddress - } - - Location { - id: invalidLocation - } - - - Item { - id: coordinateItem - property variant coordinate - property int animationDuration: 100 - property var coordinateList: [] - property int coordinateCount: 0 - - CoordinateAnimation { - id: coordinateAnimation - target: coordinateItem - property: "coordinate" - duration: coordinateItem.animationDuration - } - onCoordinateChanged: { - if (!coordinateList) { - coordinateList = [] - } - coordinateList[coordinateCount] = QtPositioning.coordinate(coordinate.latitude,coordinate.longitude) - coordinateCount++ - } - - SignalSpy { id: coordinateAnimationStartSpy; target: coordinateAnimation; signalName: "started" } - SignalSpy { id: coordinateAnimationStopSpy; target: coordinateAnimation; signalName: "stopped" } - SignalSpy { id: coordinateAnimationDirectionSpy; target: coordinateAnimation; signalName: "directionChanged" } - } - - TestCase { - name: "GeoLocation" - - function test_Location_complete() - { - compare (testLocation.coordinate.longitude, inside.longitude) - compare (testLocation.coordinate.latitude, inside.latitude) - - compare (testLocation.boundingShape.contains(inside), true) - compare (testLocation.boundingShape.contains(outside), false) - var shapeRectangle = testLocation.boundingShape.boundingGeoRectangle() - compare (shapeRectangle.bottomRight.longitude, br.longitude) - compare (shapeRectangle.bottomRight.latitude, br.latitude) - compare (shapeRectangle.topLeft.longitude, tl.longitude) - compare (shapeRectangle.topLeft.latitude, tl.latitude) - - compare (testLocation.address.country, "Australia") - compare (testLocation.address.countryCode, "AUS") - compare (testLocation.address.city, "Eight Mile Plains") - compare (testLocation.address.street, "Brandl St") - compare (testLocation.address.streetNumber, "53") - } - - function test_Location_invalid() - { - compare(invalidLocation.coordinate.isValid, false) - compare(invalidLocation.boundingShape.isEmpty, true) - compare(invalidLocation.boundingShape.isValid, false) - compare(invalidLocation.address.city, "") - } - } - - TestCase { - name: "Coordinate" - - function test_validity() - { - compare(empty.isValid, false) - - empty.longitude = 0.0; - empty.latitude = 0.0; - - compare(empty.isValid, true) - } - - function test_accessors() - { - compare(base.longitude, 1.0) - compare(base.latitude, 1.0) - compare(base.altitude, 5.0) - - coordSpy.clear() - - base.longitude = 2.0 - base.latitude = 3.0 - base.altitude = 6.0 - - compare(base.longitude, 2.0) - compare(base.latitude, 3.0) - compare(base.altitude, 6.0) - // changing individual properties does *not* trigger - // change notification - compare(coordSpy.count, 0) - - // updating the whole object *does* trigger change notification - base = QtPositioning.coordinate(3.0, 4.0, 5.0) - compare(base.latitude, 3.0) - compare(base.longitude, 4.0) - compare(base.altitude, 5.0) - compare(coordSpy.count, 1) - } - - function test_comparison_data() - { - return [ - { tag: "empty", coord1: empty, coord2: QtPositioning.coordinate(), result: true }, - { tag: "zero", coord1: zero, coord2: QtPositioning.coordinate(0, 0), result: true }, - { tag: "plusone", coord1: plusone, coord2: QtPositioning.coordinate(0, 1), result: true }, - { tag: "minusone", coord1: minusone, coord2: QtPositioning.coordinate(0, -1), result: true }, - { tag: "north", coord1: north, coord2: QtPositioning.coordinate(3, 0), result: true }, - { tag: "lat,long.alt", coord1: QtPositioning.coordinate(1.1, 2.2, 3.3), coord2: QtPositioning.coordinate(1.1, 2.2, 3.3), result: true }, - { tag: "not equal1", coord1: plusone, coord2: minusone, result: false }, - { tag: "not equal2", coord1: plusone, coord2: north, result: false } - ] - } - - function test_comparison(data) - { - compare(data.coord1 === data.coord2, data.result) - compare(data.coord1 !== data.coord2, !data.result) - compare(data.coord1 == data.coord2, data.result) - compare(data.coord1 != data.coord2, !data.result) - } - - function test_distance() - { - compare(zero.distanceTo(plusone), zero.distanceTo(minusone)) - compare(2*plusone.distanceTo(zero), plusone.distanceTo(minusone)) - compare(zero.distanceTo(plusone) > 0, true) - } - - function test_azimuth() - { - compare(zero.azimuthTo(north), 0) - compare(zero.azimuthTo(plusone), 90) - compare(zero.azimuthTo(minusone), 270) - compare(minusone.azimuthTo(plusone), 360 - plusone.azimuthTo(minusone)) - } - - function test_atDistanceAndAzimuth() - { - // 112km is approximately one degree of arc - - var coord_0d = zero.atDistanceAndAzimuth(112000, 0) - compare(coord_0d.latitude > 0.95, true) - compare(coord_0d.latitude < 1.05, true) - compare(coord_0d.longitude < 0.05, true) - compare(coord_0d.longitude > -0.05, true) - compare(zero.distanceTo(coord_0d), 112000) - compare(zero.azimuthTo(coord_0d), 0) - - var coord_90d = zero.atDistanceAndAzimuth(112000, 90) - compare(coord_90d.longitude > 0.95, true) - compare(coord_90d.longitude < 1.05, true) - compare(coord_90d.latitude < 0.05, true) - compare(coord_90d.latitude > -0.05, true) - compare(zero.distanceTo(coord_90d), 112000) - compare(zero.azimuthTo(coord_90d), 90) - - var coord_30d = zero.atDistanceAndAzimuth(20000, 30) - compare(coord_30d.longitude > 0, true) - compare(coord_30d.latitude > 0, true) - compare(zero.distanceTo(coord_30d), 20000) - compare(zero.azimuthTo(coord_30d), 30) - - var coord_30d2 = coord_30d.atDistanceAndAzimuth(200, 30) - compare(zero.distanceTo(coord_30d2), 20200) - } - } - - TestCase { - name: "CoordinateAnimation" - - function init() - { - coordinateAnimation.stop() - coordinateAnimationStartSpy.clear() - coordinateAnimationStopSpy.clear() - coordinateAnimationDirectionSpy.clear() - coordinateAnimation.from = QtPositioning.coordinate(50,50) - coordinateAnimation.to = QtPositioning.coordinate(50,50) - coordinateAnimation.direction = CoordinateAnimation.Shortest - coordinateItem.coordinate = QtPositioning.coordinate(50,50) - coordinateItem.coordinateList = [] - coordinateItem.coordinateCount = 0 - } - - function initTestCase() - { - compare(coordinateAnimation.direction, CoordinateAnimation.Shortest) - compare(coordinateAnimationDirectionSpy.count,0) - coordinateAnimation.direction = CoordinateAnimation.Shortest - compare(coordinateAnimationDirectionSpy.count,0) - coordinateAnimation.direction = CoordinateAnimation.West - compare(coordinateAnimationDirectionSpy.count,1) - coordinateAnimation.direction = CoordinateAnimation.East - compare(coordinateAnimationDirectionSpy.count,2) - } - - function toMercator(coord) - { - var p = QtPositioning.coordToMercator(coord) - var lat = p.y - var lon = p.x - return {'latitude': lat, 'longitude': lon}; - } - - function coordinate_animation(from, to, movingEast) - { - var fromMerc = toMercator(from) - var toMerc = toMercator(to) - var delta = (toMerc.latitude - fromMerc.latitude) / (toMerc.longitude - fromMerc.longitude) - - compare(coordinateItem.coordinateList.length, 0); - coordinateAnimation.from = from - coordinateAnimation.to = to - coordinateAnimation.start() - tryCompare(coordinateAnimationStartSpy,"count",1) - tryCompare(coordinateAnimationStopSpy,"count",1) - - //check correct start position - verify(coordinateItem.coordinateList.length != 0) - compare(coordinateItem.coordinateList[0], from) - //check correct end position - compare(coordinateItem.coordinateList[coordinateItem.coordinateList.length - 1],to) - - var i - var lastLongitude - for (i in coordinateItem.coordinateList) { - var coordinate = coordinateItem.coordinateList[i] - var mercCoordinate = toMercator(coordinate) - - //check that coordinates from the animation is along a straight line between from and to - var estimatedLatitude = fromMerc.latitude + (mercCoordinate.longitude - fromMerc.longitude) * delta - verify(mercCoordinate.latitude - estimatedLatitude < 0.00000000001); - - //check that each step has moved in the right direction - - if (lastLongitude) { - var errorMessage = "movingEast: " + movingEast + "; From: " + from + "; To: " + to + "; i: " + i + "; crdList: " + coordinateItem.coordinateList - if (movingEast) { - if (coordinate.longitude < 0 && lastLongitude > 0) - verify(coordinate.longitude + 360 > lastLongitude, errorMessage) - else - verify(coordinate.longitude > lastLongitude, errorMessage) - } else { - if (coordinate.longitude > 0 && lastLongitude < 0) - verify(coordinate.longitude < lastLongitude + 360, errorMessage) - else - verify(coordinate.longitude < lastLongitude, errorMessage) - } - } - lastLongitude = coordinate.longitude - } - } - - function test_default_coordinate_animation(data) - { - //shortest - coordinate_animation(data.from, data.to, data.east) - } - - function test_default_coordinate_animation_data() - { - return [ - { - from: QtPositioning.coordinate(58.0, 12.0), - to: QtPositioning.coordinate(62.0, 24.0), - east: true - }, - { - from: QtPositioning.coordinate(58.0, 24.0), - to: QtPositioning.coordinate(42.0, 12.0), - east: false - }, - // cross 0 - { - from: QtPositioning.coordinate(30, 10), - to: QtPositioning.coordinate(20, -10), - east: false - }, - { - from: QtPositioning.coordinate(30, -20), - to: QtPositioning.coordinate(20, 10), - east: true - }, - // cross 180 - { - from: QtPositioning.coordinate(30, 170), - to: QtPositioning.coordinate(30, -170), - east: true - }, - { - from: QtPositioning.coordinate(30, -170), - to: QtPositioning.coordinate(30, 170), - east: false - }, - ] - } - - function test_east_direction_coordinate_animation(data) - { - coordinateAnimation.direction = CoordinateAnimation.East - coordinate_animation(data.from, - data.to, - true) - } - - function test_east_direction_coordinate_animation_data() - { - return [ - { from: QtPositioning.coordinate(58.0,24.0), to: QtPositioning.coordinate(58.0,12.0) }, - { from: QtPositioning.coordinate(58.0,12.0), to: QtPositioning.coordinate(58.0,24.0) }, - ] - } - - - function test_west_direction_coordinate_animation(data) - { - coordinateAnimation.direction = CoordinateAnimation.West - coordinate_animation(data.from, - data.to, - false) - } - - function test_west_direction_coordinate_animation_data() - { - return [ - { from: QtPositioning.coordinate(58.0,24.0),to: QtPositioning.coordinate(58.0,12.0) }, - { from: QtPositioning.coordinate(58.0,12.0),to: QtPositioning.coordinate(58.0,24.0) }, - ] - } - - - } -} |