1f78f93bcSMark de Wever //===----------------------------------------------------------------------===// 2f78f93bcSMark de Wever // 3f78f93bcSMark de Wever // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4f78f93bcSMark de Wever // See https://llvm.org/LICENSE.txt for license information. 5f78f93bcSMark de Wever // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6f78f93bcSMark de Wever // 7f78f93bcSMark de Wever //===----------------------------------------------------------------------===// 8f78f93bcSMark de Wever 9f78f93bcSMark de Wever // UNSUPPORTED: c++03, c++11, c++14, c++17 10f78f93bcSMark de Wever // UNSUPPORTED: no-filesystem, no-localization, no-tzdb 11f78f93bcSMark de Wever 12*a4422a51SMark de Wever // XFAIL: libcpp-has-no-experimental-tzdb 13f78f93bcSMark de Wever // XFAIL: availability-tzdb-missing 14f78f93bcSMark de Wever 15f78f93bcSMark de Wever // <chrono> 16f78f93bcSMark de Wever 17f78f93bcSMark de Wever // const tzdb& get_tzdb(); 18f78f93bcSMark de Wever 19d332d88bSMark de Wever #include <algorithm> 20f78f93bcSMark de Wever #include <cassert> 21d332d88bSMark de Wever #include <chrono> 22f78f93bcSMark de Wever 23f78f93bcSMark de Wever #include "test_macros.h" 24f78f93bcSMark de Wever main(int,const char **)25f78f93bcSMark de Weverint main(int, const char**) { 26f78f93bcSMark de Wever const std::chrono::tzdb& db = std::chrono::get_tzdb(); 27f78f93bcSMark de Wever 28f78f93bcSMark de Wever assert(!db.version.empty()); 29f78f93bcSMark de Wever 30d332d88bSMark de Wever assert(!db.zones.empty()); 31d332d88bSMark de Wever assert(std::ranges::is_sorted(db.zones)); 32d332d88bSMark de Wever assert(std::ranges::adjacent_find(db.zones) == db.zones.end()); // is unique? 33d332d88bSMark de Wever 34d332d88bSMark de Wever assert(!db.links.empty()); 35d332d88bSMark de Wever assert(std::ranges::is_sorted(db.links)); 36d332d88bSMark de Wever assert(std::ranges::adjacent_find(db.links) == db.links.end()); // is unique? 37d332d88bSMark de Wever 386f2d8cc0SMark de Wever assert(!db.leap_seconds.empty()); 396f2d8cc0SMark de Wever assert(std::ranges::is_sorted(db.leap_seconds)); 406f2d8cc0SMark de Wever 41f78f93bcSMark de Wever return 0; 42f78f93bcSMark de Wever } 43