// Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "tst_qgeorouterequest.h" #include QT_USE_NAMESPACE tst_QGeoRouteRequest::tst_QGeoRouteRequest() { } void tst_QGeoRouteRequest::constructor_waypoints() { QGeoCoordinate qgeocoord1(43.5435, 76.342); QGeoCoordinate qgeocoord2(-43.5435, 176.342); QGeoCoordinate qgeocoord3(-13.5435, +76.342); QList waypoints; waypoints.append(qgeocoord1); waypoints.append(qgeocoord2); waypoints.append(qgeocoord3); QGeoRouteRequest copy(waypoints); QCOMPARE(copy.waypoints(), waypoints); QCOMPARE(copy.numberAlternativeRoutes(), 0); QCOMPARE(copy.routeOptimization(), QGeoRouteRequest::FastestRoute); QCOMPARE(copy.segmentDetail(), QGeoRouteRequest::BasicSegmentData); QCOMPARE(copy.travelModes(), QGeoRouteRequest::CarTravel); QCOMPARE(copy.maneuverDetail(), QGeoRouteRequest::BasicManeuvers); } void tst_QGeoRouteRequest::constructor_orig_dest() { QGeoCoordinate qgeocoord1(43.5435, 76.342); QGeoCoordinate qgeocoord2(-43.5435, 176.342); QGeoRouteRequest copy(qgeocoord1, qgeocoord2); QList waypoints; waypoints.append(qgeocoord1); waypoints.append(qgeocoord2); QCOMPARE(copy.waypoints(), waypoints); QCOMPARE(copy.numberAlternativeRoutes(), 0); QCOMPARE(copy.routeOptimization(), QGeoRouteRequest::FastestRoute); QCOMPARE(copy.segmentDetail(), QGeoRouteRequest::BasicSegmentData); QCOMPARE(copy.travelModes(), QGeoRouteRequest::CarTravel); QCOMPARE(copy.maneuverDetail(), QGeoRouteRequest::BasicManeuvers); } void tst_QGeoRouteRequest::copy_constructor() { QGeoRouteRequest qgeorouterequest; QGeoRouteRequest qgeorouterequestcopy(qgeorouterequest); QCOMPARE(qgeorouterequest, qgeorouterequestcopy); } void tst_QGeoRouteRequest::excludeAreas() { QGeoRouteRequest qgeorouterequest; QGeoCoordinate qgeocoordinate; qgeocoordinate.setLatitude(13.3851); qgeocoordinate.setLongitude(52.5312); QGeoCoordinate qgeocoordinatecopy(34.324 , -110.32); QGeoRectangle qgeoboundingboxcopy(qgeocoordinate, 0.4, 0.4); QGeoRectangle qgeoboundingboxcopy2(qgeocoordinatecopy, 1.2, 0.9); QList areas; areas.append(qgeoboundingboxcopy); areas.append(qgeoboundingboxcopy2); qgeorouterequest.setExcludeAreas(areas); QCOMPARE(qgeorouterequest.excludeAreas(), areas); } void tst_QGeoRouteRequest::numberAlternativeRoutes() { QGeoRouteRequest qgeorouterequest; qgeorouterequest.setNumberAlternativeRoutes(0); QCOMPARE(qgeorouterequest.numberAlternativeRoutes(), 0); qgeorouterequest.setNumberAlternativeRoutes(24); QCOMPARE(qgeorouterequest.numberAlternativeRoutes(), 24); qgeorouterequest.setNumberAlternativeRoutes(-12); QCOMPARE(qgeorouterequest.numberAlternativeRoutes(), 0); } void tst_QGeoRouteRequest::routeOptimization() { QFETCH(QGeoRouteRequest::RouteOptimization, optimization); QGeoRouteRequest qgeorouterequest; QCOMPARE(qgeorouterequest.routeOptimization(),QGeoRouteRequest::FastestRoute); qgeorouterequest.setRouteOptimization(optimization); QCOMPARE(qgeorouterequest.routeOptimization(), optimization); } void tst_QGeoRouteRequest::routeOptimization_data() { QTest::addColumn("optimization"); QTest::newRow("optimization1") << QGeoRouteRequest::FastestRoute; QTest::newRow("optimization2") << QGeoRouteRequest::ShortestRoute; QTest::newRow("optimization3") << QGeoRouteRequest::MostEconomicRoute; QTest::newRow("optimization4") << QGeoRouteRequest::MostScenicRoute; } void tst_QGeoRouteRequest::segmentDetail() { QFETCH(QGeoRouteRequest::SegmentDetail, detail); QGeoRouteRequest qgeorouterequest; QCOMPARE(qgeorouterequest.segmentDetail(), QGeoRouteRequest::BasicSegmentData); qgeorouterequest.setSegmentDetail(detail); QCOMPARE(qgeorouterequest.segmentDetail(), detail); } void tst_QGeoRouteRequest::segmentDetail_data() { QTest::addColumn("detail"); QTest::newRow("detail1") << QGeoRouteRequest::NoSegmentData; QTest::newRow("detail2") << QGeoRouteRequest::BasicSegmentData; } void tst_QGeoRouteRequest::travelModes() { QFETCH(QGeoRouteRequest::TravelMode,mode); QGeoRouteRequest qgeorouterequest; QCOMPARE(qgeorouterequest.travelModes(), QGeoRouteRequest::CarTravel); qgeorouterequest.setTravelModes(mode); QCOMPARE(qgeorouterequest.travelModes(), mode); } void tst_QGeoRouteRequest::travelModes_data() { QTest::addColumn("mode"); QTest::newRow("mode1") << QGeoRouteRequest::CarTravel; QTest::newRow("mode2") << QGeoRouteRequest::PedestrianTravel; QTest::newRow("mode3") << QGeoRouteRequest::BicycleTravel; QTest::newRow("mode4") << QGeoRouteRequest::PublicTransitTravel; QTest::newRow("mode5") << QGeoRouteRequest::TruckTravel; } void tst_QGeoRouteRequest::waypoints() { QFETCH(QList, coordinates); QList waypoints; for (int i = 0; i < coordinates.size(); i += 2) waypoints.append(QGeoCoordinate(coordinates.at(i), coordinates.at(i+1))); QGeoRouteRequest qgeorouterequest; qgeorouterequest.setWaypoints(waypoints); QList waypointsRetrieved = qgeorouterequest.waypoints(); QCOMPARE(waypointsRetrieved, waypoints); } void tst_QGeoRouteRequest::waypoints_data() { QTest::addColumn >("coordinates"); QList coordinates; coordinates << 0.0 << 0.0; QTest::newRow("path1") << coordinates ; coordinates << -23.23 << 54.45345; QTest::newRow("path2") << coordinates ; coordinates << -85.4324 << -121.343; QTest::newRow("path3") << coordinates ; coordinates << 1.323 << 12.323; QTest::newRow("path4") << coordinates ; coordinates << 1324.323 << 143242.323; QTest::newRow("path5") << coordinates ; } void tst_QGeoRouteRequest::maneuverDetail() { QFETCH(QGeoRouteRequest::ManeuverDetail,maneuver); QGeoRouteRequest qgeorouterequest; QCOMPARE(qgeorouterequest.maneuverDetail(), QGeoRouteRequest::BasicManeuvers); qgeorouterequest.setManeuverDetail(maneuver); QCOMPARE(qgeorouterequest.maneuverDetail(), maneuver); } void tst_QGeoRouteRequest::maneuverDetail_data() { QTest::addColumn("maneuver"); QTest::newRow("maneuver1") << QGeoRouteRequest::NoManeuvers; QTest::newRow("maneuver2") << QGeoRouteRequest::BasicManeuvers; } void tst_QGeoRouteRequest::featureWeight_data() { QTest::addColumn("type"); QTest::addColumn("checkTypes"); QTest::addColumn("initialWeight"); QTest::addColumn("newWeight"); QTest::addColumn("expectWeight"); QTest::newRow("NoFeature") << QGeoRouteRequest::NoFeature << false << QGeoRouteRequest::NeutralFeatureWeight << QGeoRouteRequest::PreferFeatureWeight << QGeoRouteRequest::NeutralFeatureWeight; QTest::newRow("TollFeature") << QGeoRouteRequest::TollFeature << true << QGeoRouteRequest::NeutralFeatureWeight << QGeoRouteRequest::PreferFeatureWeight << QGeoRouteRequest::PreferFeatureWeight; QTest::newRow("HighwayFeature") << QGeoRouteRequest::HighwayFeature << true << QGeoRouteRequest::NeutralFeatureWeight << QGeoRouteRequest::RequireFeatureWeight << QGeoRouteRequest::RequireFeatureWeight; } void tst_QGeoRouteRequest::featureWeight() { QFETCH(QGeoRouteRequest::FeatureType, type); QFETCH(bool, checkTypes); QFETCH(QGeoRouteRequest::FeatureWeight, initialWeight); QFETCH(QGeoRouteRequest::FeatureWeight, newWeight); QFETCH(QGeoRouteRequest::FeatureWeight, expectWeight); QGeoRouteRequest qgeorouterequest; QCOMPARE(qgeorouterequest.featureWeight(type), initialWeight); qgeorouterequest.setFeatureWeight(type, newWeight); QCOMPARE(qgeorouterequest.featureWeight(type), expectWeight); if (checkTypes) QVERIFY(qgeorouterequest.featureTypes().contains(type)); } void tst_QGeoRouteRequest::departureTime_data() { QTest::addColumn("departureTime"); QTest::newRow("Invalid") << QDateTime(); QTest::newRow("date1") << QDateTime(QDate(2012, 7, 6), QTime(23, 55, 0)); QTest::newRow("date2") << QDateTime(QDate(2012, 7, 7), QTime(0, 5, 0)); } void tst_QGeoRouteRequest::departureTime() { QGeoRouteRequest qgeorouterequest; QFETCH(QDateTime , departureTime); qgeorouterequest.setDepartureTime(departureTime); QCOMPARE(qgeorouterequest.departureTime(), departureTime); } QTEST_APPLESS_MAIN(tst_QGeoRouteRequest);