summaryrefslogtreecommitdiffstats
path: root/libcxx/test/utilities/ratio
diff options
context:
space:
mode:
authorHoward Hinnant <hhinnant@apple.com>2010-08-22 00:59:46 +0000
committerHoward Hinnant <hhinnant@apple.com>2010-08-22 00:59:46 +0000
commit94b2dd0998230c758abd92c99d3700c971f7a31a (patch)
tree1b9f66ba0b4f8fd99fc02a112d4b7a30c4afe0f6 /libcxx/test/utilities/ratio
parentd9c6c0b583ac1f1efeec3db571a1028a3c9b7a99 (diff)
downloadbcm5719-llvm-94b2dd0998230c758abd92c99d3700c971f7a31a.tar.gz
bcm5719-llvm-94b2dd0998230c758abd92c99d3700c971f7a31a.zip
Fixing whitespace problems
llvm-svn: 111767
Diffstat (limited to 'libcxx/test/utilities/ratio')
-rw-r--r--libcxx/test/utilities/ratio/ratio.arithmetic/ratio_add.fail.cpp20
-rw-r--r--libcxx/test/utilities/ratio/ratio.arithmetic/ratio_add.pass.cpp59
-rw-r--r--libcxx/test/utilities/ratio/ratio.arithmetic/ratio_divide.fail.cpp20
-rw-r--r--libcxx/test/utilities/ratio/ratio.arithmetic/ratio_divide.pass.cpp59
-rw-r--r--libcxx/test/utilities/ratio/ratio.arithmetic/ratio_multiply.fail.cpp20
-rw-r--r--libcxx/test/utilities/ratio/ratio.arithmetic/ratio_multiply.pass.cpp59
-rw-r--r--libcxx/test/utilities/ratio/ratio.arithmetic/ratio_subtract.fail.cpp20
-rw-r--r--libcxx/test/utilities/ratio/ratio.arithmetic/ratio_subtract.pass.cpp59
-rw-r--r--libcxx/test/utilities/ratio/ratio.comparison/ratio_equal.pass.cpp57
-rw-r--r--libcxx/test/utilities/ratio/ratio.comparison/ratio_greater.pass.cpp57
-rw-r--r--libcxx/test/utilities/ratio/ratio.comparison/ratio_greater_equal.pass.cpp57
-rw-r--r--libcxx/test/utilities/ratio/ratio.comparison/ratio_less.pass.cpp87
-rw-r--r--libcxx/test/utilities/ratio/ratio.comparison/ratio_less_equal.pass.cpp57
-rw-r--r--libcxx/test/utilities/ratio/ratio.comparison/ratio_not_equal.pass.cpp57
-rw-r--r--libcxx/test/utilities/ratio/ratio.ratio/ratio.pass.cpp45
-rw-r--r--libcxx/test/utilities/ratio/ratio.ratio/ratio1.fail.cpp19
-rw-r--r--libcxx/test/utilities/ratio/ratio.ratio/ratio2.fail.cpp20
-rw-r--r--libcxx/test/utilities/ratio/ratio.ratio/ratio3.fail.cpp20
-rw-r--r--libcxx/test/utilities/ratio/ratio.si/nothing_to_do.pass.cpp13
-rw-r--r--libcxx/test/utilities/ratio/typedefs.pass.cpp33
-rw-r--r--libcxx/test/utilities/ratio/version.pass.cpp21
21 files changed, 838 insertions, 21 deletions
diff --git a/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_add.fail.cpp b/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_add.fail.cpp
index 4b88d7ca1af..17d7a900d66 100644
--- a/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_add.fail.cpp
+++ b/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_add.fail.cpp
@@ -1 +1,19 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio_add #include <ratio> int main() { typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<1, 1> R2; typedef std::ratio_add<R1, R2>::type R; } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio_add
+
+#include <ratio>
+
+int main()
+{
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<1, 1> R2;
+ typedef std::ratio_add<R1, R2>::type R;
+}
diff --git a/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_add.pass.cpp b/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_add.pass.cpp
index 8ab8ad98527..e69f11f43cd 100644
--- a/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_add.pass.cpp
+++ b/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_add.pass.cpp
@@ -1 +1,58 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio_add #include <ratio> int main() { { typedef std::ratio<1, 1> R1; typedef std::ratio<1, 1> R2; typedef std::ratio_add<R1, R2>::type R; static_assert(R::num == 2 && R::den == 1, ""); } { typedef std::ratio<1, 2> R1; typedef std::ratio<1, 1> R2; typedef std::ratio_add<R1, R2>::type R; static_assert(R::num == 3 && R::den == 2, ""); } { typedef std::ratio<-1, 2> R1; typedef std::ratio<1, 1> R2; typedef std::ratio_add<R1, R2>::type R; static_assert(R::num == 1 && R::den == 2, ""); } { typedef std::ratio<1, -2> R1; typedef std::ratio<1, 1> R2; typedef std::ratio_add<R1, R2>::type R; static_assert(R::num == 1 && R::den == 2, ""); } { typedef std::ratio<1, 2> R1; typedef std::ratio<-1, 1> R2; typedef std::ratio_add<R1, R2>::type R; static_assert(R::num == -1 && R::den == 2, ""); } { typedef std::ratio<1, 2> R1; typedef std::ratio<1, -1> R2; typedef std::ratio_add<R1, R2>::type R; static_assert(R::num == -1 && R::den == 2, ""); } { typedef std::ratio<56987354, 467584654> R1; typedef std::ratio<544668, 22145> R2; typedef std::ratio_add<R1, R2>::type R; static_assert(R::num == 127970191639601LL && R::den == 5177331081415LL, ""); } } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio_add
+
+#include <ratio>
+
+int main()
+{
+ {
+ typedef std::ratio<1, 1> R1;
+ typedef std::ratio<1, 1> R2;
+ typedef std::ratio_add<R1, R2>::type R;
+ static_assert(R::num == 2 && R::den == 1, "");
+ }
+ {
+ typedef std::ratio<1, 2> R1;
+ typedef std::ratio<1, 1> R2;
+ typedef std::ratio_add<R1, R2>::type R;
+ static_assert(R::num == 3 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<-1, 2> R1;
+ typedef std::ratio<1, 1> R2;
+ typedef std::ratio_add<R1, R2>::type R;
+ static_assert(R::num == 1 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<1, -2> R1;
+ typedef std::ratio<1, 1> R2;
+ typedef std::ratio_add<R1, R2>::type R;
+ static_assert(R::num == 1 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<1, 2> R1;
+ typedef std::ratio<-1, 1> R2;
+ typedef std::ratio_add<R1, R2>::type R;
+ static_assert(R::num == -1 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<1, 2> R1;
+ typedef std::ratio<1, -1> R2;
+ typedef std::ratio_add<R1, R2>::type R;
+ static_assert(R::num == -1 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<56987354, 467584654> R1;
+ typedef std::ratio<544668, 22145> R2;
+ typedef std::ratio_add<R1, R2>::type R;
+ static_assert(R::num == 127970191639601LL && R::den == 5177331081415LL, "");
+ }
+}
diff --git a/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_divide.fail.cpp b/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_divide.fail.cpp
index 6058f7cdb9e..69acec1f889 100644
--- a/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_divide.fail.cpp
+++ b/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_divide.fail.cpp
@@ -1 +1,19 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio_divide #include <ratio> int main() { typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<1, 2> R2; typedef std::ratio_divide<R1, R2>::type R; } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio_divide
+
+#include <ratio>
+
+int main()
+{
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<1, 2> R2;
+ typedef std::ratio_divide<R1, R2>::type R;
+}
diff --git a/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_divide.pass.cpp b/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_divide.pass.cpp
index 79623e67498..2e7b312570e 100644
--- a/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_divide.pass.cpp
+++ b/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_divide.pass.cpp
@@ -1 +1,58 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio_divide #include <ratio> int main() { { typedef std::ratio<1, 1> R1; typedef std::ratio<1, 1> R2; typedef std::ratio_divide<R1, R2>::type R; static_assert(R::num == 1 && R::den == 1, ""); } { typedef std::ratio<1, 2> R1; typedef std::ratio<1, 1> R2; typedef std::ratio_divide<R1, R2>::type R; static_assert(R::num == 1 && R::den == 2, ""); } { typedef std::ratio<-1, 2> R1; typedef std::ratio<1, 1> R2; typedef std::ratio_divide<R1, R2>::type R; static_assert(R::num == -1 && R::den == 2, ""); } { typedef std::ratio<1, -2> R1; typedef std::ratio<1, 1> R2; typedef std::ratio_divide<R1, R2>::type R; static_assert(R::num == -1 && R::den == 2, ""); } { typedef std::ratio<1, 2> R1; typedef std::ratio<-1, 1> R2; typedef std::ratio_divide<R1, R2>::type R; static_assert(R::num == -1 && R::den == 2, ""); } { typedef std::ratio<1, 2> R1; typedef std::ratio<1, -1> R2; typedef std::ratio_divide<R1, R2>::type R; static_assert(R::num == -1 && R::den == 2, ""); } { typedef std::ratio<56987354, 467584654> R1; typedef std::ratio<544668, 22145> R2; typedef std::ratio_divide<R1, R2>::type R; static_assert(R::num == 630992477165LL && R::den == 127339199162436LL, ""); } } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio_divide
+
+#include <ratio>
+
+int main()
+{
+ {
+ typedef std::ratio<1, 1> R1;
+ typedef std::ratio<1, 1> R2;
+ typedef std::ratio_divide<R1, R2>::type R;
+ static_assert(R::num == 1 && R::den == 1, "");
+ }
+ {
+ typedef std::ratio<1, 2> R1;
+ typedef std::ratio<1, 1> R2;
+ typedef std::ratio_divide<R1, R2>::type R;
+ static_assert(R::num == 1 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<-1, 2> R1;
+ typedef std::ratio<1, 1> R2;
+ typedef std::ratio_divide<R1, R2>::type R;
+ static_assert(R::num == -1 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<1, -2> R1;
+ typedef std::ratio<1, 1> R2;
+ typedef std::ratio_divide<R1, R2>::type R;
+ static_assert(R::num == -1 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<1, 2> R1;
+ typedef std::ratio<-1, 1> R2;
+ typedef std::ratio_divide<R1, R2>::type R;
+ static_assert(R::num == -1 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<1, 2> R1;
+ typedef std::ratio<1, -1> R2;
+ typedef std::ratio_divide<R1, R2>::type R;
+ static_assert(R::num == -1 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<56987354, 467584654> R1;
+ typedef std::ratio<544668, 22145> R2;
+ typedef std::ratio_divide<R1, R2>::type R;
+ static_assert(R::num == 630992477165LL && R::den == 127339199162436LL, "");
+ }
+}
diff --git a/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_multiply.fail.cpp b/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_multiply.fail.cpp
index 04e7683d18d..98031002ca4 100644
--- a/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_multiply.fail.cpp
+++ b/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_multiply.fail.cpp
@@ -1 +1,19 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio_multiply #include <ratio> int main() { typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<2, 1> R2; typedef std::ratio_multiply<R1, R2>::type R; } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio_multiply
+
+#include <ratio>
+
+int main()
+{
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<2, 1> R2;
+ typedef std::ratio_multiply<R1, R2>::type R;
+}
diff --git a/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_multiply.pass.cpp b/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_multiply.pass.cpp
index b4b3f6a725e..24d980a117e 100644
--- a/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_multiply.pass.cpp
+++ b/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_multiply.pass.cpp
@@ -1 +1,58 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio_multiply #include <ratio> int main() { { typedef std::ratio<1, 1> R1; typedef std::ratio<1, 1> R2; typedef std::ratio_multiply<R1, R2>::type R; static_assert(R::num == 1 && R::den == 1, ""); } { typedef std::ratio<1, 2> R1; typedef std::ratio<1, 1> R2; typedef std::ratio_multiply<R1, R2>::type R; static_assert(R::num == 1 && R::den == 2, ""); } { typedef std::ratio<-1, 2> R1; typedef std::ratio<1, 1> R2; typedef std::ratio_multiply<R1, R2>::type R; static_assert(R::num == -1 && R::den == 2, ""); } { typedef std::ratio<1, -2> R1; typedef std::ratio<1, 1> R2; typedef std::ratio_multiply<R1, R2>::type R; static_assert(R::num == -1 && R::den == 2, ""); } { typedef std::ratio<1, 2> R1; typedef std::ratio<-1, 1> R2; typedef std::ratio_multiply<R1, R2>::type R; static_assert(R::num == -1 && R::den == 2, ""); } { typedef std::ratio<1, 2> R1; typedef std::ratio<1, -1> R2; typedef std::ratio_multiply<R1, R2>::type R; static_assert(R::num == -1 && R::den == 2, ""); } { typedef std::ratio<56987354, 467584654> R1; typedef std::ratio<544668, 22145> R2; typedef std::ratio_multiply<R1, R2>::type R; static_assert(R::num == 15519594064236LL && R::den == 5177331081415LL, ""); } } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio_multiply
+
+#include <ratio>
+
+int main()
+{
+ {
+ typedef std::ratio<1, 1> R1;
+ typedef std::ratio<1, 1> R2;
+ typedef std::ratio_multiply<R1, R2>::type R;
+ static_assert(R::num == 1 && R::den == 1, "");
+ }
+ {
+ typedef std::ratio<1, 2> R1;
+ typedef std::ratio<1, 1> R2;
+ typedef std::ratio_multiply<R1, R2>::type R;
+ static_assert(R::num == 1 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<-1, 2> R1;
+ typedef std::ratio<1, 1> R2;
+ typedef std::ratio_multiply<R1, R2>::type R;
+ static_assert(R::num == -1 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<1, -2> R1;
+ typedef std::ratio<1, 1> R2;
+ typedef std::ratio_multiply<R1, R2>::type R;
+ static_assert(R::num == -1 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<1, 2> R1;
+ typedef std::ratio<-1, 1> R2;
+ typedef std::ratio_multiply<R1, R2>::type R;
+ static_assert(R::num == -1 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<1, 2> R1;
+ typedef std::ratio<1, -1> R2;
+ typedef std::ratio_multiply<R1, R2>::type R;
+ static_assert(R::num == -1 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<56987354, 467584654> R1;
+ typedef std::ratio<544668, 22145> R2;
+ typedef std::ratio_multiply<R1, R2>::type R;
+ static_assert(R::num == 15519594064236LL && R::den == 5177331081415LL, "");
+ }
+}
diff --git a/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_subtract.fail.cpp b/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_subtract.fail.cpp
index 7d03fb7a694..8b5ea5d2d32 100644
--- a/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_subtract.fail.cpp
+++ b/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_subtract.fail.cpp
@@ -1 +1,19 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio_subtract #include <ratio> int main() { typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<1, 1> R2; typedef std::ratio_subtract<R1, R2>::type R; } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio_subtract
+
+#include <ratio>
+
+int main()
+{
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<1, 1> R2;
+ typedef std::ratio_subtract<R1, R2>::type R;
+}
diff --git a/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_subtract.pass.cpp b/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_subtract.pass.cpp
index 3068ecaf997..11e53d1f84f 100644
--- a/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_subtract.pass.cpp
+++ b/libcxx/test/utilities/ratio/ratio.arithmetic/ratio_subtract.pass.cpp
@@ -1 +1,58 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio_subtract #include <ratio> int main() { { typedef std::ratio<1, 1> R1; typedef std::ratio<1, 1> R2; typedef std::ratio_subtract<R1, R2>::type R; static_assert(R::num == 0 && R::den == 1, ""); } { typedef std::ratio<1, 2> R1; typedef std::ratio<1, 1> R2; typedef std::ratio_subtract<R1, R2>::type R; static_assert(R::num == -1 && R::den == 2, ""); } { typedef std::ratio<-1, 2> R1; typedef std::ratio<1, 1> R2; typedef std::ratio_subtract<R1, R2>::type R; static_assert(R::num == -3 && R::den == 2, ""); } { typedef std::ratio<1, -2> R1; typedef std::ratio<1, 1> R2; typedef std::ratio_subtract<R1, R2>::type R; static_assert(R::num == -3 && R::den == 2, ""); } { typedef std::ratio<1, 2> R1; typedef std::ratio<-1, 1> R2; typedef std::ratio_subtract<R1, R2>::type R; static_assert(R::num == 3 && R::den == 2, ""); } { typedef std::ratio<1, 2> R1; typedef std::ratio<1, -1> R2; typedef std::ratio_subtract<R1, R2>::type R; static_assert(R::num == 3 && R::den == 2, ""); } { typedef std::ratio<56987354, 467584654> R1; typedef std::ratio<544668, 22145> R2; typedef std::ratio_subtract<R1, R2>::type R; static_assert(R::num == -126708206685271LL && R::den == 5177331081415LL, ""); } } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio_subtract
+
+#include <ratio>
+
+int main()
+{
+ {
+ typedef std::ratio<1, 1> R1;
+ typedef std::ratio<1, 1> R2;
+ typedef std::ratio_subtract<R1, R2>::type R;
+ static_assert(R::num == 0 && R::den == 1, "");
+ }
+ {
+ typedef std::ratio<1, 2> R1;
+ typedef std::ratio<1, 1> R2;
+ typedef std::ratio_subtract<R1, R2>::type R;
+ static_assert(R::num == -1 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<-1, 2> R1;
+ typedef std::ratio<1, 1> R2;
+ typedef std::ratio_subtract<R1, R2>::type R;
+ static_assert(R::num == -3 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<1, -2> R1;
+ typedef std::ratio<1, 1> R2;
+ typedef std::ratio_subtract<R1, R2>::type R;
+ static_assert(R::num == -3 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<1, 2> R1;
+ typedef std::ratio<-1, 1> R2;
+ typedef std::ratio_subtract<R1, R2>::type R;
+ static_assert(R::num == 3 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<1, 2> R1;
+ typedef std::ratio<1, -1> R2;
+ typedef std::ratio_subtract<R1, R2>::type R;
+ static_assert(R::num == 3 && R::den == 2, "");
+ }
+ {
+ typedef std::ratio<56987354, 467584654> R1;
+ typedef std::ratio<544668, 22145> R2;
+ typedef std::ratio_subtract<R1, R2>::type R;
+ static_assert(R::num == -126708206685271LL && R::den == 5177331081415LL, "");
+ }
+}
diff --git a/libcxx/test/utilities/ratio/ratio.comparison/ratio_equal.pass.cpp b/libcxx/test/utilities/ratio/ratio.comparison/ratio_equal.pass.cpp
index 7f77c02b4cf..8a78294bc2a 100644
--- a/libcxx/test/utilities/ratio/ratio.comparison/ratio_equal.pass.cpp
+++ b/libcxx/test/utilities/ratio/ratio.comparison/ratio_equal.pass.cpp
@@ -1 +1,56 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio_equal #include <ratio> int main() { { typedef std::ratio<1, 1> R1; typedef std::ratio<1, 1> R2; static_assert((std::ratio_equal<R1, R2>::value), ""); } { typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((std::ratio_equal<R1, R2>::value), ""); } { typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((std::ratio_equal<R1, R2>::value), ""); } { typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1; typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R2; static_assert((std::ratio_equal<R1, R2>::value), ""); } { typedef std::ratio<1, 1> R1; typedef std::ratio<1, -1> R2; static_assert((!std::ratio_equal<R1, R2>::value), ""); } { typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((!std::ratio_equal<R1, R2>::value), ""); } { typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((!std::ratio_equal<R1, R2>::value), ""); } { typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1; typedef std::ratio<1, -0x7FFFFFFFFFFFFFFFLL> R2; static_assert((!std::ratio_equal<R1, R2>::value), ""); } } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio_equal
+
+#include <ratio>
+
+int main()
+{
+ {
+ typedef std::ratio<1, 1> R1;
+ typedef std::ratio<1, 1> R2;
+ static_assert((std::ratio_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((std::ratio_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((std::ratio_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1;
+ typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R2;
+ static_assert((std::ratio_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1, 1> R1;
+ typedef std::ratio<1, -1> R2;
+ static_assert((!std::ratio_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((!std::ratio_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((!std::ratio_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1;
+ typedef std::ratio<1, -0x7FFFFFFFFFFFFFFFLL> R2;
+ static_assert((!std::ratio_equal<R1, R2>::value), "");
+ }
+}
diff --git a/libcxx/test/utilities/ratio/ratio.comparison/ratio_greater.pass.cpp b/libcxx/test/utilities/ratio/ratio.comparison/ratio_greater.pass.cpp
index 5f75f19dc5d..662f38444b2 100644
--- a/libcxx/test/utilities/ratio/ratio.comparison/ratio_greater.pass.cpp
+++ b/libcxx/test/utilities/ratio/ratio.comparison/ratio_greater.pass.cpp
@@ -1 +1,56 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio_greater #include <ratio> int main() { { typedef std::ratio<1, 1> R1; typedef std::ratio<1, 1> R2; static_assert((!std::ratio_greater<R1, R2>::value), ""); } { typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((!std::ratio_greater<R1, R2>::value), ""); } { typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((!std::ratio_greater<R1, R2>::value), ""); } { typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1; typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R2; static_assert((!std::ratio_greater<R1, R2>::value), ""); } { typedef std::ratio<1, 1> R1; typedef std::ratio<1, -1> R2; static_assert((std::ratio_greater<R1, R2>::value), ""); } { typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((std::ratio_greater<R1, R2>::value), ""); } { typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((!std::ratio_greater<R1, R2>::value), ""); } { typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1; typedef std::ratio<1, -0x7FFFFFFFFFFFFFFFLL> R2; static_assert((std::ratio_greater<R1, R2>::value), ""); } } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio_greater
+
+#include <ratio>
+
+int main()
+{
+ {
+ typedef std::ratio<1, 1> R1;
+ typedef std::ratio<1, 1> R2;
+ static_assert((!std::ratio_greater<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((!std::ratio_greater<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((!std::ratio_greater<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1;
+ typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R2;
+ static_assert((!std::ratio_greater<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1, 1> R1;
+ typedef std::ratio<1, -1> R2;
+ static_assert((std::ratio_greater<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((std::ratio_greater<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((!std::ratio_greater<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1;
+ typedef std::ratio<1, -0x7FFFFFFFFFFFFFFFLL> R2;
+ static_assert((std::ratio_greater<R1, R2>::value), "");
+ }
+}
diff --git a/libcxx/test/utilities/ratio/ratio.comparison/ratio_greater_equal.pass.cpp b/libcxx/test/utilities/ratio/ratio.comparison/ratio_greater_equal.pass.cpp
index 05533cfa7ac..1720294bb71 100644
--- a/libcxx/test/utilities/ratio/ratio.comparison/ratio_greater_equal.pass.cpp
+++ b/libcxx/test/utilities/ratio/ratio.comparison/ratio_greater_equal.pass.cpp
@@ -1 +1,56 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio_greater_equal #include <ratio> int main() { { typedef std::ratio<1, 1> R1; typedef std::ratio<1, 1> R2; static_assert((std::ratio_greater_equal<R1, R2>::value), ""); } { typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((std::ratio_greater_equal<R1, R2>::value), ""); } { typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((std::ratio_greater_equal<R1, R2>::value), ""); } { typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1; typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R2; static_assert((std::ratio_greater_equal<R1, R2>::value), ""); } { typedef std::ratio<1, 1> R1; typedef std::ratio<1, -1> R2; static_assert((std::ratio_greater_equal<R1, R2>::value), ""); } { typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((std::ratio_greater_equal<R1, R2>::value), ""); } { typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((!std::ratio_greater_equal<R1, R2>::value), ""); } { typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1; typedef std::ratio<1, -0x7FFFFFFFFFFFFFFFLL> R2; static_assert((std::ratio_greater_equal<R1, R2>::value), ""); } } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio_greater_equal
+
+#include <ratio>
+
+int main()
+{
+ {
+ typedef std::ratio<1, 1> R1;
+ typedef std::ratio<1, 1> R2;
+ static_assert((std::ratio_greater_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((std::ratio_greater_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((std::ratio_greater_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1;
+ typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R2;
+ static_assert((std::ratio_greater_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1, 1> R1;
+ typedef std::ratio<1, -1> R2;
+ static_assert((std::ratio_greater_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((std::ratio_greater_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((!std::ratio_greater_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1;
+ typedef std::ratio<1, -0x7FFFFFFFFFFFFFFFLL> R2;
+ static_assert((std::ratio_greater_equal<R1, R2>::value), "");
+ }
+}
diff --git a/libcxx/test/utilities/ratio/ratio.comparison/ratio_less.pass.cpp b/libcxx/test/utilities/ratio/ratio.comparison/ratio_less.pass.cpp
index 0b264d840df..2cc8b960ea3 100644
--- a/libcxx/test/utilities/ratio/ratio.comparison/ratio_less.pass.cpp
+++ b/libcxx/test/utilities/ratio/ratio.comparison/ratio_less.pass.cpp
@@ -1 +1,86 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio_less #include <ratio> int main() { { typedef std::ratio<1, 1> R1; typedef std::ratio<1, 1> R2; static_assert((!std::ratio_less<R1, R2>::value), ""); } { typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((!std::ratio_less<R1, R2>::value), ""); } { typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((!std::ratio_less<R1, R2>::value), ""); } { typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1; typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R2; static_assert((!std::ratio_less<R1, R2>::value), ""); } { typedef std::ratio<1, 1> R1; typedef std::ratio<1, -1> R2; static_assert((!std::ratio_less<R1, R2>::value), ""); } { typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((!std::ratio_less<R1, R2>::value), ""); } { typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((std::ratio_less<R1, R2>::value), ""); } { typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1; typedef std::ratio<1, -0x7FFFFFFFFFFFFFFFLL> R2; static_assert((!std::ratio_less<R1, R2>::value), ""); } { typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 0x7FFFFFFFFFFFFFFELL> R1; typedef std::ratio<0x7FFFFFFFFFFFFFFDLL, 0x7FFFFFFFFFFFFFFCLL> R2; static_assert((std::ratio_less<R1, R2>::value), ""); } { typedef std::ratio<0x7FFFFFFFFFFFFFFDLL, 0x7FFFFFFFFFFFFFFCLL> R1; typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 0x7FFFFFFFFFFFFFFELL> R2; static_assert((!std::ratio_less<R1, R2>::value), ""); } { typedef std::ratio<-0x7FFFFFFFFFFFFFFDLL, 0x7FFFFFFFFFFFFFFCLL> R1; typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 0x7FFFFFFFFFFFFFFELL> R2; static_assert((std::ratio_less<R1, R2>::value), ""); } { typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 0x7FFFFFFFFFFFFFFELL> R1; typedef std::ratio<0x7FFFFFFFFFFFFFFELL, 0x7FFFFFFFFFFFFFFDLL> R2; static_assert((std::ratio_less<R1, R2>::value), ""); } { typedef std::ratio<641981, 1339063> R1; typedef std::ratio<1291640, 2694141LL> R2; static_assert((!std::ratio_less<R1, R2>::value), ""); } { typedef std::ratio<1291640, 2694141LL> R1; typedef std::ratio<641981, 1339063> R2; static_assert((std::ratio_less<R1, R2>::value), ""); } } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio_less
+
+#include <ratio>
+
+int main()
+{
+ {
+ typedef std::ratio<1, 1> R1;
+ typedef std::ratio<1, 1> R2;
+ static_assert((!std::ratio_less<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((!std::ratio_less<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((!std::ratio_less<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1;
+ typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R2;
+ static_assert((!std::ratio_less<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1, 1> R1;
+ typedef std::ratio<1, -1> R2;
+ static_assert((!std::ratio_less<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((!std::ratio_less<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((std::ratio_less<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1;
+ typedef std::ratio<1, -0x7FFFFFFFFFFFFFFFLL> R2;
+ static_assert((!std::ratio_less<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 0x7FFFFFFFFFFFFFFELL> R1;
+ typedef std::ratio<0x7FFFFFFFFFFFFFFDLL, 0x7FFFFFFFFFFFFFFCLL> R2;
+ static_assert((std::ratio_less<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<0x7FFFFFFFFFFFFFFDLL, 0x7FFFFFFFFFFFFFFCLL> R1;
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 0x7FFFFFFFFFFFFFFELL> R2;
+ static_assert((!std::ratio_less<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFDLL, 0x7FFFFFFFFFFFFFFCLL> R1;
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 0x7FFFFFFFFFFFFFFELL> R2;
+ static_assert((std::ratio_less<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 0x7FFFFFFFFFFFFFFELL> R1;
+ typedef std::ratio<0x7FFFFFFFFFFFFFFELL, 0x7FFFFFFFFFFFFFFDLL> R2;
+ static_assert((std::ratio_less<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<641981, 1339063> R1;
+ typedef std::ratio<1291640, 2694141LL> R2;
+ static_assert((!std::ratio_less<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1291640, 2694141LL> R1;
+ typedef std::ratio<641981, 1339063> R2;
+ static_assert((std::ratio_less<R1, R2>::value), "");
+ }
+}
diff --git a/libcxx/test/utilities/ratio/ratio.comparison/ratio_less_equal.pass.cpp b/libcxx/test/utilities/ratio/ratio.comparison/ratio_less_equal.pass.cpp
index 3db02068ab3..d84a4065667 100644
--- a/libcxx/test/utilities/ratio/ratio.comparison/ratio_less_equal.pass.cpp
+++ b/libcxx/test/utilities/ratio/ratio.comparison/ratio_less_equal.pass.cpp
@@ -1 +1,56 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio_less_equal #include <ratio> int main() { { typedef std::ratio<1, 1> R1; typedef std::ratio<1, 1> R2; static_assert((std::ratio_less_equal<R1, R2>::value), ""); } { typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((std::ratio_less_equal<R1, R2>::value), ""); } { typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((std::ratio_less_equal<R1, R2>::value), ""); } { typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1; typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R2; static_assert((std::ratio_less_equal<R1, R2>::value), ""); } { typedef std::ratio<1, 1> R1; typedef std::ratio<1, -1> R2; static_assert((!std::ratio_less_equal<R1, R2>::value), ""); } { typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((!std::ratio_less_equal<R1, R2>::value), ""); } { typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((std::ratio_less_equal<R1, R2>::value), ""); } { typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1; typedef std::ratio<1, -0x7FFFFFFFFFFFFFFFLL> R2; static_assert((!std::ratio_less_equal<R1, R2>::value), ""); } } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio_less_equal
+
+#include <ratio>
+
+int main()
+{
+ {
+ typedef std::ratio<1, 1> R1;
+ typedef std::ratio<1, 1> R2;
+ static_assert((std::ratio_less_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((std::ratio_less_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((std::ratio_less_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1;
+ typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R2;
+ static_assert((std::ratio_less_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1, 1> R1;
+ typedef std::ratio<1, -1> R2;
+ static_assert((!std::ratio_less_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((!std::ratio_less_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((std::ratio_less_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1;
+ typedef std::ratio<1, -0x7FFFFFFFFFFFFFFFLL> R2;
+ static_assert((!std::ratio_less_equal<R1, R2>::value), "");
+ }
+}
diff --git a/libcxx/test/utilities/ratio/ratio.comparison/ratio_not_equal.pass.cpp b/libcxx/test/utilities/ratio/ratio.comparison/ratio_not_equal.pass.cpp
index fa35cef7046..0bf77dac1bc 100644
--- a/libcxx/test/utilities/ratio/ratio.comparison/ratio_not_equal.pass.cpp
+++ b/libcxx/test/utilities/ratio/ratio.comparison/ratio_not_equal.pass.cpp
@@ -1 +1,56 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio_not_equal #include <ratio> int main() { { typedef std::ratio<1, 1> R1; typedef std::ratio<1, 1> R2; static_assert((!std::ratio_not_equal<R1, R2>::value), ""); } { typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((!std::ratio_not_equal<R1, R2>::value), ""); } { typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((!std::ratio_not_equal<R1, R2>::value), ""); } { typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1; typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R2; static_assert((!std::ratio_not_equal<R1, R2>::value), ""); } { typedef std::ratio<1, 1> R1; typedef std::ratio<1, -1> R2; static_assert((std::ratio_not_equal<R1, R2>::value), ""); } { typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((std::ratio_not_equal<R1, R2>::value), ""); } { typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1; typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2; static_assert((std::ratio_not_equal<R1, R2>::value), ""); } { typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1; typedef std::ratio<1, -0x7FFFFFFFFFFFFFFFLL> R2; static_assert((std::ratio_not_equal<R1, R2>::value), ""); } } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio_not_equal
+
+#include <ratio>
+
+int main()
+{
+ {
+ typedef std::ratio<1, 1> R1;
+ typedef std::ratio<1, 1> R2;
+ static_assert((!std::ratio_not_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((!std::ratio_not_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((!std::ratio_not_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1;
+ typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R2;
+ static_assert((!std::ratio_not_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1, 1> R1;
+ typedef std::ratio<1, -1> R2;
+ static_assert((std::ratio_not_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((std::ratio_not_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<-0x7FFFFFFFFFFFFFFFLL, 1> R1;
+ typedef std::ratio<0x7FFFFFFFFFFFFFFFLL, 1> R2;
+ static_assert((std::ratio_not_equal<R1, R2>::value), "");
+ }
+ {
+ typedef std::ratio<1, 0x7FFFFFFFFFFFFFFFLL> R1;
+ typedef std::ratio<1, -0x7FFFFFFFFFFFFFFFLL> R2;
+ static_assert((std::ratio_not_equal<R1, R2>::value), "");
+ }
+}
diff --git a/libcxx/test/utilities/ratio/ratio.ratio/ratio.pass.cpp b/libcxx/test/utilities/ratio/ratio.ratio/ratio.pass.cpp
index c2c8166fbe8..36d7965edfe 100644
--- a/libcxx/test/utilities/ratio/ratio.ratio/ratio.pass.cpp
+++ b/libcxx/test/utilities/ratio/ratio.ratio/ratio.pass.cpp
@@ -1 +1,44 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio: The static data members num and den shall have thcommon // divisor of the absolute values of N and D: #include <ratio> template <long long N, long long D, long long eN, long long eD> void test() { static_assert((std::ratio<N, D>::num == eN), ""); static_assert((std::ratio<N, D>::den == eD), ""); } int main() { test<1, 1, 1, 1>(); test<1, 10, 1, 10>(); test<10, 10, 1, 1>(); test<10, 1, 10, 1>(); test<12, 4, 3, 1>(); test<12, -4, -3, 1>(); test<-12, 4, -3, 1>(); test<-12, -4, 3, 1>(); test<4, 12, 1, 3>(); test<4, -12, -1, 3>(); test<-4, 12, -1, 3>(); test<-4, -12, 1, 3>(); test<222, 333, 2, 3>(); test<222, -333, -2, 3>(); test<-222, 333, -2, 3>(); test<-222, -333, 2, 3>(); test<0x7FFFFFFFFFFFFFFFLL, 127, 72624976668147841LL, 1>(); test<-0x7FFFFFFFFFFFFFFFLL, 127, -72624976668147841LL, 1>(); test<0x7FFFFFFFFFFFFFFFLL, -127, -72624976668147841LL, 1>(); test<-0x7FFFFFFFFFFFFFFFLL, -127, 72624976668147841LL, 1>(); } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio: The static data members num and den shall have thcommon
+// divisor of the absolute values of N and D:
+
+#include <ratio>
+
+template <long long N, long long D, long long eN, long long eD>
+void test()
+{
+ static_assert((std::ratio<N, D>::num == eN), "");
+ static_assert((std::ratio<N, D>::den == eD), "");
+}
+
+int main()
+{
+ test<1, 1, 1, 1>();
+ test<1, 10, 1, 10>();
+ test<10, 10, 1, 1>();
+ test<10, 1, 10, 1>();
+ test<12, 4, 3, 1>();
+ test<12, -4, -3, 1>();
+ test<-12, 4, -3, 1>();
+ test<-12, -4, 3, 1>();
+ test<4, 12, 1, 3>();
+ test<4, -12, -1, 3>();
+ test<-4, 12, -1, 3>();
+ test<-4, -12, 1, 3>();
+ test<222, 333, 2, 3>();
+ test<222, -333, -2, 3>();
+ test<-222, 333, -2, 3>();
+ test<-222, -333, 2, 3>();
+ test<0x7FFFFFFFFFFFFFFFLL, 127, 72624976668147841LL, 1>();
+ test<-0x7FFFFFFFFFFFFFFFLL, 127, -72624976668147841LL, 1>();
+ test<0x7FFFFFFFFFFFFFFFLL, -127, -72624976668147841LL, 1>();
+ test<-0x7FFFFFFFFFFFFFFFLL, -127, 72624976668147841LL, 1>();
+}
diff --git a/libcxx/test/utilities/ratio/ratio.ratio/ratio1.fail.cpp b/libcxx/test/utilities/ratio/ratio.ratio/ratio1.fail.cpp
index f3d12d2a0e7..4860ce9d72a 100644
--- a/libcxx/test/utilities/ratio/ratio.ratio/ratio1.fail.cpp
+++ b/libcxx/test/utilities/ratio/ratio.ratio/ratio1.fail.cpp
@@ -1 +1,18 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio: The template argument D shall not be zero #include <ratio> #include <cstdint> int main() { const std::intmax_t t1 = std::ratio<1, 0>::num; } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio: The template argument D shall not be zero
+
+#include <ratio>
+#include <cstdint>
+
+int main()
+{
+ const std::intmax_t t1 = std::ratio<1, 0>::num;
+}
diff --git a/libcxx/test/utilities/ratio/ratio.ratio/ratio2.fail.cpp b/libcxx/test/utilities/ratio/ratio.ratio/ratio2.fail.cpp
index e371ed9d064..e854aca4aab 100644
--- a/libcxx/test/utilities/ratio/ratio.ratio/ratio2.fail.cpp
+++ b/libcxx/test/utilities/ratio/ratio.ratio/ratio2.fail.cpp
@@ -1 +1,19 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio: the absolute values of the template arguments N and D // shall be representable by type intmax_t. #include <ratio> #include <cstdint> int main() { const std::intmax_t t1 = std::ratio<0x8000000000000000ULL, 1>::num; } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio: the absolute values of the template arguments N and D
+// shall be representable by type intmax_t.
+
+#include <ratio>
+#include <cstdint>
+
+int main()
+{
+ const std::intmax_t t1 = std::ratio<0x8000000000000000ULL, 1>::num;
+}
diff --git a/libcxx/test/utilities/ratio/ratio.ratio/ratio3.fail.cpp b/libcxx/test/utilities/ratio/ratio.ratio/ratio3.fail.cpp
index 36097d023b2..56616cf951c 100644
--- a/libcxx/test/utilities/ratio/ratio.ratio/ratio3.fail.cpp
+++ b/libcxx/test/utilities/ratio/ratio.ratio/ratio3.fail.cpp
@@ -1 +1,19 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio: the absolute values of the template arguments N and D // shall be representable by type intmax_t. #include <ratio> #include <cstdint> int main() { const std::intmax_t t1 = std::ratio<1, 0x8000000000000000ULL>::num; } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio: the absolute values of the template arguments N and D
+// shall be representable by type intmax_t.
+
+#include <ratio>
+#include <cstdint>
+
+int main()
+{
+ const std::intmax_t t1 = std::ratio<1, 0x8000000000000000ULL>::num;
+}
diff --git a/libcxx/test/utilities/ratio/ratio.si/nothing_to_do.pass.cpp b/libcxx/test/utilities/ratio/ratio.si/nothing_to_do.pass.cpp
index e8db90cbee0..b89f168e9c4 100644
--- a/libcxx/test/utilities/ratio/ratio.si/nothing_to_do.pass.cpp
+++ b/libcxx/test/utilities/ratio/ratio.si/nothing_to_do.pass.cpp
@@ -1 +1,12 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// int main() { } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+int main()
+{
+}
diff --git a/libcxx/test/utilities/ratio/typedefs.pass.cpp b/libcxx/test/utilities/ratio/typedefs.pass.cpp
index 83ef47ec2e2..adbe0afd937 100644
--- a/libcxx/test/utilities/ratio/typedefs.pass.cpp
+++ b/libcxx/test/utilities/ratio/typedefs.pass.cpp
@@ -1 +1,32 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // test ratio typedef's #include <ratio> int main() { static_assert(std::atto::num == 1 && std::atto::den == 1000000000000000000ULL, ""); static_assert(std::femto::num == 1 && std::femto::den == 1000000000000000ULL, ""); static_assert(std::pico::num == 1 && std::pico::den == 1000000000000ULL, ""); static_assert(std::nano::num == 1 && std::nano::den == 1000000000ULL, ""); static_assert(std::micro::num == 1 && std::micro::den == 1000000ULL, ""); static_assert(std::milli::num == 1 && std::milli::den == 1000ULL, ""); static_assert(std::centi::num == 1 && std::centi::den == 100ULL, ""); static_assert(std::deci::num == 1 && std::deci::den == 10ULL, ""); static_assert(std::deca::num == 10ULL && std::deca::den == 1, ""); static_assert(std::hecto::num == 100ULL && std::hecto::den == 1, ""); static_assert(std::kilo::num == 1000ULL && std::kilo::den == 1, ""); static_assert(std::mega::num == 1000000ULL && std::mega::den == 1, ""); static_assert(std::giga::num == 1000000000ULL && std::giga::den == 1, ""); static_assert(std::tera::num == 1000000000000ULL && std::tera::den == 1, ""); static_assert(std::peta::num == 1000000000000000ULL && std::peta::den == 1, ""); static_assert(std::exa::num == 1000000000000000000ULL && std::exa::den == 1, ""); } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// test ratio typedef's
+
+#include <ratio>
+
+int main()
+{
+ static_assert(std::atto::num == 1 && std::atto::den == 1000000000000000000ULL, "");
+ static_assert(std::femto::num == 1 && std::femto::den == 1000000000000000ULL, "");
+ static_assert(std::pico::num == 1 && std::pico::den == 1000000000000ULL, "");
+ static_assert(std::nano::num == 1 && std::nano::den == 1000000000ULL, "");
+ static_assert(std::micro::num == 1 && std::micro::den == 1000000ULL, "");
+ static_assert(std::milli::num == 1 && std::milli::den == 1000ULL, "");
+ static_assert(std::centi::num == 1 && std::centi::den == 100ULL, "");
+ static_assert(std::deci::num == 1 && std::deci::den == 10ULL, "");
+ static_assert(std::deca::num == 10ULL && std::deca::den == 1, "");
+ static_assert(std::hecto::num == 100ULL && std::hecto::den == 1, "");
+ static_assert(std::kilo::num == 1000ULL && std::kilo::den == 1, "");
+ static_assert(std::mega::num == 1000000ULL && std::mega::den == 1, "");
+ static_assert(std::giga::num == 1000000000ULL && std::giga::den == 1, "");
+ static_assert(std::tera::num == 1000000000000ULL && std::tera::den == 1, "");
+ static_assert(std::peta::num == 1000000000000000ULL && std::peta::den == 1, "");
+ static_assert(std::exa::num == 1000000000000000000ULL && std::exa::den == 1, "");
+}
diff --git a/libcxx/test/utilities/ratio/version.pass.cpp b/libcxx/test/utilities/ratio/version.pass.cpp
index 1d6b9e4c938..48d3133bfab 100644
--- a/libcxx/test/utilities/ratio/version.pass.cpp
+++ b/libcxx/test/utilities/ratio/version.pass.cpp
@@ -1 +1,20 @@
-//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // <ratio> #include <ratio> #ifndef _LIBCPP_VERSION #error _LIBCPP_VERSION not defined #endif int main() { } \ No newline at end of file
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <ratio>
+
+#include <ratio>
+
+#ifndef _LIBCPP_VERSION
+#error _LIBCPP_VERSION not defined
+#endif
+
+int main()
+{
+}
OpenPOWER on IntegriCloud