From 32e6c30f4b2a130c8170b2f117004ca03117baf3 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Sun, 10 Nov 2024 19:32:31 +0200 Subject: [PATCH] Add test/sv_hash_test.cpp --- test/Jamfile.v2 | 2 ++ test/sv_hash_test.cpp | 48 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 test/sv_hash_test.cpp diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 72414e3..9fdbddf 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -403,6 +403,8 @@ compile-fail sv_nullptr_fail.cpp compile sv_construct_test_cx.cpp ; compile sv_construct_test_cx2.cpp ; +run sv_hash_test.cpp : : : $(CPP11) /boost/container_hash//boost_container_hash ; + run span_test.cpp ; run span_types_test.cpp ; run span_constructible_test.cpp ; diff --git a/test/sv_hash_test.cpp b/test/sv_hash_test.cpp new file mode 100644 index 0000000..ce05f21 --- /dev/null +++ b/test/sv_hash_test.cpp @@ -0,0 +1,48 @@ +// Copyright 2021-2024 Peter Dimov +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt + +#include +#include +#include +#include +#include + +template std::size_t hv( T const& t ) +{ + return boost::hash()( t ); +} + +template void test( Ch const* p ) +{ + std::basic_string s( p ); + boost::core::basic_string_view sv( s ); + + BOOST_TEST_EQ( hv( s ), hv( sv ) ); +} + +int main() +{ + test( "123" ); + test( L"123" ); + +#if !defined(BOOST_NO_CXX11_CHAR16_T) + + test( u"123" ); + +#endif + +#if !defined(BOOST_NO_CXX11_CHAR32_T) + + test( U"123" ); + +#endif + +#if defined(__cpp_char8_t) && __cpp_char8_t >= 201811L + + test( u8"123" ); + +#endif + + return boost::report_errors(); +}