diff --git a/map/place_page_info.cpp b/map/place_page_info.cpp index f284042c5b..8fa50608ff 100644 --- a/map/place_page_info.cpp +++ b/map/place_page_info.cpp @@ -301,6 +301,22 @@ namespace std::string const kEmptyRatingSymbol = "-"; } // namespace +FilterRating GetFilterRating(float const rawRating) +{ + CHECK_LESS_OR_EQUAL(rawRating, kTopRatingBound, ()); + CHECK_GREATER_OR_EQUAL(rawRating, 0, ()); + + auto const rounded = static_cast(rawRating); + if (rounded < 7) + return FilterRating::Any; + if (rounded < 8) + return FilterRating::Good; + if (rounded < 9) + return FilterRating::VeryGood; + + return FilterRating::Excellent; +} + Impress GetImpress(float const rawRating) { CHECK_LESS_OR_EQUAL(rawRating, kTopRatingBound, ()); diff --git a/map/place_page_info.hpp b/map/place_page_info.hpp index 81963a73b1..f627212689 100644 --- a/map/place_page_info.hpp +++ b/map/place_page_info.hpp @@ -304,6 +304,14 @@ private: namespace rating { +enum class FilterRating +{ + Any, + Good, + VeryGood, + Excellent +}; + enum Impress { None, @@ -314,6 +322,8 @@ enum Impress Excellent }; +FilterRating GetFilterRating(float const rawRating); + Impress GetImpress(float const rawRating); std::string GetRatingFormatted(float const rawRating); } // namespace rating