Skip to content

v0.2.47..v0.2.48 changeset OsmPbfReaderTest.cpp

Garret Voltz edited this page Sep 27, 2019 · 1 revision
diff --git a/hoot-core-test/src/test/cpp/hoot/core/io/OsmPbfReaderTest.cpp b/hoot-core-test/src/test/cpp/hoot/core/io/OsmPbfReaderTest.cpp
index f6177f9..7598f4a 100644
--- a/hoot-core-test/src/test/cpp/hoot/core/io/OsmPbfReaderTest.cpp
+++ b/hoot-core-test/src/test/cpp/hoot/core/io/OsmPbfReaderTest.cpp
@@ -34,6 +34,8 @@
 #include <hoot/core/io/OsmMapReaderFactory.h>
 #include <hoot/core/util/Log.h>
 #include <hoot/core/schema/MetadataTags.h>
+#include <hoot/core/io/OsmJsonReader.h>
+#include <hoot/core/util/MapProjector.h>
 using namespace hoot::pb;
 
 // CPP Unit
@@ -77,8 +79,8 @@ class OsmPbfReaderTest : public HootTestFixture
 public:
 
   OsmPbfReaderTest()
-    : HootTestFixture("test-files/io/",
-                      "test-output/io/")
+    : HootTestFixture("test-files/io/OsmPbfReaderTest/",
+                      "test-output/io/OsmPbfReaderTest/")
   {
     setResetType(ResetAll);
   }
@@ -230,15 +232,19 @@ public:
     reader.setPermissive(true);
     reader.parseElements(&ss, map);
 
+    OsmJsonWriter writer;
+    writer.setIncludeCompatibilityTags(false);
+    const QString actual = writer.toString(map);
     HOOT_STR_EQUALS("{\"version\": 0.6,\"generator\": \"Hootenanny\",\"elements\": [\n"
                     "{\"type\":\"relation\",\"id\":42,\"members\":[\n"
                     "{\"type\":\"node\",\"ref\":1,\"role\":\"s\"},\n"
                     "{\"type\":\"node\",\"ref\":2,\"role\":\"t\"},\n"
                     "{\"type\":\"node\",\"ref\":3,\"role\":\"u\"},\n"
                     "{\"type\":\"way\",\"ref\":1,\"role\":\"f\"},\n"
-                    "{\"type\":\"relation\",\"ref\":1,\"role\":\"f\"}],\"tags\":{\"highway\":\"road\",\"note\":\"test tag\",\"hello\":\"world\",\"" + MetadataTags::ErrorCircular() + "\":\"1.7\"}]\n"
+                    "{\"type\":\"relation\",\"ref\":1,\"role\":\"f\"}],\"tags\":{\"highway\":\"road\",\"note\":\"test tag\",\"hello\":\"world\",\"" + MetadataTags::ErrorCircular() + "\":\"1.7\"}}]\n"
                     "}\n",
-                    OsmJsonWriter().toString(map))
+                    actual);
+    CPPUNIT_ASSERT(OsmJsonReader().isValidJson(actual));
   }
 
   void runReadWayTest()
@@ -298,27 +304,14 @@ public:
     OsmMapPtr map(new OsmMap());
     uut.parse(&input, map);
 
-    HOOT_STR_EQUALS("{\"version\": 0.6,\"generator\": \"Hootenanny\",\"elements\": [\n"
-                    "{\"type\":\"node\",\"id\":-1,\"lat\":39.5918365,\"lon\":-104.8046341},\n"
-                    "{\"type\":\"node\",\"id\":-2,\"lat\":39.5918286,\"lon\":-104.8037526},\n"
-                    "{\"type\":\"node\",\"id\":-3,\"lat\":39.5912317,\"lon\":-104.8037465},\n"
-                    "{\"type\":\"node\",\"id\":-4,\"lat\":39.591165,\"lon\":-104.8037458},\n"
-                    "{\"type\":\"node\",\"id\":-5,\"lat\":39.5911571,\"lon\":-104.8046392},\n"
-                    "{\"type\":\"node\",\"id\":-6,\"lat\":39.59184430000001,\"lon\":-104.8051495},\n"
-                    "{\"type\":\"node\",\"id\":-7,\"lat\":39.5909325,\"lon\":-104.8046409},\n"
-                    "{\"type\":\"node\",\"id\":-8,\"lat\":39.5909325,\"lon\":-104.8048206},\n"
-                    "{\"type\":\"node\",\"id\":-9,\"lat\":39.5910657,\"lon\":-104.8048206},\n"
-                    "{\"type\":\"node\",\"id\":-10,\"lat\":39.5910631,\"lon\":-104.8051528},\n"
-                    "{\"type\":\"node\",\"id\":-11,\"lat\":39.5909403,\"lon\":-104.8037425},\n"
-                    "{\"type\":\"way\",\"id\":-3,\"nodes\":[-1,-2,-3,-4,-5,-1],\"tags\":{\"name\":\"Target - Aurora South\",\"building\":\"yes\",\"" + MetadataTags::Ref2() + "\":\"Target\",\"" + MetadataTags::ErrorCircular() + "\":\"15\"},\n"
-                    "{\"type\":\"way\",\"id\":-2,\"nodes\":[-6,-1,-5,-7,-8,-9,-10,-6],\"tags\":{\"name\":\"Target Grocery\",\"building\":\"yes\",\"" + MetadataTags::Ref2() + "\":\"Target\",\"" + MetadataTags::ErrorCircular() + "\":\"15\"},\n"
-                    "{\"type\":\"way\",\"id\":-1,\"nodes\":[-5,-4,-11,-7,-5],\"tags\":{\"name\":\"Target Pharmacy\",\"building\":\"yes\",\"" + MetadataTags::Ref2() + "\":\"Target\",\"" + MetadataTags::ErrorCircular() + "\":\"15\"},\n"
-                    "{\"type\":\"relation\",\"id\":-1,\"members\":[\n"
-                    "{\"type\":\"way\",\"ref\":-567,\"role\":\"role1\"},\n"
-                    "{\"type\":\"way\",\"ref\":-569,\"role\":\"role2\"},\n"
-                    "{\"type\":\"way\",\"ref\":-568,\"role\":\"role3\"}],\"tags\":{\"foo\":\"bar\",\"" + MetadataTags::ErrorCircular() + "\":\"15\"}]\n"
-                    "}\n",
-                    OsmJsonWriter().toString(map));
+    const QString testFileName = "runToyRelationTest.json";
+    OsmJsonWriter writer;
+    writer.setIncludeCompatibilityTags(false);
+    writer.open(_outputPath + testFileName);
+    MapProjector::projectToWgs84(map);
+    writer.write(map);
+    writer.close();
+    HOOT_FILE_EQUALS(_inputPath + testFileName, _outputPath + testFileName);
   }
 
   void runIsSupportedUrlExistsTest()
@@ -413,8 +406,9 @@ public:
     //Suppress the warning from the OsmXmlReader about missing nodes for ways by temporarily changing
     //the log level.  We expect the nodes to be missing since we're doing partial map reads and
     //don't need to see the messages.
-    Log::WarningLevel loglLevel = Log::getInstance().getLevel();
-    Log::getInstance().setLevel(Log::Error);
+    Log::WarningLevel logLevel = Log::getInstance().getLevel();
+    if (Log::getInstance().getLevel() >= Log::Info)
+      Log::getInstance().setLevel(Log::Error);
 
     int ctr = 0;
     while (reader.hasMoreElements())
@@ -434,7 +428,7 @@ public:
       ctr++;
       CPPUNIT_ASSERT(ctr < 5);  //to prevent an infinite loop if hasMoreElements fails
     }
-    Log::getInstance().setLevel(loglLevel);
+    Log::getInstance().setLevel(logLevel);
     reader.finalizePartial();
 
     CPPUNIT_ASSERT_EQUAL(4, ctr);
@@ -454,8 +448,9 @@ public:
     //Suppress the warning from the OsmXmlReader about missing nodes for ways by temporarily changing
     //the log level.  We expect the nodes to be missing since we're doing partial map reads and
     //don't need to see the messages.
-    Log::WarningLevel loglLevel = Log::getInstance().getLevel();
-    Log::getInstance().setLevel(Log::Error);
+    Log::WarningLevel logLevel = Log::getInstance().getLevel();
+    if (Log::getInstance().getLevel() >= Log::Info)
+      Log::getInstance().setLevel(Log::Error);
 
     int ctr = 0;
     while (reader.hasMoreElements())
@@ -478,14 +473,13 @@ public:
       ctr++;
       CPPUNIT_ASSERT(ctr < 5);  //to prevent an infinite loop if hasMoreElements fails
     }
-    Log::getInstance().setLevel(loglLevel);
+    Log::getInstance().setLevel(logLevel);
     reader.finalizePartial();
 
     CPPUNIT_ASSERT_EQUAL(4, ctr);
   }
 
-  void runHasMoreElementsTest(
-      void )
+  void runHasMoreElementsTest()
   {
     OsmPbfReader reader1;
 
@@ -505,8 +499,7 @@ public:
     CPPUNIT_ASSERT_EQUAL(reader3.hasMoreElements(), false);
   }
 
-  void runReadNextElementTest(
-      void )
+  void runReadNextElementTest()
   {
     OsmPbfReader reader(QString("test-files/ToyTestA.osm.pbf"));
 
@@ -548,8 +541,9 @@ public:
     //Suppress the warning from the OsmXmlReader about missing nodes for ways by temporarily changing
     //the log level.  We expect the nodes to be missing since we're doing partial map reads and
     //don't need to see the messages.
-    Log::WarningLevel loglLevel = Log::getInstance().getLevel();
-    Log::getInstance().setLevel(Log::Error);
+    Log::WarningLevel logLevel = Log::getInstance().getLevel();
+    if (Log::getInstance().getLevel() >= Log::Info)
+      Log::getInstance().setLevel(Log::Error);
     reader1.read(map1);
 
     CPPUNIT_ASSERT_EQUAL(false, reader1.getSortedTypeThenId());
@@ -567,7 +561,7 @@ public:
     reader2.setPermissive(false);
 
     reader2.read(map2);
-    Log::getInstance().setLevel(loglLevel);
+    Log::getInstance().setLevel(logLevel);
 
     CPPUNIT_ASSERT_EQUAL(false, reader2.getSortedTypeThenId());
     CPPUNIT_ASSERT_EQUAL(6, (int)map2->getNodes().size());
@@ -578,8 +572,6 @@ public:
   }
 };
 
-
-//CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(OsmPbfReaderTest, "current");
 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(OsmPbfReaderTest, "quick");
 
 }
Clone this wiki locally