/**************************************************************************** * * (c) 2009-2020 QGROUNDCONTROL PROJECT * * QGroundControl is licensed according to the terms in the file * COPYING.md in the root of the source code directory. * ****************************************************************************/ #pragma once #include "UnitTest.h" #include "TCPLink.h" #include "MultiSignalSpy.h" #include "SurveyComplexItem.h" #include "PlanMasterController.h" #include "PlanViewSettings.h" #include /// Unit test for SurveyComplexItem class SurveyComplexItemTest : public UnitTest { Q_OBJECT public: SurveyComplexItemTest(void); protected: void init(void) final; void cleanup(void) final; private slots: void _testHoverCaptureItemGeneration(void); private: void _testDirty(void); void _testGridAngle(void); void _testEntryLocation(void); void _testItemCount(void); void _testItemGeneration(void); double _clampGridAngle180(double gridAngle); void _setPolygon(void); QList _createExpectedCommands(bool hasTurnaround, bool useConditionGate); void _testItemGenerationWorker(bool imagesInTurnaround, bool hasTurnaround, bool useConditionGate, const QList& expectedCommands); // SurveyComplexItem signals enum { surveyVisualTransectPointsChangedIndex = 0, surveyCameraShotsChangedIndex, surveyCoveredAreaChangedIndex, surveyTimeBetweenShotsChangedIndex, surveyRefly90DegreesChangedIndex, surveyDirtyChangedIndex, surveyMaxSignalIndex }; enum { surveyVisualTransectPointsChangedMask = 1 << surveyVisualTransectPointsChangedIndex, surveyCameraShotsChangedMask = 1 << surveyCameraShotsChangedIndex, surveyCoveredAreaChangedMask = 1 << surveyCoveredAreaChangedIndex, surveyTimeBetweenShotsChangedMask = 1 << surveyTimeBetweenShotsChangedIndex, surveyRefly90DegreesChangedMask = 1 << surveyRefly90DegreesChangedIndex, surveyDirtyChangedMask = 1 << surveyDirtyChangedIndex }; static const size_t _cSurveySignals = surveyMaxSignalIndex; const char* _rgSurveySignals[_cSurveySignals]; PlanMasterController* _masterController = nullptr; Vehicle* _controllerVehicle = nullptr; MultiSignalSpy* _multiSpy = nullptr; SurveyComplexItem* _surveyItem = nullptr; QGCMapPolygon* _mapPolygon = nullptr; PlanViewSettings* _planViewSettings = nullptr; QList _polyVertices; static const int _expectedTransectCount = 2; };