Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r78558 - branches/release/libs/array/test
From: marshall_at_[hidden]
Date: 2012-05-23 12:35:14


Author: marshall
Date: 2012-05-23 12:35:13 EDT (Wed, 23 May 2012)
New Revision: 78558
URL: http://svn.boost.org/trac/boost/changeset/78558

Log:
Merged changes for Boost.Array to release; adds support for Boost.Hash
Added:
   branches/release/libs/array/test/array_hash.cpp (contents, props changed)
Properties modified:
   branches/release/libs/array/test/Jamfile.v2 (contents, props changed)
Text files modified:
   branches/release/libs/array/test/Jamfile.v2 | 1 +
   1 files changed, 1 insertions(+), 0 deletions(-)

Modified: branches/release/libs/array/test/Jamfile.v2
==============================================================================
--- branches/release/libs/array/test/Jamfile.v2 (original)
+++ branches/release/libs/array/test/Jamfile.v2 2012-05-23 12:35:13 EDT (Wed, 23 May 2012)
@@ -12,4 +12,5 @@
     [ run array4.cpp ]
     [ run array5.cpp ]
     [ run array6.cpp ]
+ [ run array_hash.cpp ]
     ;

Added: branches/release/libs/array/test/array_hash.cpp
==============================================================================
--- (empty file)
+++ branches/release/libs/array/test/array_hash.cpp 2012-05-23 12:35:13 EDT (Wed, 23 May 2012)
@@ -0,0 +1,49 @@
+/* tests for using boost::hash with boost::array
+ * (C) Copyright Marshall Clow 2012
+ * Distributed under 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)
+ */
+
+#include <string>
+#include <iostream>
+#include <boost/array.hpp>
+#include <algorithm>
+#include <boost/functional/hash.hpp>
+
+namespace {
+unsigned int failed_tests = 0;
+
+void fail_test( const char * reason ) {
+ ++failed_tests;
+ std::cerr << "Test failure " << failed_tests << ": " << reason << std::endl;
+}
+
+template< class T >
+void RunTests()
+{
+// std::size_t hash0 = boost::hash<boost::array<T,0> > () ( boost::array<T, 0> ());
+// std::size_t hash1 = boost::hash<boost::array<T,1> > () ( boost::array<T, 1> ());
+
+ typedef boost::array< T, 5 > barr;
+ typedef T arr[5];
+ barr test_barr = {{ 1, 1, 2, 3, 5 }};
+ arr test_arr = { 1, 1, 2, 3, 5 };
+
+ std::size_t bhash = boost::hash<barr> () ( test_barr );
+ std::size_t ahash = boost::hash<arr> () ( test_arr );
+ if ( ahash != bhash )
+ fail_test ( "Array_hash: Hash-mismatch on " );
+}
+
+}
+
+int main()
+{
+ RunTests< int >();
+ RunTests< long >();
+ RunTests< long double >();
+
+ return failed_tests;
+}
+


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk