From 47af056bea3f6bf14c8b051e68addb5d56f4f11b Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Sun, 21 Apr 2024 16:10:47 +0300 Subject: [PATCH] Add test_boost_unordered.cpp, test_std_unordered.cpp --- test/Jamfile.v2 | 7 +++++- test/test_boost_unordered.cpp | 42 +++++++++++++++++++++++++++++++++++ test/test_std_unordered.cpp | 42 +++++++++++++++++++++++++++++++++++ 3 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 test/test_boost_unordered.cpp create mode 100644 test/test_std_unordered.cpp diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 9fd944f..8138938 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -101,9 +101,14 @@ run test_tagging.cpp ; run test_uuid_class.cpp ; run test_uuid_in_map.cpp ; -# test hash functions +# test hashing support run test_hash.cpp ; +run test_boost_unordered.cpp ; +run test_std_unordered.cpp ; + +# test hash functions + run test_md5.cpp ; run test_md5.cpp : : : BOOST_UUID_COMPAT_PRE_1_71_MD5 : test_md5_pre_1_71_compat ; run test_sha1.cpp ; diff --git a/test/test_boost_unordered.cpp b/test/test_boost_unordered.cpp new file mode 100644 index 0000000..ebdcf87 --- /dev/null +++ b/test/test_boost_unordered.cpp @@ -0,0 +1,42 @@ +// Copyright 2024 Peter Dimov +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt + +#include +#include +#include +#include + +int main() +{ + using namespace boost::uuids; + + std::size_t const N = 256; + + { + boost::unordered_flat_set set; + + random_generator gen; + + for( std::size_t i = 0; i < N; ++i ) + { + set.insert( gen() ); + } + + BOOST_TEST_EQ( set.size(), N ); + } + + { + boost::unordered_flat_set set; + + for( std::size_t i = 0; i < N; ++i ) + { + uuid id = { { static_cast( i ), 0 } }; + set.insert( id ); + } + + BOOST_TEST_EQ( set.size(), N ); + } + + return boost::report_errors(); +} diff --git a/test/test_std_unordered.cpp b/test/test_std_unordered.cpp new file mode 100644 index 0000000..bf2c387 --- /dev/null +++ b/test/test_std_unordered.cpp @@ -0,0 +1,42 @@ +// Copyright 2024 Peter Dimov +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt + +#include +#include +#include +#include + +int main() +{ + using namespace boost::uuids; + + std::size_t const N = 256; + + { + std::unordered_set set; + + random_generator gen; + + for( std::size_t i = 0; i < N; ++i ) + { + set.insert( gen() ); + } + + BOOST_TEST_EQ( set.size(), N ); + } + + { + std::unordered_set set; + + for( std::size_t i = 0; i < N; ++i ) + { + uuid id = { { static_cast( i ), 0 } }; + set.insert( id ); + } + + BOOST_TEST_EQ( set.size(), N ); + } + + return boost::report_errors(); +}