1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#define BOOST_TEST_MODULE config
#include <boost/test/included/unit_test.hpp>

#include <kooling/datamodel/motion-type.h>
#include <kooling/datamodel/sensor.h>

#include <chrono>
#include <cstdint>
#include <ctime>
#include <iomanip>
#include <sstream>

BOOST_AUTO_TEST_SUITE(test_sensor)<--- There is an unknown macro here somewhere. Configuration is required. If BOOST_AUTO_TEST_SUITE is a macro then please configure it.

BOOST_AUTO_TEST_CASE(test_sensor_timestamp)
{
    constexpr const std::int64_t db_timestamp{ 1729696502574 };
    constexpr const char* expected{ "2024-10-23 15:15:02" };

    const kooling::datamodel::sensor_data_point sensor{
        kooling::datamodel::timestamp{ std::chrono::milliseconds{ db_timestamp } },
        kooling::datamodel::motion_type::none,
        kooling::geo::coordinate{ 0., 0. },
        0,
        kooling::datamodel::distance::from_m(0.),
        kooling::datamodel::timestamp::duration{},
        kooling::datamodel::speed::from_kmh(0.),
        0.,
        "" };

    const auto tt{ std::chrono::system_clock::to_time_t(sensor.timestamp) };
    std::stringstream ss;
    ss << std::put_time(std::gmtime(&tt), "%Y-%m-%d %H:%M:%S");
    BOOST_TEST(ss.str() == expected);
}

BOOST_AUTO_TEST_SUITE_END()