From e0172dd1731e2438132b5cbbcea1abd80c01c4eb Mon Sep 17 00:00:00 2001 From: Mikhail Gorbushin Date: Mon, 25 Nov 2019 15:14:30 +0300 Subject: [PATCH] [routing] Review fixes --- routing/routes_builder/routes_builder.cpp | 5 ++-- routing/routes_builder/routes_builder.hpp | 2 +- .../routes_builder_tool.cpp | 2 +- .../routing_quality_tool.cpp | 26 ++++++++++++------- .../routing_quality_tool/utils.hpp | 2 ++ 5 files changed, 23 insertions(+), 14 deletions(-) diff --git a/routing/routes_builder/routes_builder.cpp b/routing/routes_builder/routes_builder.cpp index f1369f05e8..0e71515479 100644 --- a/routing/routes_builder/routes_builder.cpp +++ b/routing/routes_builder/routes_builder.cpp @@ -90,8 +90,7 @@ RoutesBuilder & RoutesBuilder::GetSimpleRoutesBuilder() static RoutesBuilder routesBuilder(1 /* threadsNumber */); return routesBuilder; } -RoutesBuilder::RoutesBuilder(size_t threadsNumber) - : m_threadPool(threadsNumber) +RoutesBuilder::RoutesBuilder(size_t threadsNumber) : m_threadPool(threadsNumber) { CHECK_GREATER(threadsNumber, 0, ()); LOG(LINFO, ("Threads number:", threadsNumber)); @@ -297,7 +296,7 @@ RoutesBuilder::Processor::operator()(Params const & params) CHECK(m_dataSource, ()); - double timeSum = 0; + double timeSum = 0.0; for (size_t i = 0; i < params.m_launchesNumber; ++i) { m_delegate->SetTimeout(params.m_timeoutSeconds); diff --git a/routing/routes_builder/routes_builder.hpp b/routing/routes_builder/routes_builder.hpp index d19ad9812e..7db46e9995 100644 --- a/routing/routes_builder/routes_builder.hpp +++ b/routing/routes_builder/routes_builder.hpp @@ -93,7 +93,7 @@ public: RouterResultCode m_code = RouterResultCode::RouteNotFound; Params m_params; std::vector m_routes; - double m_buildTimeSeconds; + double m_buildTimeSeconds = 0.0; }; Result ProcessTask(Params const & params); diff --git a/routing/routes_builder/routes_builder_tool/routes_builder_tool.cpp b/routing/routes_builder/routes_builder_tool/routes_builder_tool.cpp index 4f42d7e199..e707605ace 100644 --- a/routing/routes_builder/routes_builder_tool/routes_builder_tool.cpp +++ b/routing/routes_builder/routes_builder_tool/routes_builder_tool.cpp @@ -103,7 +103,7 @@ int Main(int argc, char ** argv) if (launchesNumber > 1) { LOG(LINFO, - ("Benchmark mode is activated. Each route will be build", launchesNumber, "times.")); + ("Benchmark mode is activated. Each route will be built", launchesNumber, "times.")); } BuildRoutes(FLAGS_routes_file, FLAGS_dump_path, FLAGS_start_from, FLAGS_threads, FLAGS_timeout, diff --git a/routing/routing_quality/routing_quality_tool/routing_quality_tool.cpp b/routing/routing_quality/routing_quality_tool/routing_quality_tool.cpp index 5db9550a72..69e47eb4ac 100644 --- a/routing/routing_quality/routing_quality_tool/routing_quality_tool.cpp +++ b/routing/routing_quality/routing_quality_tool/routing_quality_tool.cpp @@ -9,6 +9,7 @@ #include "platform/platform.hpp" #include "base/exception.hpp" +#include "base/file_name_utils.hpp" #include "base/logging.hpp" #include @@ -28,14 +29,20 @@ DEFINE_string(save_result, "", "The directory where results of tool will be save DEFINE_double(kml_percent, 0.0, "The percent of routes for which kml file will be generated." "With kml files you can make screenshots with desktop app of MAPS.ME"); -DEFINE_bool(benchmark_stat, false, "Dump statistic about route time building."); +DEFINE_bool(benchmark_stat, false, "Dump statistics about route time building."); namespace { +// Shows distribution of simularity in comparison mode. static std::string const kPythonDistribution = "show_distribution.py"; +// Shows distribution of routes time building. static std::string const kPythonDistTimeBuilding = "show_route_time_building_dist.py"; +// Shows graph time(dist). static std::string const kPythonGraphLenAndTime = "show_len_time_graph.py"; +// Shows graph of "how many routes in percents build in less time than some T". static std::string const kPythonGraphTimeAndCount = "show_time_count_graph.py"; +// Bar graph of routing errors. Labels - string representation of errors, heights - number of such +// errors. static std::string const kPythonBarError = "show_errors_bar.py"; double constexpr kBadETADiffPercent = std::numeric_limits::max(); @@ -159,7 +166,7 @@ void RunComparison(std::vector> && if (maxSimilarity == 1.0) { etaDiff = 100.0 * std::abs(route.GetETA() - mapsmeRoute.GetETA()) / - std::max(route.GetETA(), mapsmeRoute.GetETA()); + std::max(route.GetETA(), mapsmeRoute.GetETA()); } } } @@ -189,6 +196,7 @@ void RunBenchmarkStat(std::vector> if (result.m_code != RouterResultCode::NoError) continue; + CHECK(!result.m_routes.empty(), ()); averageTimeSeconds += result.m_buildTimeSeconds; distToTime.emplace_back(result.m_routes.back().m_distance, result.m_buildTimeSeconds); times.emplace_back(result.m_buildTimeSeconds); @@ -234,16 +242,16 @@ int Main(int argc, char ** argv) "\t--mapsme_results and --api_results are required\n" "\tor\n" "\t--mapsme_results and --mapsme_old_results are required", - "\tor\n" - "\t--mapsme_results and --benchmark_stat are required", - "\n\tFLAGS_mapsme_results.empty():", FLAGS_mapsme_results.empty(), - "\n\tFLAGS_api_results.empty():", FLAGS_api_results.empty(), - "\n\tFLAGS_mapsme_old_results.empty():", FLAGS_mapsme_old_results.empty(), - "\n\nType --help for usage.")); + "\tor\n" + "\t--mapsme_results and --benchmark_stat are required", + "\n\tFLAGS_mapsme_results.empty():", FLAGS_mapsme_results.empty(), + "\n\tFLAGS_api_results.empty():", FLAGS_api_results.empty(), + "\n\tFLAGS_mapsme_old_results.empty():", FLAGS_mapsme_old_results.empty(), + "\n\nType --help for usage.")); CHECK(!FLAGS_save_result.empty(), ("\n\n\t--save_result is required. Tool will save results there.", - "\n\nType --help for usage.")); + "\n\nType --help for usage.")); if (Platform::IsFileExistsByFullPath(FLAGS_save_result)) CheckDirExistence(FLAGS_save_result); diff --git a/routing/routing_quality/routing_quality_tool/utils.hpp b/routing/routing_quality/routing_quality_tool/utils.hpp index 2f9071eafb..6d0deb1907 100644 --- a/routing/routing_quality/routing_quality_tool/utils.hpp +++ b/routing/routing_quality/routing_quality_tool/utils.hpp @@ -179,6 +179,8 @@ void CreatePythonGraphByPointsXY(std::string const & pythonScriptPath, std::string const & ylabel, std::vector const & points); +/// \brief Create python file, that show bar graph, where labels of bars are keys of |stat| and +/// heights area values of |stat|. void CreatePythonBarByMap(std::string const & pythonScriptPath, std::map const & stat, std::string const & xlabel,