// Copyright 2019 Hans Dembinski // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt // or copy at http://www.boost.org/LICENSE_1_0.txt) #include #include #include #include #include namespace dtl = boost::histogram::detail; int main() { using boost::histogram::sample; using boost::histogram::weight; // is_weight { struct A {}; using B = int; BOOST_TEST_NOT(dtl::is_weight::value); BOOST_TEST_NOT(dtl::is_weight::value); BOOST_TEST_NOT(dtl::is_weight::value); BOOST_TEST(dtl::is_weight::value); } // is_sample { struct A {}; using B = int; BOOST_TEST_NOT(dtl::is_sample::value); BOOST_TEST_NOT(dtl::is_sample::value); BOOST_TEST_NOT(dtl::is_sample::value); BOOST_TEST(dtl::is_sample::value); BOOST_TEST(dtl::is_sample::value); } using T1 = dtl::argument_traits; using E1 = dtl::argument_traits_holder<1, 0, -1, -1, std::tuple<>>; BOOST_TEST_TRAIT_SAME(T1, E1); using T2 = dtl::argument_traits; using E2 = dtl::argument_traits_holder<2, 0, -1, -1, std::tuple<>>; BOOST_TEST_TRAIT_SAME(T2, E2); using T3 = dtl::argument_traits; using E3 = dtl::argument_traits_holder<2, 1, 0, -1, std::tuple<>>; BOOST_TEST_TRAIT_SAME(T3, E3); using T4 = dtl::argument_traits; using E4 = dtl::argument_traits_holder<2, 1, 0, 3, std::tuple>; BOOST_TEST_TRAIT_SAME(T4, E4); using T5 = dtl::argument_traits; using E5 = dtl::argument_traits_holder<1, 0, -1, 1, std::tuple>; BOOST_TEST_TRAIT_SAME(T5, E5); return boost::report_errors(); }