From 19fcec84d8d7d21e796c7624e521b60d28ee21ed Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 20:45:59 +0200 Subject: Adding upstream version 16.2.11+ds. Signed-off-by: Daniel Baumann --- .../hana/test/detail/canonical_constant/laws.cpp | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/boost/libs/hana/test/detail/canonical_constant/laws.cpp (limited to 'src/boost/libs/hana/test/detail/canonical_constant/laws.cpp') diff --git a/src/boost/libs/hana/test/detail/canonical_constant/laws.cpp b/src/boost/libs/hana/test/detail/canonical_constant/laws.cpp new file mode 100644 index 000000000..9dffcb526 --- /dev/null +++ b/src/boost/libs/hana/test/detail/canonical_constant/laws.cpp @@ -0,0 +1,56 @@ +// 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 +#include + +#include +#include +#include +#include +#include +#include +#include +#include +namespace hana = boost::hana; + + +template +struct canonical { + static constexpr T value = v; + using hana_tag = hana::detail::CanonicalConstant; +}; + +int main() { + auto ints = hana::make_tuple( + canonical{}, canonical{}, canonical{}, + canonical{}, canonical{}, canonical{} + ); + + auto bools = hana::make_tuple(canonical{}, canonical{}); + + // Constant + hana::test::TestConstant>{ints, hana::tuple_t}; + hana::test::TestConstant>{bools, hana::tuple_t}; + + // Monoid, Group, Ring, EuclideanRing + hana::test::TestMonoid>{ints}; + hana::test::TestGroup>{ints}; + hana::test::TestRing>{ints}; + hana::test::TestEuclideanRing>{ints}; + + // Logical + { + auto ints = hana::make_tuple( + canonical{}, canonical{}, + canonical{}, canonical{} + ); + hana::test::TestLogical>{ints}; + hana::test::TestLogical>{bools}; + } + + // Comparable and Orderable + hana::test::TestComparable>{ints}; + hana::test::TestOrderable>{ints}; +} -- cgit v1.2.3