Skip to content

Commit

Permalink
Add test/sv_hash_test.cpp
Browse files Browse the repository at this point in the history
  • Loading branch information
pdimov committed Nov 10, 2024
1 parent cebfe00 commit 32e6c30
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 0 deletions.
2 changes: 2 additions & 0 deletions test/Jamfile.v2
Original file line number Diff line number Diff line change
Expand Up @@ -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) <library>/boost/container_hash//boost_container_hash ;

run span_test.cpp ;
run span_types_test.cpp ;
run span_constructible_test.cpp ;
Expand Down
48 changes: 48 additions & 0 deletions test/sv_hash_test.cpp
Original file line number Diff line number Diff line change
@@ -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 <boost/core/detail/string_view.hpp>
#include <boost/container_hash/hash.hpp>
#include <boost/core/lightweight_test.hpp>
#include <boost/config.hpp>
#include <string>

template<class T> std::size_t hv( T const& t )
{
return boost::hash<T>()( t );
}

template<class Ch> void test( Ch const* p )
{
std::basic_string<Ch> s( p );
boost::core::basic_string_view<Ch> 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();
}

0 comments on commit 32e6c30

Please sign in to comment.