op_less.pass.cpp revision b64f8b07c104c6cc986570ac8ee0ed16a9f23976
1//===----------------------------------------------------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// <chrono>
11
12// time_point
13
14// template <class Clock, class Duration1, class Duration2>
15//   bool
16//   operator< (const time_point<Clock, Duration1>& lhs, const time_point<Clock, Duration2>& rhs);
17
18// template <class Clock, class Duration1, class Duration2>
19//   bool
20//   operator> (const time_point<Clock, Duration1>& lhs, const time_point<Clock, Duration2>& rhs);
21
22// template <class Clock, class Duration1, class Duration2>
23//   bool
24//   operator<=(const time_point<Clock, Duration1>& lhs, const time_point<Clock, Duration2>& rhs);
25
26// template <class Clock, class Duration1, class Duration2>
27//   bool
28//   operator>=(const time_point<Clock, Duration1>& lhs, const time_point<Clock, Duration2>& rhs);
29
30#include <chrono>
31#include <cassert>
32
33int main()
34{
35    typedef std::chrono::system_clock Clock;
36    typedef std::chrono::milliseconds Duration1;
37    typedef std::chrono::microseconds Duration2;
38    typedef std::chrono::time_point<Clock, Duration1> T1;
39    typedef std::chrono::time_point<Clock, Duration2> T2;
40
41    {
42    T1 t1(Duration1(3));
43    T1 t2(Duration1(3));
44    assert(!(t1 <  t2));
45    assert(!(t1 >  t2));
46    assert( (t1 <= t2));
47    assert( (t1 >= t2));
48    }
49    {
50    T1 t1(Duration1(3));
51    T1 t2(Duration1(4));
52    assert( (t1 <  t2));
53    assert(!(t1 >  t2));
54    assert( (t1 <= t2));
55    assert(!(t1 >= t2));
56    }
57    {
58    T1 t1(Duration1(3));
59    T2 t2(Duration2(3000));
60    assert(!(t1 <  t2));
61    assert(!(t1 >  t2));
62    assert( (t1 <= t2));
63    assert( (t1 >= t2));
64    }
65    {
66    T1 t1(Duration1(3));
67    T2 t2(Duration2(3001));
68    assert( (t1 <  t2));
69    assert(!(t1 >  t2));
70    assert( (t1 <= t2));
71    assert(!(t1 >= t2));
72    }
73}
74