mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
0940ff23b9
As noted in a comment introduced in fe074ccad1
, the profile test
should probably best be run using the default preferences. This
wasn't done back then, because the reference data assumes a (bogus)
setting of modO2 of 0.
This commit runs the test using the default preferences and updates
the reference data accordingly.
This is in preparation of changes to the preference system, where
the preference structure initializes itself to the default values.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
66 lines
2.2 KiB
C++
66 lines
2.2 KiB
C++
// SPDX-License-Identifier: GPL-2.0
|
|
#include "testprofile.h"
|
|
#include "core/device.h"
|
|
#include "core/divelog.h"
|
|
#include "core/divesite.h"
|
|
#include "core/trip.h"
|
|
#include "core/file.h"
|
|
#include "core/save-profiledata.h"
|
|
#include "core/pref.h"
|
|
#include "QTextCodec"
|
|
|
|
// This test compares the content of struct profile against a known reference version for a list
|
|
// of dives to prevent accidental regressions. Thus is you change anything in the profile this
|
|
// test will fail. If this change was intentional, run the test manually. Make sure only the
|
|
// indended fields change (for example by computing a diff between exportprofile.csv and
|
|
// ..dives/exportprofilereference.csv) and copy the former over the later and commit that change
|
|
// as well.
|
|
|
|
void TestProfile::init()
|
|
{
|
|
setlocale(LC_ALL, "C");
|
|
|
|
// Set UTF8 text codec as in real applications
|
|
QTextCodec::setCodecForLocale(QTextCodec::codecForMib(106));
|
|
|
|
// first, setup the preferences
|
|
copy_prefs(&default_prefs, &prefs);
|
|
|
|
QCoreApplication::setOrganizationName("Subsurface");
|
|
QCoreApplication::setOrganizationDomain("subsurface.hohndel.org");
|
|
QCoreApplication::setApplicationName("Subsurface");
|
|
}
|
|
void TestProfile::testProfileExport()
|
|
{
|
|
prefs.planner_deco_mode = BUEHLMANN;
|
|
parse_file(SUBSURFACE_TEST_DATA "/dives/abitofeverything.ssrf", &divelog);
|
|
save_profiledata("exportprofile.csv", false);
|
|
QFile org(SUBSURFACE_TEST_DATA "/dives/exportprofilereference.csv");
|
|
QCOMPARE(org.open(QFile::ReadOnly), true);
|
|
QFile out("exportprofile.csv");
|
|
QCOMPARE(out.open(QFile::ReadOnly), true);
|
|
QTextStream orgS(&org);
|
|
QTextStream outS(&out);
|
|
QString readin = orgS.readAll();
|
|
QString written = outS.readAll();
|
|
QCOMPARE(readin, written);
|
|
|
|
}
|
|
void TestProfile::testProfileExportVPMB()
|
|
{
|
|
prefs.planner_deco_mode = VPMB;
|
|
parse_file(SUBSURFACE_TEST_DATA "/dives/abitofeverything.ssrf", &divelog);
|
|
save_profiledata("exportprofileVPMB.csv", false);
|
|
QFile org(SUBSURFACE_TEST_DATA "/dives/exportprofilereferenceVPMB.csv");
|
|
QCOMPARE(org.open(QFile::ReadOnly), true);
|
|
QFile out("exportprofileVPMB.csv");
|
|
QCOMPARE(out.open(QFile::ReadOnly), true);
|
|
QTextStream orgS(&org);
|
|
QTextStream outS(&out);
|
|
QString readin = orgS.readAll();
|
|
QString written = outS.readAll();
|
|
QCOMPARE(readin, written);
|
|
|
|
}
|
|
|
|
QTEST_GUILESS_MAIN(TestProfile)
|