public:
static size_t s_nSetSize; // initial set size
static size_t s_nPassCount; // initial set size
+ static size_t s_nBronsonAVLTreeMapPassCount;
+ static size_t s_nEllenBinTreeMapPassCount;
+ static size_t s_nFeldmanPassCount;
+ static size_t s_nMichaelMapPassCount;
+ static size_t s_nSkipListMapPassCount;
+ static size_t s_nSplitListMapPassCount;
+
static size_t s_nThreadCount; // thread count
static size_t s_nMaxLoadFactor; // maximum load factor
static unsigned int s_nInsertPercentage;
Set s( *this );
do_test( s );
}
+
+ template <class Set>
+ void run_bronson_avl_tree() {
+ Set_InsDelFind::s_nPassCount =
+ Set_InsDelFind::s_nBronsonAVLTreeMapPassCount;
+ run_test<Set>();
+ }
+
+ template <class Set>
+ void run_ellen_bin_tree() {
+ Set_InsDelFind::s_nPassCount =
+ Set_InsDelFind::s_nEllenBinTreeMapPassCount;
+ run_test<Set>();
+ }
+
+ template <class Set>
+ void run_feldman() {
+ Set_InsDelFind::s_nPassCount =
+ Set_InsDelFind::s_nFeldmanPassCount;
+ run_test<Set>();
+ }
+
+ template <class Set>
+ void run_skip_list() {
+ Set_InsDelFind::s_nPassCount =
+ Set_InsDelFind::s_nSkipListMapPassCount;
+ run_test<Set>();
+ }
};
class Set_InsDelFind_LF: public Set_InsDelFind
Set_InsDelFind::run_test<Set>();
}
+ template <class Set>
+ void run_michael() {
+ Set_InsDelFind::s_nPassCount =
+ Set_InsDelFind::s_nMichaelMapPassCount;
+ Set_InsDelFind_LF::run_test<Set>();
+ }
+
+ template <class Set>
+ void run_split_list() {
+ Set_InsDelFind::s_nPassCount =
+ Set_InsDelFind::s_nSplitListMapPassCount;
+ Set_InsDelFind_LF::run_test<Set>();
+ }
+
static std::vector<size_t> get_load_factors();
};