From 49ac9b08f79bc49cb272725837b25598ada17a1e Mon Sep 17 00:00:00 2001 From: Paul Colby Date: Sat, 6 Sep 2014 08:45:19 +1000 Subject: [PATCH] Add TrainingSession::LapNames tests --- .../testdata/training-sessions-19401412.hrm | 8 -- .../training-sessions-19401412.rr.hrm | 8 -- .../testdata/training-sessions-22165267.hrm | 11 -- .../training-sessions-22165267.rr.hrm | 11 -- test/polar/v2/testtrainingsession.cpp | 130 ++++++++++++++++++ test/polar/v2/testtrainingsession.h | 6 + 6 files changed, 136 insertions(+), 38 deletions(-) diff --git a/test/polar/v2/testdata/training-sessions-19401412.hrm b/test/polar/v2/testdata/training-sessions-19401412.hrm index 8e41ff94..9f8b57c0 100644 --- a/test/polar/v2/testdata/training-sessions-19401412.hrm +++ b/test/polar/v2/testdata/training-sessions-19401412.hrm @@ -87,14 +87,6 @@ Pedaling Index Max Incline Degrees 90 0 -[LapNames] -1 1 -2 1 -3 1 -4 1 -5 2 -6 1 - [Summary-123] 5239 0 0 2760 2479 0 0 0 0 0 0 0 diff --git a/test/polar/v2/testdata/training-sessions-19401412.rr.hrm b/test/polar/v2/testdata/training-sessions-19401412.rr.hrm index ad713f36..40e9d961 100644 --- a/test/polar/v2/testdata/training-sessions-19401412.rr.hrm +++ b/test/polar/v2/testdata/training-sessions-19401412.rr.hrm @@ -87,14 +87,6 @@ Pedaling Index Max Incline Degrees 90 0 -[LapNames] -1 1 -2 1 -3 1 -4 1 -5 2 -6 1 - [Summary-123] 5239 0 0 2760 2479 0 0 0 0 0 0 0 diff --git a/test/polar/v2/testdata/training-sessions-22165267.hrm b/test/polar/v2/testdata/training-sessions-22165267.hrm index a0260a4d..f5406ebd 100644 --- a/test/polar/v2/testdata/training-sessions-22165267.hrm +++ b/test/polar/v2/testdata/training-sessions-22165267.hrm @@ -105,17 +105,6 @@ Pedaling Index Max Incline Degrees 90 0 -[LapNames] -1 2 -2 2 -3 2 -4 2 -5 2 -6 2 -7 2 -8 2 -9 2 - [Summary-123] 2131 127 0 1957 47 0 0 0 0 0 0 0 diff --git a/test/polar/v2/testdata/training-sessions-22165267.rr.hrm b/test/polar/v2/testdata/training-sessions-22165267.rr.hrm index e824cafd..5261fafd 100644 --- a/test/polar/v2/testdata/training-sessions-22165267.rr.hrm +++ b/test/polar/v2/testdata/training-sessions-22165267.rr.hrm @@ -105,17 +105,6 @@ Pedaling Index Max Incline Degrees 90 0 -[LapNames] -1 2 -2 2 -3 2 -4 2 -5 2 -6 2 -7 2 -8 2 -9 2 - [Summary-123] 2131 127 0 1957 47 0 0 0 0 0 0 0 diff --git a/test/polar/v2/testtrainingsession.cpp b/test/polar/v2/testtrainingsession.cpp index e8135bf8..edb8c9f9 100644 --- a/test/polar/v2/testtrainingsession.cpp +++ b/test/polar/v2/testtrainingsession.cpp @@ -834,6 +834,7 @@ void TestTrainingSession::toHRM() // Parse the route (protobuf) message. polar::v2::TrainingSession session(baseName); QVERIFY(session.parse()); + session.setHrmOption(polar::v2::TrainingSession::LapNames, false); const QStringList hrm = session.toHRM(false); // Write the result to a text file for optional post-mortem investigations. @@ -858,6 +859,134 @@ void TestTrainingSession::toHRM() QCOMPARE(hrm, expected); } +void TestTrainingSession::toHRM_LapNames_data() +{ + QTest::addColumn("baseName"); + QTest::addColumn("expected"); + + #define LOAD_TEST_DATA(name, expectedCount) { \ + QString baseName; \ + QStringList expected; \ + for (int count = 0; count < expectedCount; ++count) { \ + QFile expectedFile(QFINDTESTDATA((expectedCount == 1) \ + ? QString::fromLatin1("testdata/" name ".LapNames.hrm") \ + : QString::fromLatin1("testdata/" name ".%1.LapNames.hrm").arg(count) \ + )); \ + expectedFile.open(QIODevice::ReadOnly); \ + expected.append(QString::fromLatin1(expectedFile.readAll())); \ + if (baseName.isEmpty()) { \ + baseName = expectedFile.fileName(); \ + baseName.chop((expectedCount == 1) ? 13 : 15); \ + } \ + } \ + QTest::newRow(name) << baseName << expected; \ + } + + LOAD_TEST_DATA("training-sessions-19401412", 1); + LOAD_TEST_DATA("training-sessions-19946380", 1); + LOAD_TEST_DATA("training-sessions-22165267", 1); + + #undef LOAD_TEST_DATA +} + +void TestTrainingSession::toHRM_LapNames() +{ + QFETCH(QString, baseName); + QFETCH(QStringList, expected); + qDebug() << baseName; + + // Parse the route (protobuf) message. + polar::v2::TrainingSession session(baseName); + QVERIFY(session.parse()); + session.setHrmOption(polar::v2::TrainingSession::LapNames); + const QStringList hrm = session.toHRM(false); + + // Write the result to a text file for optional post-mortem investigations. + for (int index = 0; index < hrm.length(); ++index) { + QString fileName; +#ifndef Q_OS_WIN + fileName = QLatin1String("../"); +#endif + fileName += QString::fromLatin1("polar/v2/testdata/%1.result") + .arg(QLatin1String(QTest::currentDataTag())); + if (hrm.length() != 1) { + fileName += QString::fromLatin1(".%1").arg(index); + } + fileName += QString::fromLatin1(".hrm"); + QFile file(fileName); + if (file.open(QIODevice::WriteOnly|QIODevice::Truncate)) { + file.write(hrm.at(index).toLatin1()); + } + } + + // Compare the generated HRM string against the expected result. + QCOMPARE(hrm, expected); +} + +void TestTrainingSession::toHRM_LapNames_RR_data() +{ + QTest::addColumn("baseName"); + QTest::addColumn("expected"); + + #define LOAD_TEST_DATA(name, expectedCount) { \ + QString baseName; \ + QStringList expected; \ + for (int count = 0; count < expectedCount; ++count) { \ + QFile expectedFile(QFINDTESTDATA((expectedCount == 1) \ + ? QString::fromLatin1("testdata/" name ".rr.LapNames.hrm") \ + : QString::fromLatin1("testdata/" name ".%1.rr.LapNames.hrm").arg(count) \ + )); \ + expectedFile.open(QIODevice::ReadOnly); \ + expected.append(QString::fromLatin1(expectedFile.readAll())); \ + if (baseName.isEmpty()) { \ + baseName = expectedFile.fileName(); \ + baseName.chop((expectedCount == 1) ? 16 : 18); \ + } \ + } \ + QTest::newRow(name) << baseName << expected; \ + } + + LOAD_TEST_DATA("training-sessions-19401412", 1); + LOAD_TEST_DATA("training-sessions-19946380", 1); + LOAD_TEST_DATA("training-sessions-22165267", 1); + + #undef LOAD_TEST_DATA +} + +void TestTrainingSession::toHRM_LapNames_RR() +{ + QFETCH(QString, baseName); + QFETCH(QStringList, expected); + qDebug() << baseName; + + // Parse the route (protobuf) message. + polar::v2::TrainingSession session(baseName); + QVERIFY(session.parse()); + session.setHrmOption(polar::v2::TrainingSession::LapNames); + const QStringList hrm = session.toHRM(true); + + // Write the result to a text file for optional post-mortem investigations. + for (int index = 0; index < hrm.length(); ++index) { + QString fileName; +#ifndef Q_OS_WIN + fileName = QLatin1String("../"); +#endif + fileName += QString::fromLatin1("polar/v2/testdata/%1.result") + .arg(QLatin1String(QTest::currentDataTag())); + if (hrm.length() != 1) { + fileName += QString::fromLatin1(".%1").arg(index); + } + fileName += QString::fromLatin1(".rr.hrm"); + QFile file(fileName); + if (file.open(QIODevice::WriteOnly|QIODevice::Truncate)) { + file.write(hrm.at(index).toLatin1()); + } + } + + // Compare the generated HRM string against the expected result. + QCOMPARE(hrm, expected); +} + void TestTrainingSession::toHRM_RR_data() { QTest::addColumn("baseName"); @@ -897,6 +1026,7 @@ void TestTrainingSession::toHRM_RR() // Parse the route (protobuf) message. polar::v2::TrainingSession session(baseName); QVERIFY(session.parse()); + session.setHrmOption(polar::v2::TrainingSession::LapNames, false); const QStringList hrm = session.toHRM(true); // Write the result to a text file for optional post-mortem investigations. diff --git a/test/polar/v2/testtrainingsession.h b/test/polar/v2/testtrainingsession.h index fa359bf5..13cca64b 100644 --- a/test/polar/v2/testtrainingsession.h +++ b/test/polar/v2/testtrainingsession.h @@ -65,6 +65,12 @@ private slots: void toHRM_data(); void toHRM(); + void toHRM_LapNames_data(); + void toHRM_LapNames(); + + void toHRM_LapNames_RR_data(); + void toHRM_LapNames_RR(); + void toHRM_RR_data(); void toHRM_RR();