From 86d76f397d82c4bbb899e0b937058b1870112d07 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Sat, 16 Apr 2005 10:31:20 +0000 Subject: [PATCH] Add a test for hash_value called with an array. hash_value tests for other types will be added to their normal tests. [SVN r28275] --- hash/test/Jamfile | 1 + hash/test/Jamfile.v2 | 1 + hash/test/hash_value_array_test.cpp | 58 +++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 hash/test/hash_value_array_test.cpp diff --git a/hash/test/Jamfile b/hash/test/Jamfile index 364d4dc..6725018 100644 --- a/hash/test/Jamfile +++ b/hash/test/Jamfile @@ -29,6 +29,7 @@ rule hash-test ( name ) [ hash-test hash_range_test ] [ hash-test hash_custom_test ] [ hash-test hash_built_in_array_test ] + [ hash-test hash_value_array_test ] [ hash-test hash_vector_test ] [ hash-test hash_list_test ] [ hash-test hash_deque_test ] diff --git a/hash/test/Jamfile.v2 b/hash/test/Jamfile.v2 index 4400ab4..7ab939a 100644 --- a/hash/test/Jamfile.v2 +++ b/hash/test/Jamfile.v2 @@ -17,6 +17,7 @@ test-suite functional/hash [ run hash_range_test.cpp framework ] [ run hash_custom_test.cpp framework ] [ run hash_built_in_array_test.cpp framework ] + [ run hash_value_array_test.cpp framework ] [ run hash_vector_test.cpp framework ] [ run hash_list_test.cpp framework ] [ run hash_deque_test.cpp framework ] diff --git a/hash/test/hash_value_array_test.cpp b/hash/test/hash_value_array_test.cpp new file mode 100644 index 0000000..1c2f7eb --- /dev/null +++ b/hash/test/hash_value_array_test.cpp @@ -0,0 +1,58 @@ + +// (C) Copyright Daniel James 2005. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// On some compilers hash_value isn't available for arrays, so I test it +// separately from the main array tests. + +#include "./config.hpp" + +#ifdef TEST_EXTENSIONS +# ifdef TEST_STD_INCLUDES +# include +# else +# include +# endif +#endif + +#define BOOST_AUTO_TEST_MAIN +#include + +#ifdef TEST_EXTENSIONS + +BOOST_AUTO_UNIT_TEST(array_int_test) +{ + const int length1 = 25; + const int array1[25] = { + 26, -43, 32, 65, 45, + 12, 67, 32, 12, 23, + 0, 0, 0, 0, 0, + 8, -12, 23, 65, 45, + -1, 93, -54, 987, 3 + }; + HASH_NAMESPACE::hash hasher1; + + const int length2 = 1; + int array2[1] = {3}; + HASH_NAMESPACE::hash hasher2; + + const int length3 = 2; + int array3[2] = {2, 3}; + HASH_NAMESPACE::hash hasher3; + + BOOST_CHECK(hasher1(array1) == HASH_NAMESPACE::hash_value(array1)); + BOOST_CHECK(hasher2(array2) == HASH_NAMESPACE::hash_value(array2)); + BOOST_CHECK(hasher3(array3) == HASH_NAMESPACE::hash_value(array3)); +} + +BOOST_AUTO_UNIT_TEST(two_dimensional_array_test) +{ + int array[3][2] = {{-5, 6}, {7, -3}, {26, 1}}; + HASH_NAMESPACE::hash hasher; + + BOOST_CHECK(hasher(array) == HASH_NAMESPACE::hash_value(array)); +} + +#endif