57 lines
1.5 KiB
C++
57 lines
1.5 KiB
C++
/***********************************************************************************
|
|
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__
|