17 using namespace swift::misc::aviation;
18 using namespace swift::misc::network;
19 using namespace swift::misc::physical_quantities;
30 void flightPlanRemarks();
33 void flightPlanAltitude();
36 void importVpilotFlightplan();
39 void CTestFlightPlan::flightPlanRemarks()
43 QVERIFY2(fpRemarks.isEmpty(),
"Expect NULL flight plan remarks");
45 remarks = QStringLiteral(
"RT/KESTREL OPR/MYTRAVEL REG/G-DAJC SEL/FP-ES PER/C NAV/RNP10");
47 QVERIFY2(fpRemarks.getSelcalCode().getCode() ==
"FPES",
"Wrong SELCAL code");
48 QVERIFY2(fpRemarks.getFlightOperator() ==
"MYTRAVEL",
"Wrong flight operator");
49 QVERIFY2(fpRemarks.getRegistration().asString() ==
"GDAJC",
"Wrong registration");
51 remarks = QStringLiteral(
"OPR/UAL CALLSIGN/UNITED");
53 QVERIFY2(fpRemarks.getAirlineIcao().getDesignator() ==
"UAL",
"Wrong airline, expect UAL");
54 QVERIFY2(fpRemarks.getFlightOperator().isEmpty(),
"Expect to operator, should be in airline");
55 QVERIFY2(fpRemarks.getRegistration().isEmpty(),
"Expect no registration");
56 QVERIFY2(fpRemarks.getRadioTelephony() ==
"UNITED",
"Expect telephony");
58 remarks = QStringLiteral(
"/v/FPL-VIR9-IS-A346/DEP/S-EGLL/ARR/KJFK/REG/G-VGAS/TCAS RVR/200 OPR/VIRGIN AIRLINES");
60 QVERIFY2(fpRemarks.getRegistration().asString() ==
"GVGAS",
"Wrong registration");
61 QVERIFY2(fpRemarks.getFlightOperator() ==
"VIRGIN AIRLINES",
"Wrong operator");
62 QVERIFY2(fpRemarks.getVoiceCapabilities().getCapabilities() == CVoiceCapabilities::Voice,
63 "Wrong airline, expect UAL");
66 QStringLiteral(
"/v/FPL-VIR9-IS-A346/ OPR/VIRGIN AIRLINES DEP/S-EGLL/ARR/KJFK/REG/G-VGAS/TCAS RVR/200");
68 QVERIFY2(fpRemarks.getRegistration().asString() ==
"GVGAS",
"Wrong registration");
69 QVERIFY2(fpRemarks.getFlightOperator() ==
"VIRGIN AIRLINES",
"Wrong operator");
70 QVERIFY2(fpRemarks.getVoiceCapabilities().getCapabilities() == CVoiceCapabilities::Voice,
71 "Wrong airline, expect UAL");
74 void CTestFlightPlan::flightPlanAltitude()
94 faulty.makeNegative();
95 QVERIFY2(!faulty.isValidFpAltitude(),
"Negative values not allowed");
111 void CTestFlightPlan::importVpilotFlightplan()
113 using namespace swift::misc::physical_quantities::Literals;
116 "<?xml version=\"1.0\" encoding=\"utf-8\"?><FlightPlan "
117 "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" "
118 "FlightType=\"VFR\" Equipment=\"G\" CruiseAltitude=\"5500\" CruiseSpeed=\"115\" DepartureAirport=\"EDRY\" "
119 "DestinationAirport=\"EDDL\" AlternateAirport=\"EDDK\" Route=\"WRB DOMUX\" "
120 "Remarks=\"TEST remark\" IsHeavy=\"false\" EquipmentPrefix=\"\" EquipmentSuffix=\"\" "
121 "DepartureTime=\"1744\" "
122 "DepartureTimeAct=\"1744\" EnrouteHours=\"2\" EnrouteMinutes=\"28\" FuelHours=\"3\" FuelMinutes=\"45\" "
123 "VoiceType=\"Full\" />"));
130 QCOMPARE_EQ(fp.
getRemarks(),
"/V/ TEST remark");
131 QCOMPARE_EQ(fp.
getRoute(),
"WRB DOMUX");
145 #include "testflightplan.moc"
QString getAircraftType() const
Aircraft type, such a L(andplane), S(eaplane), H(elicopter)
QString getIcaoCode() const
Get ICAO code.
Altitude as used in aviation, can be AGL or MSL altitude.
QString asFpVatsimAltitudeString() const
As simple VATSIM string, only FLxxx or altitude as ft.
QString asFpICAOAltitudeString() const
Altitude string (official version)
bool parseFromFpAltitudeString(const QString &value, CStatusMessageList *msgs=nullptr)
Parse from FP altitude string.
@ FlightLevel
Flight level.
CAircraftIcaoCode getAircraftIcao() const
Get Aircraft ICAO.
Value object for a flight plan.
const physical_quantities::CTime & getFuelTime() const
Get amount of fuel load in time.
QString getTakeoffTimePlannedHourMin() const
Get planned takeoff time (planned)
const physical_quantities::CSpeed & getCruiseTrueAirspeed() const
Get planned cruise TAS.
const QString & getRoute() const
Get route string.
@ VFR
Visual flight rules.
FlightRules getFlightRules() const
Get flight rules as in FlightRules.
const QString & getRemarks() const
Get remarks string.
const CAirportIcaoCode & getAlternateAirportIcao() const
Get alternate destination airport ICAO code.
const CAltitude & getCruiseAltitude() const
Cruising altitudes.
const physical_quantities::CTime & getEnrouteTime() const
Get planned enroute flight time.
const CAirportIcaoCode & getOriginAirportIcao() const
Get origin airport ICAO code.
static CFlightPlan fromVPilotFormat(const QString &vPilotData)
From vPilot data.
const CAirportIcaoCode & getDestinationAirportIcao() const
Get destination airport ICAO code.
CFlightPlanAircraftInfo getAircraftInfo() const
Get ICAO aircraft NAV/COM equipment.
SWIFTTEST_APPLESS_MAIN(MiscTest::CTestFlightPlan)
main