diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 18:24:20 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 18:24:20 +0000 |
commit | 483eb2f56657e8e7f419ab1a4fab8dce9ade8609 (patch) | |
tree | e5d88d25d870d5dedacb6bbdbe2a966086a0a5cf /src/boost/libs/histogram/test/histogram_serialization_test.cpp | |
parent | Initial commit. (diff) | |
download | ceph-upstream.tar.xz ceph-upstream.zip |
Adding upstream version 14.2.21.upstream/14.2.21upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/libs/histogram/test/histogram_serialization_test.cpp')
-rw-r--r-- | src/boost/libs/histogram/test/histogram_serialization_test.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/boost/libs/histogram/test/histogram_serialization_test.cpp b/src/boost/libs/histogram/test/histogram_serialization_test.cpp new file mode 100644 index 00000000..29f6e5ae --- /dev/null +++ b/src/boost/libs/histogram/test/histogram_serialization_test.cpp @@ -0,0 +1,50 @@ +// Copyright 2018 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 <boost/assert.hpp> +#include <boost/core/lightweight_test.hpp> +#include <boost/histogram/axis.hpp> +#include <boost/histogram/axis/ostream.hpp> +#include <boost/histogram/ostream.hpp> +#include <boost/histogram/serialization.hpp> +#include <cmath> +#include <string> +#include "throw_exception.hpp" +#include "utility_histogram.hpp" +#include "utility_serialization.hpp" + +using namespace boost::histogram; + +template <typename Tag> +void run_tests(const std::string& filename) { + // histogram_serialization + namespace tr = axis::transform; + using def = use_default; + using axis::option::none_t; + auto a = + make(Tag(), axis::regular<double, def, def, none_t>(1, -1, 1, "reg"), + axis::circular<float, def, none_t>(1, 0.0, 1.0, "cir"), + axis::regular<double, tr::log, def, none_t>(1, 1, std::exp(2), "reg-log"), + axis::regular<double, tr::pow, std::vector<int>, axis::option::overflow_t>( + tr::pow(0.5), 1, 1, 100, {1, 2, 3}), + axis::variable<double, def, none_t>({1.5, 2.5}, "var"), + axis::category<int, def, none_t>{3, 1}, + axis::integer<int, axis::null_type, none_t>(1, 2)); + a(0.5, 0.2, 2, 20, 2.2, 1, 1); + print_xml(filename, a); + + auto b = decltype(a)(); + BOOST_TEST_NE(a, b); + load_xml(filename, b); + BOOST_TEST_EQ(a, b); +} + +int main(int argc, char** argv) { + BOOST_ASSERT(argc == 2); + run_tests<static_tag>(join(argv[1], "histogram_serialization_test_static.xml")); + run_tests<dynamic_tag>(join(argv[1], "histogram_serialization_test_dynamic.xml")); + return boost::report_errors(); +} |