diff --git a/test/Jamfile b/test/Jamfile index 38629a2..b6c8591 100644 --- a/test/Jamfile +++ b/test/Jamfile @@ -41,6 +41,7 @@ run hash_append_range_2.cpp ; run append_integer.cpp ; run append_bool.cpp ; run append_byte_sized.cpp ; +run append_character.cpp ; run append_set.cpp ; run append_map.cpp ; diff --git a/test/append_character.cpp b/test/append_character.cpp new file mode 100644 index 0000000..f0e20e9 --- /dev/null +++ b/test/append_character.cpp @@ -0,0 +1,41 @@ +// Copyright 2024 Peter Dimov. +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt + +#include +#include +#include + +using namespace boost::hash2; + +template void test( std::uint32_t r ) +{ + { + T v[ 95 ] = {}; + + fnv1a_32 h; + hash_append( h, {}, v ); + + BOOST_TEST_EQ( h.result(), r ); + } +} + +int main() +{ + std::uint32_t const r1 = 409807047; + std::uint32_t const r2 = 4291711997; + std::uint32_t const r4 = 3226601845; + + test( r1 ); + + test( r2 ); + test( r4 ); + + test( sizeof(wchar_t) == sizeof(std::uint16_t)? r2: r4 ); + +#if defined(__cpp_char8_t) && __cpp_char8_t >= 201811L + test( r1 ); +#endif + + return boost::report_errors(); +}