$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [histogram] review part 3 (tests + summary)
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2018-09-27 01:49:01
AMDG
I vote to ACCEPT histogram into Boost.
Critical issues:
- Various exception safety and memory issues must
be fixed.
- The reference documentation must be completed.
Specifically, various preconditions, requirements,
and assumptions must be made explicit.
Tests (I'm running out of time, so this is a bit incomplete):
- Some of run-fail tests would be better off as
just testing that the correct exception is thrown.
(i.e. BOOST_TEST_THROWS). The ones that assert
must force debug builds (<variant>debug) as
assertions are a no-op in release builds.
- For serialization tests, I think that you should
save a text archive permanently. This will allow
you to detect cases where the serialization format
changes. (Pass the archive on the command line.
The `run` rule in b2 has an `args` parameter.)
utility.hpp:115: void deallocate(T*& p, std::size_t n) {
Don't take the argument by reference. It's not guaranteed to work.
axis_test.cpp:489: BOOST_TEST_EQ(db.size(), 5); // axis_type, char,
double, long + ???
The ??? is an internal structure created by vector
to support checked iterators (specifically it's
std::_Container_proxy). This test will fail in
release builds.
index_mapper_test.cpp:
I feel that this test is a bit too specific. The important
part is the relationship between linearize/indices_to_index
(detail/axes.hpp), index_cache, and index_mapper.
The exact mapping doesn't matter from the point of
view of program correctness, as long as they are all
consistent.
In Christ,
Steven Watanabe