From a06505d87799362b44f2ede1b51cd5e0346d6f25 Mon Sep 17 00:00:00 2001 From: Hans Dembinski Date: Sat, 8 Jun 2019 16:28:56 +0200 Subject: [PATCH] Get full coverage with tests only --- .travis.yml | 2 +- test/axis_category_test.cpp | 25 ++++++++++++-------- test/axis_integer_test.cpp | 26 ++++++++++++++------- test/axis_regular_test.cpp | 27 +++++++++++++++++++++- test/axis_traits_test.cpp | 1 + test/axis_variable_test.cpp | 22 +++++++++++------- test/deduction_guides_test.cpp | 2 +- test/detail_args_type_test.cpp | 2 +- test/detail_axes_test.cpp | 2 +- test/detail_compressed_pair_test.cpp | 2 +- test/detail_convert_integer_test.cpp | 2 +- test/detail_detect_test.cpp | 2 +- test/detail_iterator_adaptor_test.cpp | 4 +++- test/detail_large_int_test.cpp | 2 +- test/detail_linearize_test.cpp | 2 +- test/detail_meta_test.cpp | 2 +- test/detail_misc_test.cpp | 2 +- test/detail_relaxed_equal_test.cpp | 2 +- test/detail_replace_default_test.cpp | 2 +- test/detail_tuple_slice_test.cpp | 2 +- test/histogram_growing_test.cpp | 2 +- test/histogram_operators_test.cpp | 2 +- test/histogram_test.cpp | 2 +- test/{utility_meta.hpp => std_ostream.hpp} | 7 +++--- test/unlimited_storage_test.cpp | 6 +++-- test/utility_axis.hpp | 3 +-- test/utility_test.cpp | 2 +- tools/cov.sh | 1 - 28 files changed, 104 insertions(+), 54 deletions(-) rename test/{utility_meta.hpp => std_ostream.hpp} (83%) diff --git a/.travis.yml b/.travis.yml index a04c745a..5cf40f17 100644 --- a/.travis.yml +++ b/.travis.yml @@ -40,7 +40,7 @@ matrix: - name: "gcc-5: coverage" script: - ../../b2 -j2 toolset=gcc-5 cxxstd=14 warnings-as-errors=on - histogram_coverage + histogram_coverage test after_success: - GCOV=gcov-5 tools/cov.sh diff --git a/test/axis_category_test.cpp b/test/axis_category_test.cpp index 29b4d1e4..397554de 100644 --- a/test/axis_category_test.cpp +++ b/test/axis_category_test.cpp @@ -7,10 +7,12 @@ #include #include #include +#include #include #include #include #include +#include "std_ostream.hpp" #include "throw_exception.hpp" #include "utility_axis.hpp" @@ -35,6 +37,18 @@ int main() { BOOST_TEST_EQ(static_cast&>(a).metadata(), "foo"); a.metadata() = "bar"; BOOST_TEST_EQ(static_cast&>(a).metadata(), "bar"); + BOOST_TEST_EQ(a.size(), 3); + BOOST_TEST_EQ(a.index(A), 0); + BOOST_TEST_EQ(a.index(B), 1); + BOOST_TEST_EQ(a.index(C), 2); + BOOST_TEST_EQ(a.index(other), 3); + BOOST_TEST_EQ(a.value(0), A); + BOOST_TEST_EQ(a.value(1), B); + BOOST_TEST_EQ(a.value(2), C); + BOOST_TEST_THROWS(a.value(3), std::out_of_range); + + BOOST_TEST_EQ(detail::cat(a), + "category(\"A\", \"B\", \"C\", metadata=\"bar\", options=overflow)"); axis::category b; BOOST_TEST_NE(a, b); @@ -50,15 +64,6 @@ int main() { BOOST_TEST_NE(c, d); d = std::move(c); BOOST_TEST_EQ(d, a); - BOOST_TEST_EQ(a.size(), 3); - BOOST_TEST_EQ(a.index(A), 0); - BOOST_TEST_EQ(a.index(B), 1); - BOOST_TEST_EQ(a.index(C), 2); - BOOST_TEST_EQ(a.index(other), 3); - BOOST_TEST_EQ(a.value(0), A); - BOOST_TEST_EQ(a.value(1), B); - BOOST_TEST_EQ(a.value(2), C); - BOOST_TEST_THROWS(a.value(3), std::out_of_range); } // axis::category with growth @@ -73,6 +78,8 @@ int main() { BOOST_TEST_EQ(a.size(), 3); BOOST_TEST_EQ(a.update(10), std::make_pair(2, 0)); BOOST_TEST_EQ(a.size(), 3); + + BOOST_TEST_EQ(detail::cat(a), "category(5, 1, 10, options=growth)"); } // iterators diff --git a/test/axis_integer_test.cpp b/test/axis_integer_test.cpp index 8b8410d4..0d275006 100644 --- a/test/axis_integer_test.cpp +++ b/test/axis_integer_test.cpp @@ -7,8 +7,10 @@ #include #include #include +#include #include #include +#include "std_ostream.hpp" #include "throw_exception.hpp" #include "utility_axis.hpp" @@ -32,6 +34,18 @@ int main() { BOOST_TEST_EQ(static_cast&>(a).metadata(), "bar"); BOOST_TEST_EQ(a.bin(-1).lower(), -std::numeric_limits::infinity()); BOOST_TEST_EQ(a.bin(a.size()).upper(), std::numeric_limits::infinity()); + BOOST_TEST_EQ(a.index(-10), -1); + BOOST_TEST_EQ(a.index(-2), -1); + BOOST_TEST_EQ(a.index(-1), 0); + BOOST_TEST_EQ(a.index(0), 1); + BOOST_TEST_EQ(a.index(1), 2); + BOOST_TEST_EQ(a.index(2), 3); + BOOST_TEST_EQ(a.index(10), 3); + BOOST_TEST_EQ(a.index(std::numeric_limits::quiet_NaN()), 3); + + BOOST_TEST_EQ(detail::cat(a), + "integer(-1, 2, metadata=\"bar\", options=underflow | overflow)"); + axis::integer b; BOOST_TEST_NE(a, b); b = a; @@ -42,14 +56,6 @@ int main() { BOOST_TEST_NE(c, d); d = std::move(c); BOOST_TEST_EQ(d, a); - BOOST_TEST_EQ(a.index(-10), -1); - BOOST_TEST_EQ(a.index(-2), -1); - BOOST_TEST_EQ(a.index(-1), 0); - BOOST_TEST_EQ(a.index(0), 1); - BOOST_TEST_EQ(a.index(1), 2); - BOOST_TEST_EQ(a.index(2), 3); - BOOST_TEST_EQ(a.index(10), 3); - BOOST_TEST_EQ(a.index(std::numeric_limits::quiet_NaN()), 3); } // axis::integer with int type @@ -64,6 +70,8 @@ int main() { BOOST_TEST_EQ(a.index(1), 2); BOOST_TEST_EQ(a.index(2), 3); BOOST_TEST_EQ(a.index(10), 3); + + BOOST_TEST_EQ(detail::cat(a), "integer(-1, 2, options=underflow | overflow)"); } // axis::integer int,circular @@ -79,6 +87,8 @@ int main() { BOOST_TEST_EQ(a.index(0), 1); BOOST_TEST_EQ(a.index(1), 0); BOOST_TEST_EQ(a.index(2), 1); + + BOOST_TEST_EQ(detail::cat(a), "integer(-1, 1, options=circular)"); } // axis::integer double,circular diff --git a/test/axis_regular_test.cpp b/test/axis_regular_test.cpp index 828559cf..51618593 100644 --- a/test/axis_regular_test.cpp +++ b/test/axis_regular_test.cpp @@ -1,4 +1,4 @@ -// Copyright 2015-2017 Hans Dembinski +// Copyright 2015-2019 Hans Dembinski // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt @@ -7,10 +7,12 @@ #include #include #include +#include #include #include #include #include "is_close.hpp" +#include "std_ostream.hpp" #include "throw_exception.hpp" #include "utility_axis.hpp" @@ -49,7 +51,14 @@ int main() { BOOST_TEST_EQ(static_cast&>(a).metadata(), "foo"); a.metadata() = "bar"; BOOST_TEST_EQ(static_cast&>(a).metadata(), "bar"); + BOOST_TEST_EQ(a.value(0), -2); + BOOST_TEST_EQ(a.value(1), -1); + BOOST_TEST_EQ(a.value(2), 0); + BOOST_TEST_EQ(a.value(3), 1); + BOOST_TEST_EQ(a.value(4), 2); BOOST_TEST_EQ(a.bin(-1).lower(), -std::numeric_limits::infinity()); + BOOST_TEST_EQ(a.bin(-1).upper(), -2); + BOOST_TEST_EQ(a.bin(a.size()).lower(), 2); BOOST_TEST_EQ(a.bin(a.size()).upper(), std::numeric_limits::infinity()); BOOST_TEST_EQ(a.index(-10.), -1); BOOST_TEST_EQ(a.index(-2.1), -1); @@ -62,6 +71,9 @@ int main() { BOOST_TEST_EQ(a.index(-std::numeric_limits::infinity()), -1); BOOST_TEST_EQ(a.index(std::numeric_limits::infinity()), 4); BOOST_TEST_EQ(a.index(std::numeric_limits::quiet_NaN()), 4); + + BOOST_TEST_EQ(detail::cat(a), + "regular(4, -2, 2, metadata=\"bar\", options=underflow | overflow)"); } // with inverted range @@ -102,6 +114,8 @@ int main() { BOOST_TEST_EQ(a.index(std::numeric_limits::infinity()), 2); BOOST_TEST_THROWS((axis::regular{2, -1, 0}), std::invalid_argument); + + BOOST_TEST_EQ(detail::cat(a), "regular_log(2, 1, 100, options=underflow | overflow)"); } // with sqrt transform @@ -122,6 +136,8 @@ int main() { BOOST_TEST_EQ(a.index(4), 2); BOOST_TEST_EQ(a.index(100), 2); BOOST_TEST_EQ(a.index(std::numeric_limits::infinity()), 2); + + BOOST_TEST_EQ(detail::cat(a), "regular_sqrt(2, 0, 4, options=underflow | overflow)"); } // with pow transform @@ -142,6 +158,9 @@ int main() { BOOST_TEST_EQ(a.index(4), 2); BOOST_TEST_EQ(a.index(100), 2); BOOST_TEST_EQ(a.index(std::numeric_limits::infinity()), 2); + + BOOST_TEST_EQ(detail::cat(a), + "regular_pow(2, 0, 4, options=underflow | overflow, power=0.5)"); } // with step @@ -221,6 +240,12 @@ int main() { test(a.bin(0), "[0, 0.5)"); } + // null_type streamable + { + auto a = axis::regular(2, 0, 1); + BOOST_TEST_EQ(detail::cat(a), "regular(2, 0, 1, options=underflow | overflow)"); + } + // shrink and rebin { using A = axis::regular<>; diff --git a/test/axis_traits_test.cpp b/test/axis_traits_test.cpp index 384dfbb1..9f0ab5bf 100644 --- a/test/axis_traits_test.cpp +++ b/test/axis_traits_test.cpp @@ -9,6 +9,7 @@ #include #include #include +#include "std_ostream.hpp" #include "throw_exception.hpp" #include "utility_axis.hpp" diff --git a/test/axis_variable_test.cpp b/test/axis_variable_test.cpp index 775c3310..3aeeea35 100644 --- a/test/axis_variable_test.cpp +++ b/test/axis_variable_test.cpp @@ -7,10 +7,12 @@ #include #include #include +#include #include #include #include #include "is_close.hpp" +#include "std_ostream.hpp" #include "throw_exception.hpp" #include "utility_axis.hpp" @@ -42,6 +44,18 @@ int main() { BOOST_TEST_EQ(a.value(1), 0); BOOST_TEST_EQ(a.value(1.5), 0.5); BOOST_TEST_EQ(a.value(2), 1); + BOOST_TEST_EQ(a.index(-10), -1); + BOOST_TEST_EQ(a.index(-1), 0); + BOOST_TEST_EQ(a.index(0), 1); + BOOST_TEST_EQ(a.index(1), 2); + BOOST_TEST_EQ(a.index(10), 2); + BOOST_TEST_EQ(a.index(-std::numeric_limits::infinity()), -1); + BOOST_TEST_EQ(a.index(std::numeric_limits::infinity()), 2); + BOOST_TEST_EQ(a.index(std::numeric_limits::quiet_NaN()), 2); + + BOOST_TEST_EQ(detail::cat(a), + "variable(-1, 0, 1, metadata=\"bar\", options=underflow | overflow)"); + axis::variable<> b; BOOST_TEST_NE(a, b); b = a; @@ -54,14 +68,6 @@ int main() { BOOST_TEST_EQ(d, a); axis::variable<> e{-2, 0, 2}; BOOST_TEST_NE(a, e); - BOOST_TEST_EQ(a.index(-10), -1); - BOOST_TEST_EQ(a.index(-1), 0); - BOOST_TEST_EQ(a.index(0), 1); - BOOST_TEST_EQ(a.index(1), 2); - BOOST_TEST_EQ(a.index(10), 2); - BOOST_TEST_EQ(a.index(-std::numeric_limits::infinity()), -1); - BOOST_TEST_EQ(a.index(std::numeric_limits::infinity()), 2); - BOOST_TEST_EQ(a.index(std::numeric_limits::quiet_NaN()), 2); } // axis::variable circular diff --git a/test/deduction_guides_test.cpp b/test/deduction_guides_test.cpp index 8918ab28..8e6ad547 100644 --- a/test/deduction_guides_test.cpp +++ b/test/deduction_guides_test.cpp @@ -17,7 +17,7 @@ #include #include #include -#include "utility_meta.hpp" +#include "std_ostream.hpp" using namespace boost::histogram; namespace tr = axis::transform; diff --git a/test/detail_args_type_test.cpp b/test/detail_args_type_test.cpp index 32b1ab6f..2a7bbece 100644 --- a/test/detail_args_type_test.cpp +++ b/test/detail_args_type_test.cpp @@ -8,7 +8,7 @@ #include #include #include -#include "utility_meta.hpp" +#include "std_ostream.hpp" using namespace boost::histogram::detail; diff --git a/test/detail_axes_test.cpp b/test/detail_axes_test.cpp index 7561cce4..74c5e601 100644 --- a/test/detail_axes_test.cpp +++ b/test/detail_axes_test.cpp @@ -15,7 +15,7 @@ #include #include #include "throw_exception.hpp" -#include "utility_meta.hpp" +#include "std_ostream.hpp" using namespace boost::histogram; using namespace boost::histogram::detail; diff --git a/test/detail_compressed_pair_test.cpp b/test/detail_compressed_pair_test.cpp index f302db93..bdd51dd2 100644 --- a/test/detail_compressed_pair_test.cpp +++ b/test/detail_compressed_pair_test.cpp @@ -7,7 +7,7 @@ #include #include #include -#include "utility_meta.hpp" +#include "std_ostream.hpp" using namespace boost::histogram::detail; diff --git a/test/detail_convert_integer_test.cpp b/test/detail_convert_integer_test.cpp index 6b57aeda..10e5f105 100644 --- a/test/detail_convert_integer_test.cpp +++ b/test/detail_convert_integer_test.cpp @@ -7,7 +7,7 @@ #include #include #include -#include "utility_meta.hpp" +#include "std_ostream.hpp" using namespace boost::histogram::detail; diff --git a/test/detail_detect_test.cpp b/test/detail_detect_test.cpp index a2e98262..138a2ed1 100644 --- a/test/detail_detect_test.cpp +++ b/test/detail_detect_test.cpp @@ -23,7 +23,7 @@ #include #include "throw_exception.hpp" #include "utility_allocator.hpp" -#include "utility_meta.hpp" +#include "std_ostream.hpp" using namespace boost::histogram; using namespace boost::histogram::detail; diff --git a/test/detail_iterator_adaptor_test.cpp b/test/detail_iterator_adaptor_test.cpp index b720254b..c7a3303d 100644 --- a/test/detail_iterator_adaptor_test.cpp +++ b/test/detail_iterator_adaptor_test.cpp @@ -7,10 +7,12 @@ // See http://www.boost.org for most recent version including documentation. +#include +#include #include #include +#include "std_ostream.hpp" #include "utility_iterator.hpp" -#include "utility_meta.hpp" #include #include diff --git a/test/detail_large_int_test.cpp b/test/detail_large_int_test.cpp index 1a4a755d..d4abec40 100644 --- a/test/detail_large_int_test.cpp +++ b/test/detail_large_int_test.cpp @@ -9,7 +9,7 @@ #include #include #include -#include "utility_meta.hpp" +#include "std_ostream.hpp" using namespace boost::histogram; diff --git a/test/detail_linearize_test.cpp b/test/detail_linearize_test.cpp index 54b0b141..dd16a7dd 100644 --- a/test/detail_linearize_test.cpp +++ b/test/detail_linearize_test.cpp @@ -12,7 +12,7 @@ #include #include #include -#include "utility_meta.hpp" +#include "std_ostream.hpp" using namespace boost::histogram; diff --git a/test/detail_meta_test.cpp b/test/detail_meta_test.cpp index 0f6c9ed2..12f61542 100644 --- a/test/detail_meta_test.cpp +++ b/test/detail_meta_test.cpp @@ -24,7 +24,7 @@ #include #include "throw_exception.hpp" #include "utility_allocator.hpp" -#include "utility_meta.hpp" +#include "std_ostream.hpp" using namespace boost::histogram; using namespace boost::histogram::detail; diff --git a/test/detail_misc_test.cpp b/test/detail_misc_test.cpp index a513ce41..7d23fd1e 100644 --- a/test/detail_misc_test.cpp +++ b/test/detail_misc_test.cpp @@ -13,7 +13,7 @@ #include #include #include -#include "utility_meta.hpp" +#include "std_ostream.hpp" using namespace boost::histogram; using namespace boost::histogram::literals; diff --git a/test/detail_relaxed_equal_test.cpp b/test/detail_relaxed_equal_test.cpp index afb078b0..bba643e8 100644 --- a/test/detail_relaxed_equal_test.cpp +++ b/test/detail_relaxed_equal_test.cpp @@ -7,7 +7,7 @@ #include #include #include -#include "utility_meta.hpp" +#include "std_ostream.hpp" using namespace boost::histogram::detail; diff --git a/test/detail_replace_default_test.cpp b/test/detail_replace_default_test.cpp index 9e777a02..bc9197c6 100644 --- a/test/detail_replace_default_test.cpp +++ b/test/detail_replace_default_test.cpp @@ -7,7 +7,7 @@ #include #include #include -#include "utility_meta.hpp" +#include "std_ostream.hpp" using namespace boost::histogram::detail; diff --git a/test/detail_tuple_slice_test.cpp b/test/detail_tuple_slice_test.cpp index b4197f97..465e0f83 100644 --- a/test/detail_tuple_slice_test.cpp +++ b/test/detail_tuple_slice_test.cpp @@ -7,7 +7,7 @@ #include #include #include -#include "utility_meta.hpp" +#include "std_ostream.hpp" using namespace boost::histogram::detail; diff --git a/test/histogram_growing_test.cpp b/test/histogram_growing_test.cpp index 89de8cfe..bbcc5697 100644 --- a/test/histogram_growing_test.cpp +++ b/test/histogram_growing_test.cpp @@ -14,7 +14,7 @@ #include #include "throw_exception.hpp" #include "utility_histogram.hpp" -#include "utility_meta.hpp" +#include "std_ostream.hpp" using namespace boost::histogram; diff --git a/test/histogram_operators_test.cpp b/test/histogram_operators_test.cpp index 89a7e1f7..544c3634 100644 --- a/test/histogram_operators_test.cpp +++ b/test/histogram_operators_test.cpp @@ -14,9 +14,9 @@ #include #include #include +#include "std_ostream.hpp" #include "throw_exception.hpp" #include "utility_histogram.hpp" -#include "utility_meta.hpp" using namespace boost::histogram; diff --git a/test/histogram_test.cpp b/test/histogram_test.cpp index c3084f1a..bd39948e 100644 --- a/test/histogram_test.cpp +++ b/test/histogram_test.cpp @@ -24,7 +24,7 @@ #include "utility_allocator.hpp" #include "utility_axis.hpp" #include "utility_histogram.hpp" -#include "utility_meta.hpp" +#include "std_ostream.hpp" using namespace boost::histogram; using namespace boost::histogram::literals; // to get _c suffix diff --git a/test/utility_meta.hpp b/test/std_ostream.hpp similarity index 83% rename from test/utility_meta.hpp rename to test/std_ostream.hpp index ca699478..e5740a8d 100644 --- a/test/utility_meta.hpp +++ b/test/std_ostream.hpp @@ -1,13 +1,12 @@ -// Copyright 2018 Hans Dembinski +// Copyright 2018-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) -#ifndef BOOST_HISTOGRAM_TEST_UTILITY_META_HPP -#define BOOST_HISTOGRAM_TEST_UTILITY_META_HPP +#ifndef BOOST_HISTOGRAM_TEST_STD_OSTREAM_HPP +#define BOOST_HISTOGRAM_TEST_STD_OSTREAM_HPP -#include #include #include #include diff --git a/test/unlimited_storage_test.cpp b/test/unlimited_storage_test.cpp index 2655e1b7..be0051cc 100644 --- a/test/unlimited_storage_test.cpp +++ b/test/unlimited_storage_test.cpp @@ -7,7 +7,6 @@ #include #include #include -#include "throw_exception.hpp" #include #include #include @@ -17,8 +16,9 @@ #include #include #include +#include "std_ostream.hpp" +#include "throw_exception.hpp" #include "utility_allocator.hpp" -#include "utility_meta.hpp" using namespace boost::histogram; @@ -265,12 +265,14 @@ int main() { BOOST_TEST(lt(1, 2.0)); BOOST_TEST(lt(-1.0, 1u)); BOOST_TEST(lt(1u, 2.0)); + BOOST_TEST(lt(1.0, 2.0)); BOOST_TEST_NOT(lt(1u, 1)); BOOST_TEST_NOT(lt(1, 1u)); BOOST_TEST_NOT(lt(1.0, 1)); BOOST_TEST_NOT(lt(1, 1.0)); BOOST_TEST_NOT(lt(1.0, 1u)); BOOST_TEST_NOT(lt(1u, 1.0)); + BOOST_TEST_NOT(lt(1.0, 1.0)); auto gt = detail::greater{}; BOOST_TEST(gt(2u, 1u)); diff --git a/test/utility_axis.hpp b/test/utility_axis.hpp index 91adb778..89250270 100644 --- a/test/utility_axis.hpp +++ b/test/utility_axis.hpp @@ -1,4 +1,4 @@ -// Copyright 2018 Hans Dembinski +// Copyright 2018-2019 Hans Dembinski // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt @@ -9,7 +9,6 @@ #include #include -#include "utility_meta.hpp" namespace boost { namespace histogram { diff --git a/test/utility_test.cpp b/test/utility_test.cpp index 9e32f40d..f2e7fec3 100644 --- a/test/utility_test.cpp +++ b/test/utility_test.cpp @@ -10,7 +10,7 @@ #include #include #include "utility_allocator.hpp" -#include "utility_meta.hpp" +#include "std_ostream.hpp" using namespace boost::histogram; diff --git a/tools/cov.sh b/tools/cov.sh index 4f118ab1..98600709 100755 --- a/tools/cov.sh +++ b/tools/cov.sh @@ -19,7 +19,6 @@ LCOV="${LCOV_DIR}/bin/lcov --gcov-tool=${GCOV}" # no branch coverage # collect raw data $LCOV --base-directory `pwd` \ --directory `pwd`/../../bin.v2/libs/histogram/test \ - --directory `pwd`/../../bin.v2/libs/histogram/examples \ --capture --output-file coverage.info # remove uninteresting entries