diff options
author | Miika Turkia <miika.turkia@gmail.com> | 2017-03-14 06:58:59 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2017-04-01 08:06:09 -0700 |
commit | acd791b7c14a9f28cd65dbd62df489b8c0088f26 (patch) | |
tree | 9e4f3db91b4c490274869a816691f2b1336cf7f5 | |
parent | a0ed0ff8234ce43c84ac4e03cc513037c5bff8eb (diff) | |
download | subsurface-acd791b7c14a9f28cd65dbd62df489b8c0088f26.tar.gz |
Export-import test for manual CSV
Note that the actual validation of the result is currently disabled, so
the tests will pass even though there are some bugs and rounding errors
present.
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
-rw-r--r-- | tests/testparse.cpp | 89 | ||||
-rw-r--r-- | tests/testparse.h | 4 |
2 files changed, 93 insertions, 0 deletions
diff --git a/tests/testparse.cpp b/tests/testparse.cpp index 4c458eeb2..d54b00c2d 100644 --- a/tests/testparse.cpp +++ b/tests/testparse.cpp @@ -404,4 +404,93 @@ void TestParse::testParseMerge() SUBSURFACE_TEST_DATA "/dives/mergedVyperOstc.xml"); } +int TestParse::parseCSVmanual(int units, std::string file) +{ + verbose = 1; + char *params[55]; + int pnr = 0; + + params[pnr++] = strdup(strdup("numberField")); + params[pnr++] = intdup(0); + params[pnr++] = strdup("dateField"); + params[pnr++] = intdup(1); + params[pnr++] = strdup("timeField"); + params[pnr++] = intdup(2); + params[pnr++] = strdup("durationField"); + params[pnr++] = intdup(3); + params[pnr++] = strdup("locationField"); + params[pnr++] = intdup(13); + params[pnr++] = strdup("gpsField"); + params[pnr++] = intdup(14); + params[pnr++] = strdup("maxDepthField"); + params[pnr++] = intdup(4); + params[pnr++] = strdup("meanDepthField"); + params[pnr++] = intdup(5); + params[pnr++] = strdup("divemasterField"); + params[pnr++] = intdup(15); + params[pnr++] = strdup("buddyField"); + params[pnr++] = intdup(16); + params[pnr++] = strdup("suitField"); + params[pnr++] = intdup(17); + params[pnr++] = strdup("notesField"); + params[pnr++] = intdup(20); + params[pnr++] = strdup("weightField"); + params[pnr++] = intdup(21); + params[pnr++] = strdup("tagsField"); + params[pnr++] = intdup(22); + params[pnr++] = strdup("separatorIndex"); + params[pnr++] = intdup(0); + params[pnr++] = strdup("units"); + params[pnr++] = intdup(units); + params[pnr++] = strdup("datefmt"); + params[pnr++] = intdup(2); + params[pnr++] = strdup("durationfmt"); + params[pnr++] = intdup(2); + params[pnr++] = strdup("cylindersizeField"); + params[pnr++] = intdup(8); + params[pnr++] = strdup("startpressureField"); + params[pnr++] = intdup(9); + params[pnr++] = strdup("endpressureField"); + params[pnr++] = intdup(10); + params[pnr++] = strdup("o2Field"); + params[pnr++] = intdup(11); + params[pnr++] = strdup("heField"); + params[pnr++] = intdup(12); + params[pnr++] = strdup("airtempField"); + params[pnr++] = intdup(6); + params[pnr++] = strdup("watertempField"); + params[pnr++] = intdup(7); + params[pnr++] = NULL; + + return parse_manual_file(file.c_str(), params, pnr - 1); +} + +void TestParse::exportCSVDiveDetails() +{ + parse_file(SUBSURFACE_TEST_DATA "/dives/test40.xml"); + + export_dives_xslt("testcsvexportmanual.csv", 0, 0, "xml2manualcsv.xslt"); + export_dives_xslt("testcsvexportmanualimperial.csv", 0, 1, "xml2manualcsv.xslt"); + + clear_dive_file_data(); + + parseCSVmanual(1, "testcsvexportmanualimperial.csv"); + export_dives_xslt("testcsvexportmanual2.csv", 0, 0, "xml2manualcsv.xslt"); + save_dives("./testing.xml"); + + /* + * Keeping the actual test disabled, until rounding errors and other bugs are fixed + * + + FILE_COMPARE("testcsvexportmanual2.csv", + "testcsvexportmanual.csv"); + */ +} + +void TestParse::testExport() +{ + exportCSVDiveDetails(); +} + + QTEST_GUILESS_MAIN(TestParse) diff --git a/tests/testparse.h b/tests/testparse.h index ae76c0337..934c48dec 100644 --- a/tests/testparse.h +++ b/tests/testparse.h @@ -23,6 +23,10 @@ private slots: void testParseDLD(); void testParseMerge(); + int parseCSVmanual(int, std::string); + void exportCSVDiveDetails(); + void testExport(); + private: sqlite3 *_sqlite3_handle = NULL; }; |