From acd791b7c14a9f28cd65dbd62df489b8c0088f26 Mon Sep 17 00:00:00 2001 From: Miika Turkia Date: Tue, 14 Mar 2017 06:58:59 +0200 Subject: 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 --- tests/testparse.cpp | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/testparse.h | 4 +++ 2 files changed, 93 insertions(+) (limited to 'tests') 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; }; -- cgit v1.2.3-70-g09d2