diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/CMakeLists.txt | 2 | ||||
-rw-r--r-- | tests/testAirPressure.cpp | 63 | ||||
-rw-r--r-- | tests/testAirPressure.h | 19 |
3 files changed, 84 insertions, 0 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 229054631..887e1b34d 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -92,6 +92,7 @@ TEST(TestUnitConversion testunitconversion.cpp) TEST(TestProfile testprofile.cpp) TEST(TestGpsCoords testgpscoords.cpp) TEST(TestParse testparse.cpp) +TEST(TestAirPressure testAirPressure.cpp) if (BTSUPPORT) TEST(TestHelper testhelper.cpp) endif() @@ -128,6 +129,7 @@ add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} TestParse TestGitStorage TestPlan + TestAirPressure TestDiveSiteDuplication TestRenumber TestPicture diff --git a/tests/testAirPressure.cpp b/tests/testAirPressure.cpp new file mode 100644 index 000000000..aa6b13014 --- /dev/null +++ b/tests/testAirPressure.cpp @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: GPL-2.0 +#include "testAirPressure.h" +#include "core/divesite.h" +#include "core/divelist.h" +#include "core/file.h" +#include "core/dive.h" +#include <QString> +#include <core/qthelper.h> + +void TestAirPressure::initTestCase() +{ + /* we need to manually tell that the resource exists, because we are using it as library. */ + Q_INIT_RESOURCE(subsurface); +} + +void TestAirPressure::get_dives() +{ + struct dive *dive; + verbose = 1; + + QCOMPARE(parse_file(SUBSURFACE_TEST_DATA "/dives/TestAtmPress.xml", &dive_table, &trip_table, &dive_site_table), 0); + dive = get_dive(0); + dive->selected = true; + QVERIFY(dive != NULL); +} + +void TestAirPressure::testReadAirPressure() +{ + struct dive *dive; + dive = get_dive(0); + QVERIFY(dive != NULL); + dive->selected = true; + QCOMPARE(1012, dive->surface_pressure.mbar); + dive = get_dive(1); + QVERIFY(dive != NULL); + dive->selected = true; + QCOMPARE(991, dive->surface_pressure.mbar); +} + +void TestAirPressure::testConvertAltitudetoAirPressure() +{ + QCOMPARE(891,altitude_to_pressure(1000000)); // 1000 m altitude in mm + QCOMPARE(1013,altitude_to_pressure(0)); // sea level +} + +void TestAirPressure::testWriteReadBackAirPressure() +{ + struct dive *dive; + int32_t ap = 1111; + dive = get_dive(0); + QVERIFY(dive != NULL); + dive->selected = true; + dive->surface_pressure.mbar = ap; + QCOMPARE(save_dives("./testout.ssrf"), 0); + clear_dive_file_data(); + QCOMPARE(parse_file("./testout.ssrf", &dive_table, &trip_table, &dive_site_table), 0); + dive = get_dive(0); + QVERIFY(dive != NULL); + dive->selected = true; + QCOMPARE(ap, dive->surface_pressure.mbar); +} + +QTEST_GUILESS_MAIN(TestAirPressure) diff --git a/tests/testAirPressure.h b/tests/testAirPressure.h new file mode 100644 index 000000000..18544eb47 --- /dev/null +++ b/tests/testAirPressure.h @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: GPL-2.0 +#ifndef TESTPICTURE_H +#define TESTPICTURE_H + +#include <QtTest> + +class TestAirPressure : public QObject { + Q_OBJECT +private slots: + void initTestCase(); + void get_dives(); + void testReadAirPressure(); + void testWriteReadBackAirPressure(); + void testConvertAltitudetoAirPressure(); +}; + +#endif + + |