brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.5 KiB · 11425a5 Raw
70 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// UNSUPPORTED: c++03, c++11, c++14, c++1710// UNSUPPORTED: no-filesystem, no-localization, no-tzdb11 12// XFAIL: libcpp-has-no-experimental-tzdb13// XFAIL: availability-tzdb-missing14 15// <chrono>16 17// template<class Duration1, class Duration2, class TimeZonePtr>18//  bool operator==(const zoned_time<Duration1, TimeZonePtr>& x,19//                  const zoned_time<Duration2, TimeZonePtr>& y);20//21// Note operator!= is generated by the compiler22 23#include <chrono>24 25#include "test_comparisons.h"26 27int main(int, char**) {28  {29    std::chrono::zoned_time zt;30    assert(testEquality(zt, zt, true));31  }32  {33    std::chrono::zoned_time lhs{"UTC"};34    std::chrono::zoned_time rhs{"Europe/Berlin"};35    assert(testEquality(lhs, rhs, false));36  }37  {38    std::chrono::zoned_time lhs{"UTC", std::chrono::sys_time<std::chrono::seconds>{std::chrono::seconds{123}}};39 40    assert(testEquality(lhs,41                        std::chrono::zoned_time{42                            std::chrono::sys_time<std::chrono::nanoseconds>{std::chrono::nanoseconds{123'000'000'000}}},43                        true));44    assert(testEquality(lhs,45                        std::chrono::zoned_time{46                            std::chrono::sys_time<std::chrono::nanoseconds>{std::chrono::nanoseconds{123'000'000'001}}},47                        false));48 49    assert(testEquality(lhs,50                        std::chrono::zoned_time{51                            std::chrono::sys_time<std::chrono::microseconds>{std::chrono::microseconds{123'000'000}}},52                        true));53    assert(testEquality(lhs,54                        std::chrono::zoned_time{55                            std::chrono::sys_time<std::chrono::microseconds>{std::chrono::microseconds{123'000'001}}},56                        false));57 58    assert(testEquality(59        lhs,60        std::chrono::zoned_time{std::chrono::sys_time<std::chrono::milliseconds>{std::chrono::milliseconds{123'000}}},61        true));62    assert(testEquality(63        lhs,64        std::chrono::zoned_time{std::chrono::sys_time<std::chrono::milliseconds>{std::chrono::milliseconds{123'001}}},65        false));66  }67 68  return 0;69}70