2
0
mirror of https://github.com/boostorg/hana.git synced 2026-02-24 04:02:12 +00:00

Use finer grained assertions acknowledging Constants

This commit is contained in:
Louis Dionne
2014-08-05 10:37:54 -04:00
parent bf5eb10c46
commit d132db0ebf
436 changed files with 2672 additions and 2554 deletions

View File

@@ -6,9 +6,9 @@ Distributed under the Boost Software License, Version 1.0.
#include <boost/hana/functional.hpp>
#include <boost/hana/detail/assert.hpp>
#include <boost/hana/detail/constexpr.hpp>
#include <boost/hana/detail/minimal/comparable.hpp>
#include <boost/hana/detail/static_assert.hpp>
#include <tuple>
using namespace boost::hana;
@@ -26,16 +26,16 @@ template <int i>
constexpr auto x = detail::minimal::comparable<>(i);
int main() {
BOOST_HANA_STATIC_ASSERT(on(f, g)() == f());
BOOST_HANA_STATIC_ASSERT(on(f, g)(x<0>) == f(g(x<0>)));
BOOST_HANA_STATIC_ASSERT(on(f, g)(x<0>, x<1>) == f(g(x<0>), g(x<1>)));
BOOST_HANA_STATIC_ASSERT(on(f, g)(x<0>, x<1>, x<2>) == f(g(x<0>), g(x<1>), g(x<2>)));
BOOST_HANA_STATIC_ASSERT(on(f, g)(x<0>, x<1>, x<2>, x<3>) == f(g(x<0>), g(x<1>), g(x<2>), g(x<3>)));
BOOST_HANA_CONSTEXPR_ASSERT(on(f, g)() == f());
BOOST_HANA_CONSTEXPR_ASSERT(on(f, g)(x<0>) == f(g(x<0>)));
BOOST_HANA_CONSTEXPR_ASSERT(on(f, g)(x<0>, x<1>) == f(g(x<0>), g(x<1>)));
BOOST_HANA_CONSTEXPR_ASSERT(on(f, g)(x<0>, x<1>, x<2>) == f(g(x<0>), g(x<1>), g(x<2>)));
BOOST_HANA_CONSTEXPR_ASSERT(on(f, g)(x<0>, x<1>, x<2>, x<3>) == f(g(x<0>), g(x<1>), g(x<2>), g(x<3>)));
// check the infix version
BOOST_HANA_STATIC_ASSERT((f /on/ g)() == f());
BOOST_HANA_STATIC_ASSERT((f /on/ g)(x<0>) == f(g(x<0>)));
BOOST_HANA_STATIC_ASSERT((f /on/ g)(x<0>, x<1>) == f(g(x<0>), g(x<1>)));
BOOST_HANA_STATIC_ASSERT((f /on/ g)(x<0>, x<1>, x<2>) == f(g(x<0>), g(x<1>), g(x<2>)));
BOOST_HANA_STATIC_ASSERT((f /on/ g)(x<0>, x<1>, x<2>, x<3>) == f(g(x<0>), g(x<1>), g(x<2>), g(x<3>)));
BOOST_HANA_CONSTEXPR_ASSERT((f /on/ g)() == f());
BOOST_HANA_CONSTEXPR_ASSERT((f /on/ g)(x<0>) == f(g(x<0>)));
BOOST_HANA_CONSTEXPR_ASSERT((f /on/ g)(x<0>, x<1>) == f(g(x<0>), g(x<1>)));
BOOST_HANA_CONSTEXPR_ASSERT((f /on/ g)(x<0>, x<1>, x<2>) == f(g(x<0>), g(x<1>), g(x<2>)));
BOOST_HANA_CONSTEXPR_ASSERT((f /on/ g)(x<0>, x<1>, x<2>, x<3>) == f(g(x<0>), g(x<1>), g(x<2>), g(x<3>)));
}