/*
   * hoot --conflate -D writer.include.debug=true
       $HOOT_HOME/test-files/conflate/unified/AllDataTypesA.osm
       $HOOT_HOME/test-files/conflate/unified/AllDataTypesB.osm
       $HOOT_HOME/test-files/ops/CalculateStatsOp/all-data-types.osm
   */
  void runStatsTest()
  {
    shared_ptr<CalculateStatsOp> calcStatsOp =
      _calcStats("test-files/ops/CalculateStatsOp/all-data-types.osm");

    CPPUNIT_ASSERT_EQUAL(73, calcStatsOp->getStats().size());

    CPPUNIT_ASSERT_EQUAL(201.0, calcStatsOp->getSingleStat("Node Count"));
    CPPUNIT_ASSERT_EQUAL(22.0, calcStatsOp->getSingleStat("Way Count"));
    CPPUNIT_ASSERT_EQUAL(1.0, calcStatsOp->getSingleStat("Relation Count"));

    CPPUNIT_ASSERT_EQUAL(-427.0, calcStatsOp->getSingleStat("Minimum Node ID"));
    CPPUNIT_ASSERT_EQUAL(-1.0, calcStatsOp->getSingleStat("Maximum Node ID"));
    CPPUNIT_ASSERT_EQUAL(-283.0, calcStatsOp->getSingleStat("Minimum Way ID"));
    CPPUNIT_ASSERT_EQUAL(-1.0, calcStatsOp->getSingleStat("Maximum Way ID"));
    CPPUNIT_ASSERT_EQUAL(-1.0, calcStatsOp->getSingleStat("Minimum Relation ID"));
    CPPUNIT_ASSERT_EQUAL(-1.0, calcStatsOp->getSingleStat("Maximum Relation ID"));

    CPPUNIT_ASSERT_EQUAL(91.0, calcStatsOp->getSingleStat("Total Feature Tags"));
    CPPUNIT_ASSERT_EQUAL(91.0, calcStatsOp->getSingleStat("Total Feature Information Tags"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Total Feature Metadata Tags"));

    CPPUNIT_ASSERT_EQUAL(19.0, calcStatsOp->getSingleStat("Unique Names"));
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      1267.47, calcStatsOp->getSingleStat("Meters of Linear Features"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      25331.21, calcStatsOp->getSingleStat("Meters Squared of Area Features"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      1267.47, calcStatsOp->getSingleStat("Meters of Highway"), 1e-1);
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Highway Unique Name Count"));
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      25331.2, calcStatsOp->getSingleStat("Meters Squared of Buildings"), 1e-1);
    CPPUNIT_ASSERT_EQUAL(13.0, calcStatsOp->getSingleStat("Building Unique Name Count"));

    CPPUNIT_ASSERT_EQUAL(31.0, calcStatsOp->getSingleStat("Total Feature Count"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Total Conflatable Features"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Total Unconflatable Features"));
    CPPUNIT_ASSERT_EQUAL(12.0, calcStatsOp->getSingleStat("Total Features Processed By Conflation"));
    CPPUNIT_ASSERT_EQUAL(12.0, calcStatsOp->getSingleStat("Total Conflated Features"));
    CPPUNIT_ASSERT_EQUAL(19.0, calcStatsOp->getSingleStat("Total Unmatched Features"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Total Features Marked for Review"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Total Number of Reviews to be Made"));
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      0.0, calcStatsOp->getSingleStat("Percentage of Total Features Conflatable"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      0.0, calcStatsOp->getSingleStat("Percentage of Total Features Unconflatable"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      38.71, calcStatsOp->getSingleStat("Percentage of Total Features Conflated"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      0.0, calcStatsOp->getSingleStat("Percentage of Total Features Marked for Review"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      61.29, calcStatsOp->getSingleStat("Percentage of Total Features Unmatched"), 1e-1);

    CPPUNIT_ASSERT_EQUAL(3.0, calcStatsOp->getSingleStat("Number of Match Creators"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Features Conflatable by: hoot::BuildingMatchCreator"));

    CPPUNIT_ASSERT_EQUAL(8.0, calcStatsOp->getSingleStat("POI Count"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Conflatable POIs"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Conflated POIs"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("POIs Marked for Review"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Number of POI Reviews to be Made"));
    CPPUNIT_ASSERT_EQUAL(8.0, calcStatsOp->getSingleStat("Unmatched POIs"));
    CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, calcStatsOp->getSingleStat("Percentage of POIs Conflated"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, calcStatsOp->getSingleStat("Percentage of POIs Marked for Review"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(100.0, calcStatsOp->getSingleStat("Percentage of Unmatched POIs"), 1e-1);

    CPPUNIT_ASSERT_EQUAL(9.0, calcStatsOp->getSingleStat("Highway Count"));
    //this seems a little funky to have no conflatable highways but see conflated highways in the
    //output, but since the conflated highways are already present in this file, its actually valid.
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Conflatable Highways"));
    CPPUNIT_ASSERT_EQUAL(7.0, calcStatsOp->getSingleStat("Conflated Highways"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Highways Marked for Review"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Number of Highway Reviews to be Made"));
    CPPUNIT_ASSERT_EQUAL(2.0, calcStatsOp->getSingleStat("Unmatched Highways"));
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      1119.92, calcStatsOp->getSingleStat("Meters of Highway Processed by Conflation"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(77.78, calcStatsOp->getSingleStat("Percentage of Highways Conflated"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, calcStatsOp->getSingleStat("Percentage of Highways Marked for Review"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(22.22, calcStatsOp->getSingleStat("Percentage of Unmatched Highways"), 1e-1);

    CPPUNIT_ASSERT_EQUAL(11.0, calcStatsOp->getSingleStat("Building Count"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Conflatable Buildings"));
    CPPUNIT_ASSERT_EQUAL(4.0, calcStatsOp->getSingleStat("Conflated Buildings"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Buildings Marked for Review"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Number of Building Reviews to be Made"));
    CPPUNIT_ASSERT_EQUAL(7.0, calcStatsOp->getSingleStat("Unmatched Buildings"));
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      14100.9, calcStatsOp->getSingleStat("Meters Squared of Buildings Processed by Conflation"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(36.36, calcStatsOp->getSingleStat("Percentage of Buildings Conflated"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, calcStatsOp->getSingleStat("Percentage of Buildings Marked for Review"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(63.63, calcStatsOp->getSingleStat("Percentage of Unmatched Buildings"), 1e-1);

    CPPUNIT_ASSERT_EQUAL(52.0, calcStatsOp->getSingleStat("Longest Tag"));

    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      0.6058823, calcStatsOp->getSingleStat("Translated Populated Tag Percent"), 1e-1);
    CPPUNIT_ASSERT_EQUAL(103.0, calcStatsOp->getSingleStat("Translated Populated Tag Count"));
    CPPUNIT_ASSERT_EQUAL(67.0, calcStatsOp->getSingleStat("Translated Default Tag Count"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Translated Null Tag Count"));

    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      0.5138888, calcStatsOp->getSingleStat("Building Translated Populated Tag Percent"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      0.6481481, calcStatsOp->getSingleStat("Highway Translated Populated Tag Percent"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      0.704545, calcStatsOp->getSingleStat("POI Translated Populated Tag Percent"), 1e-1);
  }
Пример #2
0
void AnalysisDialog::updateResultsAnalysis() {
    vector< vector<int> > histData = mw->histPlot->getData();
    if (histData.size() > 0 and histData[0].size() > 0) {
        vector<int> all_data = mw->histPlot->getData()[0];

        resultsHistPlot->clearData();
        resultsHistPlot->addData(all_data);
        resultsHistPlot->replot();

        double threshold = thresholdEdited ? thresholdEdit->text().toDouble()
                                           : (double) find_epi_threshold();
        
        thresholdEdit->setText( QString::number( threshold ) );
        
        vector<int> outbreaks;
        vector<int> epidemics;
        for( unsigned int i = 0; i < all_data.size(); i++) {
            if (all_data[i] >= threshold) {
                epidemics.push_back(all_data[i]);
            } else {
                outbreaks.push_back(all_data[i]);
            }
        }

        vector<QString> stats(5);

        _calcStats( outbreaks, stats);
        outMeanEdit ->setText( stats[0] );
        outSDEdit   ->setText( stats[1] );
        outMinEdit  ->setText( stats[2] );
        outMaxEdit  ->setText( stats[3] );
        outNEdit    ->setText( frequencyFormat((double) outbreaks.size(), (double) all_data.size()) );

        _calcStats( epidemics, stats);
        epiMeanEdit ->setText( stats[0] );
        epiSDEdit   ->setText( stats[1] );
        epiMinEdit  ->setText( stats[2] );
        epiMaxEdit  ->setText( stats[3] );
        epiNEdit    ->setText( frequencyFormat((double) epidemics.size(), (double) all_data.size()) );

        _calcStats( all_data, stats);
        allMeanEdit ->setText( stats[0] );
        allSDEdit   ->setText( stats[1] );
        allMinEdit  ->setText( stats[2] );
        allMaxEdit  ->setText( stats[3] );
        allNEdit    ->setText( frequencyFormat((double) all_data.size(), (double) all_data.size()) );
    } else {
        outMeanEdit ->setText( "Undefined" );
        outSDEdit   ->setText( "Undefined" );
        outMinEdit  ->setText( "Undefined" );
        outMaxEdit  ->setText( "Undefined" );
        outNEdit    ->setText( "0" );
        epiMeanEdit ->setText( "Undefined" );
        epiSDEdit   ->setText( "Undefined" );
        epiMinEdit  ->setText( "Undefined" );
        epiMaxEdit  ->setText( "Undefined" );
        epiNEdit    ->setText( "0" );
        allMeanEdit ->setText( "Undefined" );
        allSDEdit   ->setText( "Undefined" );
        allMinEdit  ->setText( "Undefined" );
        allMaxEdit  ->setText( "Undefined" );
        allNEdit    ->setText( "0" );
        resultsHistPlot->clearData();
        resultsHistPlot->replot();
    }
}
  /*
   * hoot --conflate -D writer.include.debug=true -D add.review.tags=yes
       -D conflate.add.score.tags=yes
       $HOOT_HOME/test-files/conflate/unified/AllDataTypesA.osm
       $HOOT_HOME/test-files/conflate/unified/AllDataTypesB.osm
       $HOOT_HOME/test-files/ops/CalculateStatsOp/all-data-types-with-reviews.osm
   */
  void runStatsTestWithReviews()
  {
    shared_ptr<CalculateStatsOp> calcStatsOp =
      _calcStats("test-files/ops/CalculateStatsOp/all-data-types-with-reviews.osm");

    CPPUNIT_ASSERT_EQUAL(73, calcStatsOp->getStats().size());

    CPPUNIT_ASSERT_EQUAL(201.0, calcStatsOp->getSingleStat("Node Count"));
    CPPUNIT_ASSERT_EQUAL(21.0, calcStatsOp->getSingleStat("Way Count"));
    CPPUNIT_ASSERT_EQUAL(2.0, calcStatsOp->getSingleStat("Relation Count"));

    CPPUNIT_ASSERT_EQUAL(-3961929.0, calcStatsOp->getSingleStat("Minimum Node ID"));
    CPPUNIT_ASSERT_EQUAL(-3961529.0, calcStatsOp->getSingleStat("Maximum Node ID"));
    CPPUNIT_ASSERT_EQUAL(-3961971.0, calcStatsOp->getSingleStat("Minimum Way ID"));
    CPPUNIT_ASSERT_EQUAL(-3961931.0, calcStatsOp->getSingleStat("Maximum Way ID"));
    CPPUNIT_ASSERT_EQUAL(-3961988.0, calcStatsOp->getSingleStat("Minimum Relation ID"));
    CPPUNIT_ASSERT_EQUAL(-3961981.0,
      calcStatsOp->getSingleStat("Maximum Relation ID"));

    CPPUNIT_ASSERT_EQUAL(89.0, calcStatsOp->getSingleStat("Total Feature Tags"));
    CPPUNIT_ASSERT_EQUAL(87.0, calcStatsOp->getSingleStat("Total Feature Information Tags"));
    CPPUNIT_ASSERT_EQUAL(2.0, calcStatsOp->getSingleStat("Total Feature Metadata Tags"));

    CPPUNIT_ASSERT_EQUAL(19.0, calcStatsOp->getSingleStat("Unique Names"));
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      1267.47, calcStatsOp->getSingleStat("Meters of Linear Features"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      25331.2, calcStatsOp->getSingleStat("Meters Squared of Area Features"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(1267.47, calcStatsOp->getSingleStat("Meters of Highway"), 1e-1);
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Highway Unique Name Count"));
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      25331.2, calcStatsOp->getSingleStat("Meters Squared of Buildings"), 1e-1);
    CPPUNIT_ASSERT_EQUAL(13.0, calcStatsOp->getSingleStat("Building Unique Name Count"));

    //fix; totals don't add up...
    CPPUNIT_ASSERT_EQUAL(29.0, calcStatsOp->getSingleStat("Total Feature Count"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Total Conflatable Features"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Total Unconflatable Features"));
    CPPUNIT_ASSERT_EQUAL(11.0, calcStatsOp->getSingleStat("Total Features Processed By Conflation"));
    CPPUNIT_ASSERT_EQUAL(4.0, calcStatsOp->getSingleStat("Total Features Marked for Review"));
    CPPUNIT_ASSERT_EQUAL(7.0, calcStatsOp->getSingleStat("Total Conflated Features"));
    CPPUNIT_ASSERT_EQUAL(15.0, calcStatsOp->getSingleStat("Total Unmatched Features"));
    CPPUNIT_ASSERT_EQUAL(2.0, calcStatsOp->getSingleStat("Total Number of Reviews to be Made"));
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      0.0, calcStatsOp->getSingleStat("Percentage of Total Features Conflatable"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      0.0, calcStatsOp->getSingleStat("Percentage of Total Features Unconflatable"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      24.14, calcStatsOp->getSingleStat("Percentage of Total Features Conflated"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      13.8, calcStatsOp->getSingleStat("Percentage of Total Features Marked for Review"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      51.7, calcStatsOp->getSingleStat("Percentage of Total Features Unmatched"), 1e-1);

    CPPUNIT_ASSERT_EQUAL(3.0, calcStatsOp->getSingleStat("Number of Match Creators"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Features Conflatable by: hoot::BuildingMatchCreator"));

    CPPUNIT_ASSERT_EQUAL(8.0, calcStatsOp->getSingleStat("POI Count"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Conflatable POIs"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Conflated POIs"));
    CPPUNIT_ASSERT_EQUAL(2.0, calcStatsOp->getSingleStat("POIs Marked for Review"));
    CPPUNIT_ASSERT_EQUAL(1.0, calcStatsOp->getSingleStat("Number of POI Reviews to be Made"));
    CPPUNIT_ASSERT_EQUAL(6.0, calcStatsOp->getSingleStat("Unmatched POIs"));
    CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, calcStatsOp->getSingleStat("Percentage of POIs Conflated"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(25.0, calcStatsOp->getSingleStat("Percentage of POIs Marked for Review"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(75.0, calcStatsOp->getSingleStat("Percentage of Unmatched POIs"), 1e-1);

    CPPUNIT_ASSERT_EQUAL(9.0, calcStatsOp->getSingleStat("Highway Count"));
    //see comment in corresponding section of code in runStatsTest
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Conflatable Highways"));
    CPPUNIT_ASSERT_EQUAL(7.0, calcStatsOp->getSingleStat("Conflated Highways"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Highways Marked for Review"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Number of Highway Reviews to be Made"));
    CPPUNIT_ASSERT_EQUAL(2.0, calcStatsOp->getSingleStat("Unmatched Highways"));
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      1119.92, calcStatsOp->getSingleStat("Meters of Highway Processed by Conflation"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(77.78, calcStatsOp->getSingleStat("Percentage of Highways Conflated"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, calcStatsOp->getSingleStat("Percentage of Highways Marked for Review"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(22.22, calcStatsOp->getSingleStat("Percentage of Unmatched Highways"), 1e-1);

    //fix; totals don't add up...
    CPPUNIT_ASSERT_EQUAL(12.0, calcStatsOp->getSingleStat("Building Count"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Conflatable Buildings"));
    CPPUNIT_ASSERT_EQUAL(2.0, calcStatsOp->getSingleStat("Conflated Buildings"));
    CPPUNIT_ASSERT_EQUAL(2.0, calcStatsOp->getSingleStat("Buildings Marked for Review"));
    CPPUNIT_ASSERT_EQUAL(1.0, calcStatsOp->getSingleStat("Number of Building Reviews to be Made"));
    CPPUNIT_ASSERT_EQUAL(7.0, calcStatsOp->getSingleStat("Unmatched Buildings"));
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      13693.3, calcStatsOp->getSingleStat("Meters Squared of Buildings Processed by Conflation"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(16.67, calcStatsOp->getSingleStat("Percentage of Buildings Conflated"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(16.67, calcStatsOp->getSingleStat("Percentage of Buildings Marked for Review"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(58.33, calcStatsOp->getSingleStat("Percentage of Unmatched Buildings"), 1e-1);

    CPPUNIT_ASSERT_EQUAL(52.0, calcStatsOp->getSingleStat("Longest Tag"));

    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      0.6058823, calcStatsOp->getSingleStat("Translated Populated Tag Percent"), 1e-1);
    CPPUNIT_ASSERT_EQUAL(103.0, calcStatsOp->getSingleStat("Translated Populated Tag Count"));
    CPPUNIT_ASSERT_EQUAL(67.0, calcStatsOp->getSingleStat("Translated Default Tag Count"));
    CPPUNIT_ASSERT_EQUAL(0.0, calcStatsOp->getSingleStat("Translated Null Tag Count"));

    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      0.5138888, calcStatsOp->getSingleStat("Building Translated Populated Tag Percent"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      0.6481481, calcStatsOp->getSingleStat("Highway Translated Populated Tag Percent"), 1e-1);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(
      0.704545, calcStatsOp->getSingleStat("POI Translated Populated Tag Percent"), 1e-1);
  }