18d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow// -*- C++ -*-
28d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow//===----------------------------------------------------------------------===//
38d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow//
48d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow//                     The LLVM Compiler Infrastructure
58d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow//
68d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow// This file is dual licensed under the MIT and the University of Illinois Open
78d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow// Source Licenses. See LICENSE.TXT for details.
88d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow//
98d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow//===----------------------------------------------------------------------===//
108d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow#include <chrono>
118d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow#include <cassert>
128d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow
138d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clowint main()
148d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow{
158d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow#if _LIBCPP_STD_VER > 11
168d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    using namespace std::chrono;
178d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow
188d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    hours h = 4h;
198d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    assert ( h == hours(4));
208d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    auto h2 = 4.0h;
218d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    assert ( h == h2 );
228d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow
238d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    minutes min = 36min;
248d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    assert ( min == minutes(36));
258d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    auto min2 = 36.0min;
268d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    assert ( min == min2 );
278d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow
288d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    seconds s = 24s;
298d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    assert ( s == seconds(24));
308d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    auto s2 = 24.0s;
318d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    assert ( s == s2 );
328d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow
338d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    milliseconds ms = 247ms;
348d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    assert ( ms == milliseconds(247));
358d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    auto ms2 = 247.0ms;
368d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    assert ( ms == ms2 );
378d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow
388d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    microseconds us = 867us;
398d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    assert ( us == microseconds(867));
408d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    auto us2 = 867.0us;
418d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    assert ( us == us2 );
428d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow
438d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    nanoseconds ns = 645ns;
448d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    assert ( ns == nanoseconds(645));
458d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    auto ns2 = 645.ns;
468d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow    assert ( ns == ns2 );
478d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow#endif
488d9dd7a968ce810c02c67c94a0eb9fbe5733d70bMarshall Clow}
49