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:
Klaus Basan
2017-04-07 18:52:05 +02:00
committed by Mathew Sutcliffe
parent 4bb29de652
commit 5c32a912f3
7 changed files with 71 additions and 8 deletions

View File

@@ -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; }

View File

@@ -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(); }

View File

@@ -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;

View File

@@ -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; }

View File

@@ -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;