#include <boost/uuid/uuid_clock.hpp>
#include <boost/core/lightweight_test.hpp>
#include <chrono>
#include <cstdint>
int main()
{
using boost::uuids::uuid_clock;
using std::chrono::system_clock;
std::uint64_t uuid_timestamp = 0x1ef018cddaa7790;
auto uuid_time = uuid_clock::from_timestamp( uuid_timestamp );
BOOST_TEST_EQ( uuid_clock::to_timestamp( uuid_time ), uuid_timestamp );
auto sys_time = uuid_clock::to_sys( uuid_time );
auto sys_microseconds = std::chrono::duration_cast<std::chrono::microseconds>( sys_time.time_since_epoch() );
BOOST_TEST_EQ( sys_microseconds.count(), 1713888999776040 );
auto uuid_time_2 = uuid_clock::from_sys( sys_time );
BOOST_TEST( uuid_time == uuid_time_2 );
BOOST_TEST_EQ( uuid_clock::to_timestamp( uuid_time_2 ), uuid_timestamp );
return boost::report_errors();
}