mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-19 04:53:36 +00:00
[core] Remove legacy opening_hours stuff
Signed-off-by: Harry Bond <me@hbond.xyz>
This commit is contained in:
@@ -16,7 +16,6 @@ set(SRC
|
||||
power_manager_tests.cpp
|
||||
search_api_tests.cpp
|
||||
transliteration_test.cpp
|
||||
working_time_tests.cpp
|
||||
elevation_info_tests.cpp
|
||||
track_statistics_tests.cpp
|
||||
)
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
#include "testing/testing.hpp"
|
||||
|
||||
#include "map/osm_opening_hours.hpp"
|
||||
|
||||
using namespace osm;
|
||||
|
||||
UNIT_TEST(WorkingTime_OpenSoon)
|
||||
{
|
||||
// 1-jan-2000 08:50
|
||||
std::tm when = {};
|
||||
when.tm_mday = 1;
|
||||
when.tm_mon = 0;
|
||||
when.tm_year = 100;
|
||||
when.tm_hour = 8;
|
||||
when.tm_min = 50;
|
||||
|
||||
time_t now = std::mktime(&when);
|
||||
|
||||
TEST_EQUAL(PlaceStateCheck("09:00-21:00", now), EPlaceState::OpenSoon, ());
|
||||
}
|
||||
|
||||
UNIT_TEST(WorkingTime_CloseSoon)
|
||||
{
|
||||
// 1-jan-2000 20:50
|
||||
std::tm when = {};
|
||||
when.tm_mday = 1;
|
||||
when.tm_mon = 0;
|
||||
when.tm_year = 100;
|
||||
when.tm_hour = 20;
|
||||
when.tm_min = 50;
|
||||
|
||||
time_t now = std::mktime(&when);
|
||||
TEST_EQUAL(PlaceStateCheck("09:00-21:00", now), EPlaceState::CloseSoon, ());
|
||||
}
|
||||
|
||||
UNIT_TEST(WorkingTime_Open)
|
||||
{
|
||||
// 1-jan-2000 13:50
|
||||
std::tm when = {};
|
||||
when.tm_mday = 1;
|
||||
when.tm_mon = 0;
|
||||
when.tm_year = 100;
|
||||
when.tm_hour = 13;
|
||||
when.tm_min = 50;
|
||||
|
||||
time_t now = std::mktime(&when);
|
||||
TEST_EQUAL(PlaceStateCheck("09:00-21:00", now), EPlaceState::Open, ());
|
||||
}
|
||||
|
||||
UNIT_TEST(WorkingTime_Closed)
|
||||
{
|
||||
// 1-jan-2000 06:50
|
||||
std::tm when = {};
|
||||
when.tm_mday = 1;
|
||||
when.tm_mon = 0;
|
||||
when.tm_year = 100;
|
||||
when.tm_hour = 6;
|
||||
when.tm_min = 50;
|
||||
|
||||
time_t now = std::mktime(&when);
|
||||
TEST_EQUAL(PlaceStateCheck("09:00-21:00", now), EPlaceState::Closed, ());
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "3party/opening_hours/opening_hours.hpp"
|
||||
|
||||
#include "base/assert.hpp"
|
||||
|
||||
#include <chrono>
|
||||
#include <ctime>
|
||||
#include <string>
|
||||
|
||||
namespace osm
|
||||
{
|
||||
enum class EPlaceState
|
||||
{
|
||||
Open,
|
||||
Closed,
|
||||
OpenSoon,
|
||||
CloseSoon
|
||||
};
|
||||
|
||||
inline std::string DebugPrint(EPlaceState state)
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case EPlaceState::Open:
|
||||
return "EPlaceState::Open";
|
||||
case EPlaceState::OpenSoon:
|
||||
return "EPlaceState::OpenSoon";
|
||||
case EPlaceState::Closed:
|
||||
return "EPlaceState::Closed";
|
||||
case EPlaceState::CloseSoon:
|
||||
return "EPlaceState::CloseSoon";
|
||||
}
|
||||
UNREACHABLE();
|
||||
}
|
||||
|
||||
inline EPlaceState PlaceStateCheck(std::string const & openingHours, time_t timestamp)
|
||||
{
|
||||
osmoh::OpeningHours oh(openingHours);
|
||||
|
||||
auto future = std::chrono::system_clock::from_time_t(timestamp);
|
||||
future += std::chrono::minutes(15);
|
||||
|
||||
enum {OPEN = 0, CLOSED = 1};
|
||||
|
||||
size_t nowState = OPEN;
|
||||
size_t futureState = OPEN;
|
||||
|
||||
// TODO(mgsergio): Switch to three-stated model instead of two-staed
|
||||
// I.e. set unknown if we can't parse or can't answer whether it's open.
|
||||
if (oh.IsValid())
|
||||
{
|
||||
nowState = oh.IsOpen(timestamp) ? OPEN : CLOSED;
|
||||
futureState = oh.IsOpen(std::chrono::system_clock::to_time_t(future)) ? OPEN : CLOSED;
|
||||
}
|
||||
|
||||
EPlaceState state[2][2] = {{EPlaceState::Open, EPlaceState::CloseSoon},
|
||||
{EPlaceState::OpenSoon, EPlaceState::Closed}};
|
||||
|
||||
return state[nowState][futureState];
|
||||
}
|
||||
} // namespace osm
|
||||
Reference in New Issue
Block a user