summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/hana/test/ext/std/ratio
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/hana/test/ext/std/ratio')
-rw-r--r--src/boost/libs/hana/test/ext/std/ratio/div.cpp24
-rw-r--r--src/boost/libs/hana/test/ext/std/ratio/equal.cpp34
-rw-r--r--src/boost/libs/hana/test/ext/std/ratio/laws.cpp37
-rw-r--r--src/boost/libs/hana/test/ext/std/ratio/less.cpp29
-rw-r--r--src/boost/libs/hana/test/ext/std/ratio/minus.cpp19
-rw-r--r--src/boost/libs/hana/test/ext/std/ratio/mod.cpp24
-rw-r--r--src/boost/libs/hana/test/ext/std/ratio/mult.cpp19
-rw-r--r--src/boost/libs/hana/test/ext/std/ratio/one.cpp24
-rw-r--r--src/boost/libs/hana/test/ext/std/ratio/plus.cpp19
-rw-r--r--src/boost/libs/hana/test/ext/std/ratio/to.cpp36
-rw-r--r--src/boost/libs/hana/test/ext/std/ratio/zero.cpp24
11 files changed, 289 insertions, 0 deletions
diff --git a/src/boost/libs/hana/test/ext/std/ratio/div.cpp b/src/boost/libs/hana/test/ext/std/ratio/div.cpp
new file mode 100644
index 000000000..327717fcb
--- /dev/null
+++ b/src/boost/libs/hana/test/ext/std/ratio/div.cpp
@@ -0,0 +1,24 @@
+// Copyright Louis Dionne 2013-2017
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
+#include <boost/hana/assert.hpp>
+#include <boost/hana/div.hpp>
+#include <boost/hana/equal.hpp>
+#include <boost/hana/ext/std/ratio.hpp>
+
+#include <ratio>
+namespace hana = boost::hana;
+
+
+int main() {
+ BOOST_HANA_CONSTANT_CHECK(hana::equal(
+ hana::div(std::ratio<6>{}, std::ratio<4>{}),
+ std::ratio<6, 4>{}
+ ));
+
+ BOOST_HANA_CONSTANT_CHECK(hana::equal(
+ hana::div(std::ratio<3, 4>{}, std::ratio<5, 10>{}),
+ std::ratio<3*10, 4*5>{}
+ ));
+}
diff --git a/src/boost/libs/hana/test/ext/std/ratio/equal.cpp b/src/boost/libs/hana/test/ext/std/ratio/equal.cpp
new file mode 100644
index 000000000..f72ec8980
--- /dev/null
+++ b/src/boost/libs/hana/test/ext/std/ratio/equal.cpp
@@ -0,0 +1,34 @@
+// Copyright Louis Dionne 2013-2017
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
+#include <boost/hana/assert.hpp>
+#include <boost/hana/equal.hpp>
+#include <boost/hana/ext/std/ratio.hpp>
+#include <boost/hana/not.hpp>
+
+#include <ratio>
+namespace hana = boost::hana;
+
+
+int main() {
+ BOOST_HANA_CONSTANT_CHECK(hana::equal(
+ std::ratio<0>{},
+ std::ratio<0>{}
+ ));
+
+ BOOST_HANA_CONSTANT_CHECK(hana::equal(
+ std::ratio<3>{},
+ std::ratio<3>{}
+ ));
+
+ BOOST_HANA_CONSTANT_CHECK(hana::equal(
+ std::ratio<3, 5>{},
+ std::ratio<6, 10>{}
+ ));
+
+ BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::equal(
+ std::ratio<4, 5>{},
+ std::ratio<6, 10>{}
+ )));
+}
diff --git a/src/boost/libs/hana/test/ext/std/ratio/laws.cpp b/src/boost/libs/hana/test/ext/std/ratio/laws.cpp
new file mode 100644
index 000000000..460fe3c81
--- /dev/null
+++ b/src/boost/libs/hana/test/ext/std/ratio/laws.cpp
@@ -0,0 +1,37 @@
+// Copyright Louis Dionne 2013-2017
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
+#include <boost/hana/ext/std/ratio.hpp>
+#include <boost/hana/tuple.hpp>
+
+#include <laws/comparable.hpp>
+#include <laws/euclidean_ring.hpp>
+#include <laws/group.hpp>
+#include <laws/monoid.hpp>
+#include <laws/orderable.hpp>
+#include <laws/ring.hpp>
+
+#include <ratio>
+namespace hana = boost::hana;
+
+
+int main() {
+ auto ratios = hana::make_tuple(
+ std::ratio<0>{}
+ , std::ratio<1, 3>{}
+ , std::ratio<1, 2>{}
+ , std::ratio<2, 6>{}
+ , std::ratio<3, 1>{}
+ , std::ratio<7, 8>{}
+ , std::ratio<3, 5>{}
+ , std::ratio<2, 1>{}
+ );
+
+ hana::test::TestComparable<hana::ext::std::ratio_tag>{ratios};
+ hana::test::TestOrderable<hana::ext::std::ratio_tag>{ratios};
+ hana::test::TestMonoid<hana::ext::std::ratio_tag>{ratios};
+ hana::test::TestGroup<hana::ext::std::ratio_tag>{ratios};
+ hana::test::TestRing<hana::ext::std::ratio_tag>{ratios};
+ hana::test::TestEuclideanRing<hana::ext::std::ratio_tag>{ratios};
+}
diff --git a/src/boost/libs/hana/test/ext/std/ratio/less.cpp b/src/boost/libs/hana/test/ext/std/ratio/less.cpp
new file mode 100644
index 000000000..79e8dbc42
--- /dev/null
+++ b/src/boost/libs/hana/test/ext/std/ratio/less.cpp
@@ -0,0 +1,29 @@
+// Copyright Louis Dionne 2013-2017
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
+#include <boost/hana/assert.hpp>
+#include <boost/hana/ext/std/ratio.hpp>
+#include <boost/hana/less.hpp>
+#include <boost/hana/not.hpp>
+
+#include <ratio>
+namespace hana = boost::hana;
+
+
+int main() {
+ BOOST_HANA_CONSTANT_CHECK(hana::less(
+ std::ratio<1>{},
+ std::ratio<3>{}
+ ));
+
+ BOOST_HANA_CONSTANT_CHECK(hana::less(
+ std::ratio<4, 10>{},
+ std::ratio<3, 5>{}
+ ));
+
+ BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::less(
+ std::ratio<3, 5>{},
+ std::ratio<4, 10>{}
+ )));
+}
diff --git a/src/boost/libs/hana/test/ext/std/ratio/minus.cpp b/src/boost/libs/hana/test/ext/std/ratio/minus.cpp
new file mode 100644
index 000000000..9a6bc4199
--- /dev/null
+++ b/src/boost/libs/hana/test/ext/std/ratio/minus.cpp
@@ -0,0 +1,19 @@
+// Copyright Louis Dionne 2013-2017
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
+#include <boost/hana/assert.hpp>
+#include <boost/hana/equal.hpp>
+#include <boost/hana/ext/std/ratio.hpp>
+#include <boost/hana/minus.hpp>
+
+#include <ratio>
+namespace hana = boost::hana;
+
+
+int main() {
+ BOOST_HANA_CONSTANT_CHECK(hana::equal(
+ hana::minus(std::ratio<3, 4>{}, std::ratio<5, 10>{}),
+ std::ratio<3*10 - 5*4, 4*10>{}
+ ));
+}
diff --git a/src/boost/libs/hana/test/ext/std/ratio/mod.cpp b/src/boost/libs/hana/test/ext/std/ratio/mod.cpp
new file mode 100644
index 000000000..24c748eb3
--- /dev/null
+++ b/src/boost/libs/hana/test/ext/std/ratio/mod.cpp
@@ -0,0 +1,24 @@
+// Copyright Louis Dionne 2013-2017
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
+#include <boost/hana/assert.hpp>
+#include <boost/hana/equal.hpp>
+#include <boost/hana/ext/std/ratio.hpp>
+#include <boost/hana/mod.hpp>
+
+#include <ratio>
+namespace hana = boost::hana;
+
+
+int main() {
+ BOOST_HANA_CONSTANT_CHECK(hana::equal(
+ hana::mod(std::ratio<6>{}, std::ratio<4>{}),
+ std::ratio<0>{}
+ ));
+
+ BOOST_HANA_CONSTANT_CHECK(hana::equal(
+ hana::mod(std::ratio<3, 4>{}, std::ratio<5, 10>{}),
+ std::ratio<0>{}
+ ));
+}
diff --git a/src/boost/libs/hana/test/ext/std/ratio/mult.cpp b/src/boost/libs/hana/test/ext/std/ratio/mult.cpp
new file mode 100644
index 000000000..5f345bf2f
--- /dev/null
+++ b/src/boost/libs/hana/test/ext/std/ratio/mult.cpp
@@ -0,0 +1,19 @@
+// Copyright Louis Dionne 2013-2017
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
+#include <boost/hana/assert.hpp>
+#include <boost/hana/equal.hpp>
+#include <boost/hana/ext/std/ratio.hpp>
+#include <boost/hana/mult.hpp>
+
+#include <ratio>
+namespace hana = boost::hana;
+
+
+int main() {
+ BOOST_HANA_CONSTANT_CHECK(hana::equal(
+ hana::mult(std::ratio<3, 4>{}, std::ratio<5, 10>{}),
+ std::ratio<3*5, 4*10>{}
+ ));
+}
diff --git a/src/boost/libs/hana/test/ext/std/ratio/one.cpp b/src/boost/libs/hana/test/ext/std/ratio/one.cpp
new file mode 100644
index 000000000..a05ac1be1
--- /dev/null
+++ b/src/boost/libs/hana/test/ext/std/ratio/one.cpp
@@ -0,0 +1,24 @@
+// Copyright Louis Dionne 2013-2017
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
+#include <boost/hana/assert.hpp>
+#include <boost/hana/equal.hpp>
+#include <boost/hana/ext/std/ratio.hpp>
+#include <boost/hana/one.hpp>
+
+#include <ratio>
+namespace hana = boost::hana;
+
+
+int main() {
+ BOOST_HANA_CONSTANT_CHECK(hana::equal(
+ hana::one<hana::ext::std::ratio_tag>(),
+ std::ratio<1, 1>{}
+ ));
+
+ BOOST_HANA_CONSTANT_CHECK(hana::equal(
+ hana::one<hana::ext::std::ratio_tag>(),
+ std::ratio<2, 2>{}
+ ));
+}
diff --git a/src/boost/libs/hana/test/ext/std/ratio/plus.cpp b/src/boost/libs/hana/test/ext/std/ratio/plus.cpp
new file mode 100644
index 000000000..33a47bd9d
--- /dev/null
+++ b/src/boost/libs/hana/test/ext/std/ratio/plus.cpp
@@ -0,0 +1,19 @@
+// Copyright Louis Dionne 2013-2017
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
+#include <boost/hana/assert.hpp>
+#include <boost/hana/equal.hpp>
+#include <boost/hana/ext/std/ratio.hpp>
+#include <boost/hana/plus.hpp>
+
+#include <ratio>
+namespace hana = boost::hana;
+
+
+int main() {
+ BOOST_HANA_CONSTANT_CHECK(hana::equal(
+ hana::plus(std::ratio<3, 4>{}, std::ratio<5, 10>{}),
+ std::ratio<3*10 + 5*4, 4*10>{}
+ ));
+}
diff --git a/src/boost/libs/hana/test/ext/std/ratio/to.cpp b/src/boost/libs/hana/test/ext/std/ratio/to.cpp
new file mode 100644
index 000000000..2795c990a
--- /dev/null
+++ b/src/boost/libs/hana/test/ext/std/ratio/to.cpp
@@ -0,0 +1,36 @@
+// Copyright Louis Dionne 2013-2017
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
+#include <boost/hana/assert.hpp>
+#include <boost/hana/core/to.hpp>
+#include <boost/hana/equal.hpp>
+#include <boost/hana/ext/std/ratio.hpp>
+
+#include <laws/base.hpp>
+#include <support/cnumeric.hpp>
+
+#include <ratio>
+#include <utility>
+namespace hana = boost::hana;
+
+
+int main() {
+ // Conversion from a Constant to a std::ratio
+ {
+ BOOST_HANA_CONSTANT_CHECK(hana::equal(
+ hana::to<hana::ext::std::ratio_tag>(cnumeric<int, 0>),
+ std::ratio<0>{}
+ ));
+
+ BOOST_HANA_CONSTANT_CHECK(hana::equal(
+ hana::to<hana::ext::std::ratio_tag>(cnumeric<int, 1>),
+ std::ratio<1>{}
+ ));
+
+ BOOST_HANA_CONSTANT_CHECK(hana::equal(
+ hana::to<hana::ext::std::ratio_tag>(cnumeric<int, 3>),
+ std::ratio<3>{}
+ ));
+ }
+}
diff --git a/src/boost/libs/hana/test/ext/std/ratio/zero.cpp b/src/boost/libs/hana/test/ext/std/ratio/zero.cpp
new file mode 100644
index 000000000..af0fa1711
--- /dev/null
+++ b/src/boost/libs/hana/test/ext/std/ratio/zero.cpp
@@ -0,0 +1,24 @@
+// Copyright Louis Dionne 2013-2017
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
+#include <boost/hana/assert.hpp>
+#include <boost/hana/equal.hpp>
+#include <boost/hana/ext/std/ratio.hpp>
+#include <boost/hana/zero.hpp>
+
+#include <ratio>
+namespace hana = boost::hana;
+
+
+int main() {
+ BOOST_HANA_CONSTANT_CHECK(hana::equal(
+ hana::zero<hana::ext::std::ratio_tag>(),
+ std::ratio<0, 1>{}
+ ));
+
+ BOOST_HANA_CONSTANT_CHECK(hana::equal(
+ hana::zero<hana::ext::std::ratio_tag>(),
+ std::ratio<0, 2>{}
+ ));
+}