blob: ebf9307465857cd684e38c49a423743425e013de [file] [log] [blame]
Howard Hinnantc52f43e2010-08-22 00:59:46 +00001//===----------------------------------------------------------------------===//
2//
3// The LLVM Compiler Infrastructure
4//
Howard Hinnantb64f8b02010-11-16 22:09:02 +00005// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
Howard Hinnantc52f43e2010-08-22 00:59:46 +00007//
8//===----------------------------------------------------------------------===//
9
10// test ratio_not_equal
11
12#include <ratio>
13
14int main()
15{
16 {
17 typedef std::ratio<1, 1> R1;
18 typedef std::ratio<1, 1> R2;
Dan Albert1d4a1ed2016-05-25 22:36:09 -070019 static_assert((!std::ratio_not_equal<R1, R2>::value), "");
Howard Hinnantc52f43e2010-08-22 00:59:46 +000020 }
21 {
22 typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1;
23 typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2;
Dan Albert1d4a1ed2016-05-25 22:36:09 -070024 static_assert((!std::ratio_not_equal<R1, R2>::value), "");
Howard Hinnantc52f43e2010-08-22 00:59:46 +000025 }
26 {
27 typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1;
28 typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2;
Dan Albert1d4a1ed2016-05-25 22:36:09 -070029 static_assert((!std::ratio_not_equal<R1, R2>::value), "");
Howard Hinnantc52f43e2010-08-22 00:59:46 +000030 }
31 {
32 typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1;
33 typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R2;
Dan Albert1d4a1ed2016-05-25 22:36:09 -070034 static_assert((!std::ratio_not_equal<R1, R2>::value), "");
Howard Hinnantc52f43e2010-08-22 00:59:46 +000035 }
36 {
37 typedef std::ratio<1, 1> R1;
38 typedef std::ratio<1, -1> R2;
Dan Albert1d4a1ed2016-05-25 22:36:09 -070039 static_assert((std::ratio_not_equal<R1, R2>::value), "");
Howard Hinnantc52f43e2010-08-22 00:59:46 +000040 }
41 {
42 typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1;
43 typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2;
Dan Albert1d4a1ed2016-05-25 22:36:09 -070044 static_assert((std::ratio_not_equal<R1, R2>::value), "");
Howard Hinnantc52f43e2010-08-22 00:59:46 +000045 }
46 {
47 typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1;
48 typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2;
Dan Albert1d4a1ed2016-05-25 22:36:09 -070049 static_assert((std::ratio_not_equal<R1, R2>::value), "");
Howard Hinnantc52f43e2010-08-22 00:59:46 +000050 }
51 {
52 typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1;
53 typedef std::ratio<1, -0x7FFFFFFFFFFFFFFFLL> R2;
Dan Albert1d4a1ed2016-05-25 22:36:09 -070054 static_assert((std::ratio_not_equal<R1, R2>::value), "");
Howard Hinnantc52f43e2010-08-22 00:59:46 +000055 }
56}