mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-05 09:15:34 +08:00
Based on unit test failure (clang):
* now ignore incomplete entities for airline/aircraft ICAOs from DB * utility functions to find invalid designators * adjusted unit test, avoid taking a random element * and fixed 4 wrong ICAO entries in DB
This commit is contained in:
committed by
Mathew Sutcliffe
parent
4bb29de652
commit
5c32a912f3
@@ -532,8 +532,8 @@ namespace BlackMisc
|
||||
|
||||
// Amphibian, Glider, Helicopter, Seaplane, Landplane, Tilt wing
|
||||
static const QString validDescriptions = "AGHSLT";
|
||||
// Electric, Jet, Piston, Turpoprop
|
||||
static const QString validEngines = "EJPT";
|
||||
// Electric, Jet, Piston, Turpoprop, and - for no engine
|
||||
static const QString validEngines = "EJPT-";
|
||||
|
||||
if (!validDescriptions.contains(combinedType[0])) { return false; }
|
||||
if (!combinedType[1].isDigit()) { return false; }
|
||||
|
||||
@@ -34,6 +34,22 @@ namespace BlackMisc
|
||||
});
|
||||
}
|
||||
|
||||
CAircraftIcaoCodeList CAircraftIcaoCodeList::findByValidDesignator() const
|
||||
{
|
||||
return this->findBy([](const CAircraftIcaoCode & code)
|
||||
{
|
||||
return code.hasValidDesignator();
|
||||
});
|
||||
}
|
||||
|
||||
CAircraftIcaoCodeList CAircraftIcaoCodeList::findByInvalidDesignator() const
|
||||
{
|
||||
return this->findBy([](const CAircraftIcaoCode & code)
|
||||
{
|
||||
return !code.hasValidDesignator();
|
||||
});
|
||||
}
|
||||
|
||||
CAircraftIcaoCodeList CAircraftIcaoCodeList::findByDesignatorOrIataCode(const QString &icaoOrIata) const
|
||||
{
|
||||
if (icaoOrIata.isEmpty()) { return CAircraftIcaoCodeList(); }
|
||||
|
||||
@@ -54,6 +54,12 @@ namespace BlackMisc
|
||||
//! Find by family
|
||||
CAircraftIcaoCodeList findByFamily(const QString &family) const;
|
||||
|
||||
//! Ones with a valid designator
|
||||
CAircraftIcaoCodeList findByValidDesignator() const;
|
||||
|
||||
//! Ones with an invalid designator
|
||||
CAircraftIcaoCodeList findByInvalidDesignator() const;
|
||||
|
||||
//! Find by ICAO/IATA code
|
||||
CAircraftIcaoCodeList findByDesignatorOrIataCode(const QString &icaoOrIata) const;
|
||||
|
||||
|
||||
@@ -106,6 +106,22 @@ namespace BlackMisc
|
||||
});
|
||||
}
|
||||
|
||||
CAirlineIcaoCodeList CAirlineIcaoCodeList::findByValidDesignator() const
|
||||
{
|
||||
return this->findBy([](const CAirlineIcaoCode & code)
|
||||
{
|
||||
return code.hasValidDesignator();
|
||||
});
|
||||
}
|
||||
|
||||
CAirlineIcaoCodeList CAirlineIcaoCodeList::findByInvalidDesignator() const
|
||||
{
|
||||
return this->findBy([](const CAirlineIcaoCode & code)
|
||||
{
|
||||
return !code.hasValidDesignator();
|
||||
});
|
||||
}
|
||||
|
||||
CAirlineIcaoCode CAirlineIcaoCodeList::smartAirlineIcaoSelector(const CAirlineIcaoCode &icaoPattern, const CCallsign &callsign) const
|
||||
{
|
||||
if (icaoPattern.hasValidDbKey()) { return icaoPattern; }
|
||||
|
||||
@@ -74,6 +74,12 @@ namespace BlackMisc
|
||||
//! Find by military flag
|
||||
CAirlineIcaoCodeList findByMilitary(bool military) const;
|
||||
|
||||
//! The ones with a valid designator
|
||||
CAirlineIcaoCodeList findByValidDesignator() const;
|
||||
|
||||
//! The ones with an invalid designator
|
||||
CAirlineIcaoCodeList findByInvalidDesignator() const;
|
||||
|
||||
//! Best selection by given pattern
|
||||
CAirlineIcaoCode smartAirlineIcaoSelector(const CAirlineIcaoCode &icaoPattern, const CCallsign &callsign) const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user