From ce79b9ffa4062cc3976838cb9a5fedd31f2f3614 Mon Sep 17 00:00:00 2001 From: Patrick Valsecchi Date: Mon, 23 Feb 2015 13:38:41 +0100 Subject: Add support for more GPS coordinate formats. As requested in the user forum and in the mailing list, now support: - 46.473881 6.784696 (format used in XML files) - 48 51.491n 2 17.677e I was not able to handle the XML format in a generic way without making the code too ugly. So I've added an exception. Signed-off-by: Patrick Valsecchi Signed-off-by: Dirk Hohndel --- tests/testgpscoords.cpp | 23 +++++++++++++++++++++++ tests/testgpscoords.h | 4 ++++ 2 files changed, 27 insertions(+) (limited to 'tests') diff --git a/tests/testgpscoords.cpp b/tests/testgpscoords.cpp index a38dcc807..c5a4d22a4 100644 --- a/tests/testgpscoords.cpp +++ b/tests/testgpscoords.cpp @@ -77,6 +77,29 @@ void TestGpsCoords::testSpaceDecimalParse() coord2double(52.83), coord2double(1.61)); } +void TestGpsCoords::testXmlFormatParse() +{ + testParseOK("46.473881 6.784696", + coord2double(46.473881), coord2double(6.784696)); +} + +void TestGpsCoords::testNegativeXmlFormatParse() +{ + testParseOK("46.473881 -6.784696", + coord2double(46.473881), -coord2double(6.784696)); +} + +void TestGpsCoords::testNoUnitParse() +{ + testParseOK("48 51.491n 2 17.677e", + coord2double(48, 51.491), coord2double(2, 17.677)); +} + +void TestGpsCoords::testPrefixNoUnitParse() +{ + testParseOK("n48 51.491 w2 17.677", + coord2double(48, 51.491), -coord2double(2, 17.677)); +} void TestGpsCoords::testParseOK(const QString &txt, double expectedLat, double expectedLon) diff --git a/tests/testgpscoords.h b/tests/testgpscoords.h index 5add3da93..784bc302e 100644 --- a/tests/testgpscoords.h +++ b/tests/testgpscoords.h @@ -18,6 +18,10 @@ private slots: void testDecimalParse(); void testSpaceDecimalParse(); void testDecimalInversedParse(); + void testXmlFormatParse(); + void testNoUnitParse(); + void testNegativeXmlFormatParse(); + void testPrefixNoUnitParse(); private: static void testParseOK(const QString &txt, double expectedLat, -- cgit v1.2.3-70-g09d2