summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2018-12-23 12:46:45 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-01-09 20:58:04 -0800
commit1593f2ebad25244fefabe606b32ee505d4d6087d (patch)
treea47251b4247cbe0c2b5b2fa568179f8abc4c25f9 /tests
parentf542dc4030dda5dac1da1cc928f7a40a50919c4d (diff)
downloadsubsurface-1593f2ebad25244fefabe606b32ee505d4d6087d.tar.gz
Import: merge dives trip-wise
The old way of merging log-files was not well defined: Trips were recognized as the same if and only if the first dives started at the same instant. Later dives did not matter. Change this to merge dives if they are overlapping. Moreover, on parsing and download generate trips in a separate trip-table. This will be fundamental for undo of dive-import: Firstly, we don't want to mix trips of imported and not-yet imported dives. Secondly, by merging trip-wise, we can autogroup the dives in the import-data to trips and merge these at once. This will simplify the code to decide to which trip dives should be autogrouped. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'tests')
-rw-r--r--tests/testmerge.cpp18
-rw-r--r--tests/testrenumber.cpp6
2 files changed, 14 insertions, 10 deletions
diff --git a/tests/testmerge.cpp b/tests/testmerge.cpp
index 42bac30cf..73856804d 100644
--- a/tests/testmerge.cpp
+++ b/tests/testmerge.cpp
@@ -22,10 +22,11 @@ void TestMerge::testMergeEmpty()
* check that we correctly merge mixed cylinder dives
*/
struct dive_table table = { 0 };
- QCOMPARE(parse_file(SUBSURFACE_TEST_DATA "/dives/test47.xml", &table, &trip_table), 0);
- process_imported_dives(&table, false, false);
- QCOMPARE(parse_file(SUBSURFACE_TEST_DATA "/dives/test48.xml", &table, &trip_table), 0);
- process_imported_dives(&table, false, false);
+ struct trip_table trips = { 0 };
+ QCOMPARE(parse_file(SUBSURFACE_TEST_DATA "/dives/test47.xml", &table, &trips), 0);
+ process_imported_dives(&table, &trips, false, false);
+ QCOMPARE(parse_file(SUBSURFACE_TEST_DATA "/dives/test48.xml", &table, &trips), 0);
+ process_imported_dives(&table, &trips, false, false);
QCOMPARE(save_dives("./testmerge47+48.ssrf"), 0);
QFile org(SUBSURFACE_TEST_DATA "/dives/test47+48.xml");
org.open(QFile::ReadOnly);
@@ -46,10 +47,11 @@ void TestMerge::testMergeBackwards()
* check that we correctly merge mixed cylinder dives
*/
struct dive_table table = { 0 };
- QCOMPARE(parse_file(SUBSURFACE_TEST_DATA "/dives/test48.xml", &table, &trip_table), 0);
- process_imported_dives(&table, false, false);
- QCOMPARE(parse_file(SUBSURFACE_TEST_DATA "/dives/test47.xml", &table, &trip_table), 0);
- process_imported_dives(&table, false, false);
+ struct trip_table trips = { 0 };
+ QCOMPARE(parse_file(SUBSURFACE_TEST_DATA "/dives/test48.xml", &table, &trips), 0);
+ process_imported_dives(&table, &trips, false, false);
+ QCOMPARE(parse_file(SUBSURFACE_TEST_DATA "/dives/test47.xml", &table, &trips), 0);
+ process_imported_dives(&table, &trips, false, false);
QCOMPARE(save_dives("./testmerge47+48.ssrf"), 0);
QFile org(SUBSURFACE_TEST_DATA "/dives/test47+48.xml");
org.open(QFile::ReadOnly);
diff --git a/tests/testrenumber.cpp b/tests/testrenumber.cpp
index b2075a849..e69a276ca 100644
--- a/tests/testrenumber.cpp
+++ b/tests/testrenumber.cpp
@@ -14,8 +14,9 @@ void TestRenumber::setup()
void TestRenumber::testMerge()
{
struct dive_table table = { 0 };
+ struct trip_table trips = { 0 };
QCOMPARE(parse_file(SUBSURFACE_TEST_DATA "/dives/test47b.xml", &table, &trip_table), 0);
- process_imported_dives(&table, false, false);
+ process_imported_dives(&table, &trips, false, false);
QCOMPARE(dive_table.nr, 1);
QCOMPARE(unsaved_changes(), 1);
mark_divelist_changed(false);
@@ -24,8 +25,9 @@ void TestRenumber::testMerge()
void TestRenumber::testMergeAndAppend()
{
struct dive_table table = { 0 };
+ struct trip_table trips = { 0 };
QCOMPARE(parse_file(SUBSURFACE_TEST_DATA "/dives/test47c.xml", &table, &trip_table), 0);
- process_imported_dives(&table, false, false);
+ process_imported_dives(&table, &trips, false, false);
QCOMPARE(dive_table.nr, 2);
QCOMPARE(unsaved_changes(), 1);
struct dive *d = get_dive(1);