/***********************************************************************************
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__