예제 #1
0
  void runConflateTest()
  {
    Settings testSettings = conf();
    testSettings.set("conflate.enable.old.roads", "false");

    OsmXmlReader reader;
    OsmMapPtr combinedMap(new OsmMap());
    reader.setDefaultStatus(Status::Unknown1);
    reader.setUseDataSourceIds(true);
    reader.read(
      inputPath + "PertyMatchScorerTest-combined-out-1.osm", combinedMap);

    PertyMatchScorer matchScorer;
    matchScorer.setConfiguration(testSettings);
    matchScorer.setSearchDistance(15.0);
    matchScorer.setApplyRubberSheet(true);
    //matchScorer.setConfiguration(testSettings);
    /*boost::shared_ptr<MatchComparator> result =*/
    matchScorer._conflateAndScoreMatches(
      combinedMap,
      outputPath + "PertyMatchScorerTest-conflated-out-1.osm");
    //const double score = result->getPertyScore();

    //MatchComparator test already covers testing the scoring, so not doing that here.
    HOOT_FILE_EQUALS(
      inputPath + "PertyMatchScorerTest-conflated-out-1.osm",
      outputPath + "PertyMatchScorerTest-conflated-out-1.osm");
  }
예제 #2
0
  void runCombineMapTest()
  {
    OsmXmlReader reader;
    OsmMapPtr referenceMap(new OsmMap());
    reader.setDefaultStatus(Status::Unknown1);
    reader.setUseDataSourceIds(true);
    reader.read(
      inputPath + "PertyMatchScorerTest-reference-out-1.osm", referenceMap);
    CPPUNIT_ASSERT_EQUAL(44, (int)referenceMap->getElementCount());

    PertyMatchScorer matchScorer;
    matchScorer.setSearchDistance(15.0);
    matchScorer.setApplyRubberSheet(false);
    OsmMapPtr combinedMap =
      matchScorer._combineMapsAndPrepareForConflation(
        referenceMap,
        inputPath + "PertyMatchScorerTest-perturbed-out-1.osm");

    //can't do a file comparison on the output here since the UUID's added to the file will be
    //different with each run
    CPPUNIT_ASSERT_EQUAL(100, (int)combinedMap->getElementCount());
    boost::shared_ptr<TagKeyCountVisitor> tagKeyCountVisitorRef1(new TagKeyCountVisitor(MetadataTags::Ref1()));
    combinedMap->visitRo(*tagKeyCountVisitorRef1);
    CPPUNIT_ASSERT_EQUAL(8, (int)tagKeyCountVisitorRef1->getStat());
    boost::shared_ptr<TagKeyCountVisitor> tagKeyCountVisitorRef2(new TagKeyCountVisitor(MetadataTags::Ref2()));
    combinedMap->visitRo(*tagKeyCountVisitorRef2);
    CPPUNIT_ASSERT_EQUAL(10, (int)tagKeyCountVisitorRef2->getStat());
  }
예제 #3
0
  void runUseStatusTest()
  {
    OsmXmlReader uut;

    OsmMapPtr map(new OsmMap());
    uut.setUseDataSourceIds(true);
    uut.setUseFileStatus(true);
    uut.setDefaultStatus(Status::Invalid);
    uut.read("test-files/io/OsmXmlReaderUseStatusTest.osm", map);

    CPPUNIT_ASSERT_EQUAL(104, (int)map->getNodes().size());
    CPPUNIT_ASSERT_EQUAL(17, (int)map->getWays().size());

    HOOT_STR_EQUALS(Status::Unknown1, map->getWay(-12)->getStatus().getEnum());
    HOOT_STR_EQUALS(Status::Conflated, map->getWay(-13)->getStatus().getEnum());
    HOOT_STR_EQUALS(Status::Unknown2, map->getWay(-51)->getStatus().getEnum());
    HOOT_STR_EQUALS(Status::EnumEnd + 1, map->getWay(-14)->getStatus().getEnum());
    HOOT_STR_EQUALS(Status::EnumEnd + 2, map->getWay(-15)->getStatus().getEnum());

    HOOT_STR_EQUALS(0, map->getWay(-12)->getStatus().getInput());
    HOOT_STR_EQUALS(1, map->getWay(-51)->getStatus().getInput());
    HOOT_STR_EQUALS(2, map->getWay(-14)->getStatus().getInput());
    HOOT_STR_EQUALS(3, map->getWay(-15)->getStatus().getInput());

    HOOT_STR_EQUALS("Unknown1", map->getWay(-12)->getStatus().toString());
    HOOT_STR_EQUALS("Unknown2", map->getWay(-51)->getStatus().toString());
    HOOT_STR_EQUALS("Input003", map->getWay(-14)->getStatus().toString());
    HOOT_STR_EQUALS("Input004", map->getWay(-15)->getStatus().toString());
  }
 OsmMapPtr _loadMap()
 {
   OsmXmlReader reader;
   OsmMapPtr map(new OsmMap());
   reader.setDefaultStatus(Status::Unknown1);
   reader.read("test-files/visitors/TagRenameKeyVisitorTest.osm", map);
   return map;
 }
예제 #5
0
  void runString()
  {
    OsmXmlReader reader;
    OsmMapPtr map(new OsmMap());
    reader.setDefaultStatus(Status::Unknown1);
    reader.read("test-files/UndividedHighwayPreSplit.osm", map);

    QString output = OsmPgCsvWriter::toString(map);
    //  Compare the results
    HOOT_STR_EQUALS(expected_runString, output);
  }
  void runIsCandidateTest()
  {
    PoiPolygonMatchCreator uut;

    OsmMapPtr map = getTestMap1();
    CPPUNIT_ASSERT(
      uut.isMatchCandidate(map->getNode(FindNodesVisitor::findNodesByTag(map, "name", "foo")[0]), map));
    CPPUNIT_ASSERT(
      uut.isMatchCandidate(map->getWay(FindWaysVisitor::findWaysByTag(map, "name", "foo")[0]), map));

    OsmXmlReader reader;
    map.reset(new OsmMap());
    reader.setDefaultStatus(Status::Unknown1);
    reader.read("test-files/ToyTestA.osm", map);
    MapProjector::projectToPlanar(map);
    CPPUNIT_ASSERT(
      !uut.isMatchCandidate(map->getWay(FindWaysVisitor::findWaysByTag(map, "note", "1")[0]), map));
  }
예제 #7
0
  void runBasic()
  {
    OsmXmlReader reader;
    OsmMapPtr map(new OsmMap());
    reader.setDefaultStatus(Status::Unknown1);
    reader.read("test-files/ScoreMatchRef1.osm", map);

    OsmPgCsvWriter writer;
    writer.open("test-output/io/PgCsvWriter/runBasic.pgcsv");
    writer.write(map);
    writer.close();

    //  Check the results
    HOOT_FILE_EQUALS(QString("test-files/io/PgCsvWriter/runBasic-nodes.pgcsv"),
                     QString("test-output/io/PgCsvWriter/runBasic-nodes.pgcsv"));
    HOOT_FILE_EQUALS(QString("test-files/io/PgCsvWriter/runBasic-ways.pgcsv"),
                     QString("test-output/io/PgCsvWriter/runBasic-ways.pgcsv"));
    HOOT_FILE_EQUALS(QString("test-files/io/PgCsvWriter/runBasic-waynodes.pgcsv"),
                     QString("test-output/io/PgCsvWriter/runBasic-waynodes.pgcsv"));
    HOOT_FILE_EQUALS(QString("test-files/io/PgCsvWriter/runBasic-relations.pgcsv"),
                     QString("test-output/io/PgCsvWriter/runBasic-relations.pgcsv"));
    HOOT_FILE_EQUALS(QString("test-files/io/PgCsvWriter/runBasic-relationmembers.pgcsv"),
                     QString("test-output/io/PgCsvWriter/runBasic-relationmembers.pgcsv"));
  }