| /*********************************************************************************** |
| test_hash_resize.h |
| |
| * Copyright (c) 1997 |
| * Mark of the Unicorn, Inc. |
| * |
| * Permission to use, copy, modify, distribute and sell this software |
| * and its documentation for any purpose is hereby granted without fee, |
| * provided that the above copyright notice appear in all copies and |
| * that both that copyright notice and this permission notice appear |
| * in supporting documentation. Mark of the Unicorn makes no |
| * representations about the suitability of this software for any |
| * purpose. It is provided "as is" without express or implied warranty. |
| |
| ***********************************************************************************/ |
| #ifndef test_hash_resize__ |
| #define test_hash_resize__ |
| |
| #include "random_number.h" |
| #include "nc_alloc.h" |
| |
| template <class T> |
| struct test_hash_resize |
| { |
| test_hash_resize() |
| { |
| gTestController.SetCurrentTestName("hash resize"); |
| } |
| |
| void operator()( T& t ) const |
| { |
| t.resize( 1+random_number(random_base) + t.bucket_count() ); |
| } |
| }; |
| |
| template <class T> |
| struct test_construct_iter_range_n |
| { |
| test_construct_iter_range_n( const T& src ) |
| : fItems( src ) |
| { |
| gTestController.SetCurrentTestName("iterator range n-size constructor"); |
| } |
| |
| void operator()( int ) const |
| { |
| T t( fItems.begin(), fItems.end(), fItems.size() ); |
| // prevent simulated failures during verification |
| gTestController.CancelFailureCountdown(); |
| CheckInvariant(t); |
| } |
| |
| const T& fItems; |
| }; |
| |
| #endif //__test_hash_resize__ |