You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
201 lines
4.4 KiB
201 lines
4.4 KiB
#include <QtCore/QString> |
|
#include <QtTest/QtTest> |
|
#include "UAS.h" |
|
#include "MAVLinkProtocol.h" |
|
#include "UASInterface.h" |
|
|
|
class UASUnitTest : public QObject |
|
{ |
|
Q_OBJECT |
|
|
|
public: |
|
#define UASID 50 |
|
MAVLinkProtocol* mav; |
|
UAS* uas; |
|
UASUnitTest(); |
|
|
|
private Q_SLOTS: |
|
void initTestCase(); |
|
void cleanupTestCase(); |
|
void getUASID_test(); |
|
void getUASName_test(); |
|
void getUpTime_test(); |
|
void getCommunicationStatus_test(); |
|
void filterVoltage_test(); |
|
void getAutopilotType_test(); |
|
void setAutopilotType_test(); |
|
void getStatusForCode_test(); |
|
void getLocalX_test(); |
|
void getLocalY_test(); |
|
void getLocalZ_test(); |
|
void getLatitude_test(); |
|
void getLongitude_test(); |
|
void getAltitude_test(); |
|
void getRoll_test(); |
|
void getPitch_test(); |
|
void getYaw_test(); |
|
|
|
private: |
|
|
|
protected: |
|
UAS *prueba; |
|
}; |
|
|
|
UASUnitTest::UASUnitTest() |
|
{ |
|
} |
|
|
|
void UASUnitTest::initTestCase() |
|
{ |
|
mav= new MAVLinkProtocol(); |
|
uas=new UAS(mav,UASID); |
|
} |
|
|
|
void UASUnitTest::cleanupTestCase() |
|
{ |
|
delete uas; |
|
delete mav; |
|
|
|
} |
|
|
|
void UASUnitTest::getUASID_test() |
|
{ |
|
// Test a default ID of zero is assigned |
|
UAS* uas2 = new UAS(mav); |
|
QCOMPARE(uas2->getUASID(), 0); |
|
delete uas2; |
|
|
|
// Test that the chosen ID was assigned at construction |
|
QCOMPARE(uas->getUASID(), UASID); |
|
|
|
// Make sure that no other ID was sert |
|
QEXPECT_FAIL("", "When you set an ID it does not use the default ID of 0", Continue); |
|
QCOMPARE(uas->getUASID(), 0); |
|
} |
|
|
|
void UASUnitTest::getUASName_test() |
|
{ |
|
// Test that the name is build as MAV + ID |
|
QCOMPARE(uas->getUASName(), "MAV 0" + QString::number(UASID)); |
|
|
|
} |
|
|
|
void UASUnitTest::getUpTime_test() |
|
{ |
|
UAS* uas2 = new UAS(mav); |
|
// Test that the uptime starts at zero to a |
|
// precision of seconds |
|
QCOMPARE(floor(uas2->getUptime()/1000.0), 0.0); |
|
|
|
// Sleep for three seconds |
|
QTest::qSleep(3000); |
|
|
|
// Test that the up time is computed correctly to a |
|
// precision of seconds |
|
QCOMPARE(floor(uas2->getUptime()/1000.0), 3.0); |
|
|
|
delete uas2; |
|
} |
|
|
|
void UASUnitTest::getCommunicationStatus_test() |
|
{ |
|
// Verify that upon construction the Comm status is disconnected |
|
QCOMPARE(uas->getCommunicationStatus(), static_cast<int>(UASInterface::COMM_DISCONNECTED)); |
|
} |
|
|
|
void UASUnitTest::filterVoltage_test() |
|
{ |
|
float verificar=uas->filterVoltage(0.4f); |
|
// Verify that upon construction the Comm status is disconnected |
|
QCOMPARE(verificar, 8.52f); |
|
} |
|
void UASUnitTest:: getAutopilotType_test() |
|
{ |
|
int verificar=uas->getAutopilotType(); |
|
// Verify that upon construction the autopilot is set to -1 |
|
QCOMPARE(verificar, -1); |
|
} |
|
void UASUnitTest::setAutopilotType_test() |
|
{ |
|
uas->setAutopilotType(2); |
|
// Verify that the autopilot is set |
|
QCOMPARE(uas->getAutopilotType(), 2); |
|
} |
|
|
|
void UASUnitTest::getStatusForCode_test() |
|
{ |
|
QString state, desc; |
|
state = ""; |
|
desc = ""; |
|
|
|
uas->getStatusForCode(MAV_STATE_UNINIT, state, desc); |
|
QVERIFY(state == "UNINIT"); |
|
|
|
uas->getStatusForCode(MAV_STATE_UNINIT, state, desc); |
|
QVERIFY(state == "UNINIT"); |
|
|
|
uas->getStatusForCode(MAV_STATE_BOOT, state, desc); |
|
QVERIFY(state == "BOOT"); |
|
|
|
uas->getStatusForCode(MAV_STATE_CALIBRATING, state, desc); |
|
QVERIFY(state == "CALIBRATING"); |
|
|
|
uas->getStatusForCode(MAV_STATE_ACTIVE, state, desc); |
|
QVERIFY(state == "ACTIVE"); |
|
|
|
uas->getStatusForCode(MAV_STATE_STANDBY, state, desc); |
|
QVERIFY(state == "STANDBY"); |
|
|
|
uas->getStatusForCode(MAV_STATE_CRITICAL, state, desc); |
|
QVERIFY(state == "CRITICAL"); |
|
|
|
uas->getStatusForCode(MAV_STATE_EMERGENCY, state, desc); |
|
QVERIFY(state == "EMERGENCY"); |
|
|
|
uas->getStatusForCode(MAV_STATE_POWEROFF, state, desc); |
|
QVERIFY(state == "SHUTDOWN"); |
|
|
|
uas->getStatusForCode(5325, state, desc); |
|
QVERIFY(state == "UNKNOWN"); |
|
} |
|
|
|
|
|
void UASUnitTest::getLocalX_test() |
|
{ |
|
QCOMPARE(uas->getLocalX(), 0.0); |
|
} |
|
void UASUnitTest::getLocalY_test() |
|
{ |
|
QCOMPARE(uas->getLocalY(), 0.0); |
|
} |
|
void UASUnitTest::getLocalZ_test() |
|
{ |
|
QCOMPARE(uas->getLocalZ(), 0.0); |
|
} |
|
void UASUnitTest::getLatitude_test() |
|
{ QCOMPARE(uas->getLatitude(), 0.0); |
|
} |
|
void UASUnitTest::getLongitude_test() |
|
{ |
|
QCOMPARE(uas->getLongitude(), 0.0); |
|
} |
|
void UASUnitTest::getAltitude_test() |
|
{ |
|
QCOMPARE(uas->getAltitude(), 0.0); |
|
} |
|
void UASUnitTest::getRoll_test() |
|
{ |
|
QCOMPARE(uas->getRoll(), 0.0); |
|
} |
|
void UASUnitTest::getPitch_test() |
|
{ |
|
QCOMPARE(uas->getPitch(), 0.0); |
|
} |
|
void UASUnitTest::getYaw_test() |
|
{ |
|
QCOMPARE(uas->getYaw(), 0.0); |
|
} |
|
|
|
QTEST_APPLESS_MAIN(UASUnitTest); |
|
|
|
#include "tst_uasunittest.moc"
|
|
|