refs #369, fixed / adjusted testing and samples

* changed from qDebug() to QTextStream
* setter for voice room
* set fake voice room URL, otherwise no nonger displayed in GUI
This commit is contained in:
Klaus Basan
2015-02-11 02:32:40 +01:00
parent 9fcc5674d6
commit 1da3f58fec
6 changed files with 36 additions and 30 deletions

View File

@@ -56,7 +56,7 @@ int main(int argc, char *argv[])
else if (s.startsWith("3")) { CSamplesContainer::samples(); }
else if (s.startsWith("4")) { CSamplesMetadata::samples(); }
else if (s.startsWith("5")) { CSamplesVariant::samples(); }
else if (s.startsWith("6")) { CSamplesPerformance::samples(); }
else if (s.startsWith("6")) { CSamplesPerformance::samples(qtout); }
else if (s.startsWith("7")) { CSamplesAlgorithm::samples(); }
else if (s.startsWith("8")) { CSamplesConcurrent::samples(s, qtout, qtin); }
else if (s.startsWith("x")) { break; }

View File

@@ -18,7 +18,7 @@ namespace BlackMiscTest
/*
* Samples
*/
int CSamplesPerformance::samples()
int CSamplesPerformance::samples(QTextStream &out)
{
QTime timer;
int ms, number;
@@ -28,88 +28,88 @@ namespace BlackMiscTest
timer.start();
CAtcStationList atcs1 = BlackMisc::Aviation::CTesting::createAtcStations(10000);
ms = timer.elapsed();
qDebug() << "created (copy)" << atcs1.size() << "ATC stations in" << ms << "ms";
out << "created (copy) " << atcs1.size() << " ATC stations in " << ms << "ms" << endl;
timer.start();
CAtcStationList atcs2 = BlackMisc::Aviation::CTesting::createAtcStations(100000);
ms = timer.elapsed();
qDebug() << "created (copy)" << atcs2.size() << "ATC stations in" << ms << "ms";
out << "created (copy) " << atcs2.size() << " ATC stations in " << ms << "ms" << endl;
// ATC stations, property index created
timer.start();
CAtcStationList atcs3 = BlackMisc::Aviation::CTesting::createAtcStations(10000, true);
ms = timer.elapsed();
qDebug() << "created (propertyIndex)" << atcs3.size() << "ATC stations in" << ms << "ms";
out << "created (propertyIndex) " << atcs3.size() << " ATC stations in " << ms << "ms" << endl;
timer.start();
CAtcStationList atcs4 = BlackMisc::Aviation::CTesting::createAtcStations(100000, true);
ms = timer.elapsed();
qDebug() << "created (propertyIndex)" << atcs4.size() << "ATC stations in" << ms << "ms";
out << "created (propertyIndex) " << atcs4.size() << " ATC stations in " << ms << "ms" << endl;
// Sort by
timer.start();
atcs1.sortBy(&CAtcStation::getCallsign);
ms = timer.elapsed();
qDebug() << "Sorted by callsign" << atcs1.size() << "ATC stations in" << ms << "ms";
out << "Sorted by callsign " << atcs1.size() << " ATC stations in " << ms << "ms" << endl;
timer.start();
atcs2.sortBy(&CAtcStation::getCallsign);
ms = timer.elapsed();
qDebug() << "Sorted by callsign" << atcs2.size() << "ATC stations in" << ms << "ms";
out << "Sorted by callsign " << atcs2.size() << " ATC stations in " << ms << "ms" << endl;
// Read data, this is what all our models do when displaying in a table view
timer.start();
BlackMisc::Aviation::CTesting::readStations(atcs1, false);
ms = timer.elapsed();
qDebug() << "Read (getters)" << atcs1.size() << "ATC stations in" << ms << "ms";
out << "Read (getters) " << atcs1.size() << " ATC stations in " << ms << "ms" << endl;
timer.start();
BlackMisc::Aviation::CTesting::readStations(atcs2, false);
ms = timer.elapsed();
qDebug() << "Read (getters)" << atcs2.size() << "ATC stations in" << ms << "ms";
out << "Read (getters) " << atcs2.size() << " ATC stations in " << ms << "ms" << endl;
timer.start();
BlackMisc::Aviation::CTesting::readStations(atcs1, true);
ms = timer.elapsed();
qDebug() << "Read (propertyIndex)" << atcs1.size() << "ATC stations in" << ms << "ms";
out << "Read (propertyIndex) " << atcs1.size() << " ATC stations in " << ms << "ms" << endl;
timer.start();
BlackMisc::Aviation::CTesting::readStations(atcs2, true);
ms = timer.elapsed();
qDebug() << "Read (propertyIndex)" << atcs2.size() << "ATC stations in" << ms << "ms";
out << "Read (propertyIndex) " << atcs2.size() << " ATC stations in " << ms << "ms" << endl;
// calculate
number = 10000;
timer.start();
BlackMisc::Aviation::CTesting::calculateDistance(number);
ms = timer.elapsed();
qDebug() << "Calculated distances " << number << "in" << ms << "ms";
out << "Calculated distances " << number << " in " << ms << "ms" << endl;
number = 100000;
timer.start();
BlackMisc::Aviation::CTesting::calculateDistance(number);
ms = timer.elapsed();
qDebug() << "Calculated distances " << number << "in" << ms << "ms";
out << "Calculated distances " << number << "in " << ms << "ms" << endl;
// parse
number = 100000;
timer.start();
BlackMisc::Aviation::CTesting::parseWgs(number);
ms = timer.elapsed();
qDebug() << "Parse WGS coordinates" << number << "in" << ms << "ms";
out << "Parse WGS coordinates " << number << " in " << ms << "ms" << endl;
// copy
timer.start();
number = 20;
BlackMisc::Aviation::CTesting::copy10kStations(number);
ms = timer.elapsed();
qDebug() << "Copied 10k stations" << number << "times in" << ms << "ms";
out << "Copied 10k stations " << number << " times in " << ms << "ms" << endl;
timer.start();
number = 100;
BlackMisc::Aviation::CTesting::copy10kStations(number);
ms = timer.elapsed();
qDebug() << "Copied 10k stations" << number << "times in" << ms << "ms";
out << "Copied 10k stations " << number << " times in " << ms << "ms" << endl;
// Regex pattern matching with lists of 10000 strings containing random hex numbers
auto generator = []() { return QString::number(qrand() | (qrand() << 16), 16); };
@@ -126,24 +126,24 @@ namespace BlackMiscTest
timer.start();
for (const auto &str : strList1) { if (newRegex.match(str).hasMatch()) number++; }
ms = timer.elapsed();
qDebug() << "new regex matched" << number << "of" << strList1.size() << "strings in" << ms << "ms";
out << "new regex matched " << number << " of" << strList1.size() << " strings in " << ms << "ms" << endl;
number = 0;
timer.start();
for (const auto &str : strList2) { if (fullRegex.exactMatch(str)) number++; }
ms = timer.elapsed();
qDebug() << "full regex matched" << number << "of" << strList2.size() << "strings in" << ms << "ms";
out << "full regex matched " << number << " of" << strList2.size() << " strings in " << ms << "ms" << endl;
number = 0;
timer.start();
for (const auto &str : strList3) { if (wildcardRegex.exactMatch(str)) number++; }
ms = timer.elapsed();
qDebug() << "wildcard matched" << number << "of" << strList3.size() << "strings in" << ms << "ms";
out << "wildcard matched " << number << " of " << strList3.size() << " strings in " << ms << "ms" << endl;
number = 0;
timer.start();
for (const auto &str : strList4) { if (str.contains(containsStr)) number++; }
ms = timer.elapsed();
qDebug() << "contains matched" << number << "of" << strList4.size() << "strings in" << ms << "ms";
out << "contains matched " << number << " of " << strList4.size() << " strings in " << ms << "ms" << endl;
qDebug() << "-----------------------------------------------";
out << "-----------------------------------------------" << endl;
return 0;
}

View File

@@ -12,6 +12,8 @@
#ifndef BLACKMISCTEST_SAMPLESPERFORMANCEINDEX_H
#define BLACKMISCTEST_SAMPLESPERFORMANCEINDEX_H
#include <QTextStream>
namespace BlackMiscTest
{
//! Samples for our containers
@@ -19,7 +21,7 @@ namespace BlackMiscTest
{
public:
//! Run the samples
static int samples();
static int samples(QTextStream &out);
};
} // namespace

View File

@@ -160,6 +160,9 @@ namespace BlackMisc
//! Set voice room
void setVoiceRoom(const BlackMisc::Audio::CVoiceRoom &voiceRoom) { this->m_voiceRoom = voiceRoom; }
//! Set voice room URL
void setVoiceRoomUrl(const QString &url) { this->m_voiceRoom.setVoiceRoomUrl(url); }
//! Valid voice room?
bool hasValidVoiceRoom() const { return this->m_voiceRoom.isValid(); }

View File

@@ -44,9 +44,9 @@ namespace BlackMisc
const QDateTime dtUntil = dtFrom.addSecs(60 * 60.0); // 1 hour
const CUser user(id, usr);
CAtcStation station;
if (byPropertyIndex)
{
CAtcStation station;
station.setPropertyByIndex(CCallsign(cs).toCVariant(), CAtcStation::IndexCallsign);
station.setPropertyByIndex(user.toCVariant(), CAtcStation::IndexController);
station.setPropertyByIndex(CFrequency(f, CFrequencyUnit::MHz()).toCVariant(), CAtcStation::IndexFrequency);
@@ -56,16 +56,17 @@ namespace BlackMisc
station.setPropertyByIndex(CVariant::from(dtFrom), CAtcStation::IndexBookedFrom);
station.setPropertyByIndex(CVariant::from(dtUntil), CAtcStation::IndexBookedUntil);
station.setPropertyByIndex(CLength(index + 1, CLengthUnit::NM()).toCVariant(), CAtcStation::IndexDistanceToOwnAircraft);
return station;
}
else
{
CAtcStation station(CCallsign(cs), user,
CFrequency(f, CFrequencyUnit::MHz()),
geoPos, CLength(50, CLengthUnit::km()), false, dtFrom, dtUntil);
station = CAtcStation(CCallsign(cs), user,
CFrequency(f, CFrequencyUnit::MHz()),
geoPos, CLength(50, CLengthUnit::km()), false, dtFrom, dtUntil);
station.setDistanceToOwnAircraft(CLength(index + 1, CLengthUnit::NM()));
return station;
}
station.setVoiceRoomUrl("vvl://foo.bar.baz/room" + QString::number(index));
return station;
}
void CTesting::readStations(const CAtcStationList &stations, bool byPropertyIndex)

View File

@@ -127,7 +127,7 @@ namespace BlackMisc
QString url = serverUrl.trimmed().toLower();
url.replace(CVoiceRoom::protocolComplete(), "");
url.replace(CVoiceRoom::protocol(), "");
QStringList splitParts = serverUrl.split("/");
QStringList splitParts = url.split("/");
m_hostname = splitParts.at(0);
m_channel = splitParts.at(1);
}