From 1bdf00b2b472078a0b24f1c269782d822cb96e02 Mon Sep 17 00:00:00 2001 From: willemferguson Date: Tue, 30 Apr 2019 12:42:33 +0200 Subject: Convert the atmospheric pressure in the Information Tab to an editable field The Information tab shows the atmospheric pressure. Make this value editable and also ensure that changes to it are undo-able. Signed-off-by: willemferguson --- tests/testAirPressure.cpp | 63 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 tests/testAirPressure.cpp (limited to 'tests/testAirPressure.cpp') 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 +#include + +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) -- cgit v1.2.3-70-g09d2