summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorGravatar willemferguson <willemferguson@zoology.up.ac.za>2019-04-30 12:42:33 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-05-15 07:37:14 -0700
commit1bdf00b2b472078a0b24f1c269782d822cb96e02 (patch)
tree13a5e784118d9abb0a1bc1dfa9cbe4a9f457de80 /tests
parentca6aa3813956b5e8be68b86ed36a5786b3ee746f (diff)
downloadsubsurface-1bdf00b2b472078a0b24f1c269782d822cb96e02.tar.gz
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 <willemferguson@zoology.up.ac.za>
Diffstat (limited to 'tests')
-rw-r--r--tests/CMakeLists.txt2
-rw-r--r--tests/testAirPressure.cpp63
-rw-r--r--tests/testAirPressure.h19
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
+
+