summaryrefslogtreecommitdiffstats
path: root/tests/testAirPressure.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/testAirPressure.cpp')
-rw-r--r--tests/testAirPressure.cpp63
1 files changed, 63 insertions, 0 deletions
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)