Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
HDembinski committed Apr 25, 2024
1 parent 0dc807c commit dc14aa9
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 19 deletions.
20 changes: 20 additions & 0 deletions .github/workflows/slow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -110,3 +110,23 @@ jobs:
run: |
cd libs/histogram
../../b2 $B2_OPTS toolset=clang-14 cxxstd=17 variant=histogram_ubasan test//all
windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Fetch Boost superproject
run: |
cd ..
git clone -b %GITHUB_BASE_REF% --depth 5 https://github.com/boostorg/boost.git
cd boost
git submodule update --init --depth 5 tools/build tools/boostdep
xcopy /s /e /q %GITHUB_WORKSPACE% libs\histogram\
python tools\boostdep\depinst\depinst.py -N units -N range -N accumulators --git_args "--depth 5 --jobs 2" histogram
- name: Prepare b2
run: cmd /c bootstrap & cd libs\histogram
# cxxstd=latest (aka 20) breaks VS 2022 in algorithm_project_test so we use cxxstd=17
# msvc-14.3 breaks test//serialization, more precisely axis_variant_serialization_test
- name: Test cxxstd=17 minimal
run: ..\..\b2 %B2_OPTS% cxxstd=17 test//minimal

38 changes: 19 additions & 19 deletions test/accumulators_fraction_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ void run_tests() {

{
f_t f;
BOOST_TEST_EQ(f.successes(), 0.f);
BOOST_TEST_EQ(f.failures(), 0.f);
BOOST_TEST_EQ(f.successes(), static_cast<T>(0));
BOOST_TEST_EQ(f.failures(), static_cast<T>(0));
BOOST_TEST(std::isnan(f.value()));
BOOST_TEST(std::isnan(f.variance()));

Expand All @@ -38,22 +38,22 @@ void run_tests() {
{
f_t f;
f(true);
BOOST_TEST_EQ(f.successes(), 1.f);
BOOST_TEST_EQ(f.failures(), 0.f);
BOOST_TEST_EQ(f.successes(), static_cast<T>(1));
BOOST_TEST_EQ(f.failures(), static_cast<T>(0));
BOOST_TEST_EQ(str(f), "fraction(1, 0)"s);
f(false);
BOOST_TEST_EQ(f.successes(), 1.f);
BOOST_TEST_EQ(f.failures(), 1.f);
BOOST_TEST_EQ(f.successes(), static_cast<T>(1));
BOOST_TEST_EQ(f.failures(), static_cast<T>(1));
BOOST_TEST_EQ(str(f), "fraction(1, 1)"s);
BOOST_TEST_EQ(str(f, 20), "fraction(1, 1) "s);
}

{
f_t f(3, 1);
BOOST_TEST_EQ(f.successes(), 3.f);
BOOST_TEST_EQ(f.failures(), 1.f);
BOOST_TEST_EQ(f.successes(), static_cast<T>(3));
BOOST_TEST_EQ(f.failures(), static_cast<T>(1));
BOOST_TEST_EQ(f.value(), 0.75f);
BOOST_TEST_IS_CLOSE(f.variance(), 0.75f * (1.f - 0.75f) / 4.f, eps);
BOOST_TEST_IS_CLOSE(f.variance(), 0.75f * (1.0f - 0.75f) / 4f, eps);

const auto ci = f.confidence_interval();
const auto expected = utility::wilson_interval<double>()(3, 1);
Expand All @@ -63,10 +63,10 @@ void run_tests() {

{
f_t f(0, 1);
BOOST_TEST_EQ(f.successes(), 0.f);
BOOST_TEST_EQ(f.failures(), 1.f);
BOOST_TEST_EQ(f.value(), 0.f);
BOOST_TEST_EQ(f.variance(), 0.f);
BOOST_TEST_EQ(f.successes(), 0);
BOOST_TEST_EQ(f.failures(), 1);
BOOST_TEST_EQ(f.value(), 0);
BOOST_TEST_EQ(f.variance(), 0);

const auto ci = f.confidence_interval();
const auto expected = utility::wilson_interval<double>()(0, 1);
Expand All @@ -76,10 +76,10 @@ void run_tests() {

{
f_t f(1, 0);
BOOST_TEST_EQ(f.successes(), 1.f);
BOOST_TEST_EQ(f.failures(), 0.f);
BOOST_TEST_EQ(f.value(), 1.f);
BOOST_TEST_EQ(f.variance(), 0.f);
BOOST_TEST_EQ(f.successes(), 1);
BOOST_TEST_EQ(f.failures(), 0);
BOOST_TEST_EQ(f.value(), 1);
BOOST_TEST_EQ(f.variance(), 0);

const auto ci = f.confidence_interval();
const auto expected = utility::wilson_interval<double>()(1, 0);
Expand All @@ -106,8 +106,8 @@ int main() {
using f_t2 = accumulators::fraction<int>;
f_t1 f1(5, 3);
f_t2 f2(f1);
BOOST_TEST_EQ(f2.successes(), 5.f);
BOOST_TEST_EQ(f2.failures(), 3.f);
BOOST_TEST_EQ(f2.successes(), 5);
BOOST_TEST_EQ(f2.failures(), 3);
}

return boost::report_errors();
Expand Down

0 comments on commit dc14aa9

Please sign in to comment.