issue#11: tests/test-hdr: changed .h file guard prefix to CDSTEST_xxx
[libcds.git] / tests / test-hdr / set / hdr_intrusive_set.h
index 49645afc5eed86c94752a6d244791467b484c385..48ed8c98c638f8a850235fd6e5c64f35d0f2a6ab 100644 (file)
@@ -1,5 +1,8 @@
 //$$CDS-header$$
 
+#ifndef CDSTEST_HDR_INTRUSIVE_SET_H
+#define CDSTEST_HDR_INTRUSIVE_SET_H
+
 #include "cppunit/cppunit_proxy.h"
 #include "size_check.h"
 
@@ -51,7 +54,8 @@ namespace set {
             {}
 
             base_int_item(const base_int_item& v )
-                : stat()
+                : Node()
+                , stat()
                 , nKey( v.nKey )
                 , nVal( v.nVal )
             {}
@@ -193,7 +197,7 @@ namespace set {
         struct find_functor
         {
             template <typename Item, typename T>
-            void operator()( Item& item, T& val )
+            void operator()( Item& item, T& /*val*/ )
             {
                 ++item.nFindCount;
             }
@@ -211,7 +215,7 @@ namespace set {
         struct ensure_functor
         {
             template <typename Item>
-            void operator()( bool bNew, Item& item, Item& val )
+            void operator()( bool bNew, Item& item, Item& /*val*/ )
             {
                 if ( bNew )
                     ++item.nEnsureNewCount;
@@ -503,43 +507,51 @@ namespace set {
                 guarded_ptr gp;
                 for ( size_t i = 0; i < nLimit; i += 2 ) {
                     int nKey = arr[i];
-                    CPPUNIT_ASSERT( s.get( gp, nKey ));
+                    gp = s.get( nKey );
+                    CPPUNIT_ASSERT( gp );
                     CPPUNIT_ASSERT( !gp.empty());
                     CPPUNIT_CHECK( gp->nKey == nKey );
                     CPPUNIT_CHECK( gp->nVal == nKey * 2 );
+                    gp.release();
 
-                    CPPUNIT_ASSERT( s.extract( gp, nKey ));
+                    gp = s.extract( nKey );
+                    CPPUNIT_ASSERT( gp );
                     CPPUNIT_ASSERT( !gp.empty() );
                     CPPUNIT_CHECK( gp->nKey == nKey );
                     CPPUNIT_CHECK( gp->nVal == nKey * 2 );
                     gp.release();
 
-                    CPPUNIT_CHECK( !s.get( gp, nKey ));
+                    gp = s.get( nKey );
+                    CPPUNIT_CHECK( !gp );
                     CPPUNIT_ASSERT( gp.empty() );
-                    CPPUNIT_CHECK( !s.extract( gp, nKey ));
+                    CPPUNIT_CHECK( !s.extract( nKey ));
                     CPPUNIT_CHECK( gp.empty() );
 
                     nKey = arr[i+1];
-                    CPPUNIT_ASSERT( s.get_with( gp, nKey, less<value_type>() ));
+                    gp = s.get_with( nKey, less<value_type>() );
+                    CPPUNIT_ASSERT( gp );
                     CPPUNIT_CHECK( gp->nKey == nKey );
                     CPPUNIT_CHECK( gp->nVal == nKey * 2 );
+                    gp.release();
 
-                    CPPUNIT_ASSERT( s.extract_with( gp, nKey, less<value_type>() ));
+                    gp = s.extract_with( nKey, less<value_type>() );
+                    CPPUNIT_ASSERT( gp );
                     CPPUNIT_ASSERT( !gp.empty() );
                     CPPUNIT_CHECK( gp->nKey == nKey );
                     CPPUNIT_CHECK( gp->nVal == nKey * 2 );
                     gp.release();
 
-                    CPPUNIT_CHECK( !s.get_with( gp, nKey, less<value_type>() ));
+                    gp = s.get_with( nKey, less<value_type>() );
+                    CPPUNIT_CHECK( !gp );
                     CPPUNIT_CHECK( gp.empty());
-                    CPPUNIT_CHECK( !s.extract_with( gp, nKey, less<value_type>() ));
+                    CPPUNIT_CHECK( !s.extract_with( nKey, less<value_type>() ));
                     CPPUNIT_CHECK( gp.empty());
                 }
                 CPPUNIT_CHECK( s.empty() );
                 CPPUNIT_CHECK( check_size( s, 0 ));
 
-                CPPUNIT_CHECK( !s.get( gp, 100 ));
-                CPPUNIT_CHECK( !s.extract( gp, 100 ));
+                CPPUNIT_CHECK( !s.get( 100 ));
+                CPPUNIT_CHECK( !s.extract( 100 ));
                 CPPUNIT_CHECK( gp.empty() );
 
                 Set::gc::force_dispose();
@@ -564,8 +576,33 @@ namespace set {
                     CPPUNIT_ASSERT( s.insert( v[i] ));
                 }
 
+                {
+                    typename Set::iterator it( s.begin() );
+                    typename Set::const_iterator cit( s.cbegin() );
+                    CPPUNIT_CHECK( it == cit );
+                    CPPUNIT_CHECK( it != s.end() );
+                    CPPUNIT_CHECK( it != s.cend() );
+                    CPPUNIT_CHECK( cit != s.end() );
+                    CPPUNIT_CHECK( cit != s.cend() );
+                    ++it;
+                    CPPUNIT_CHECK( it != cit );
+                    CPPUNIT_CHECK( it != s.end() );
+                    CPPUNIT_CHECK( it != s.cend() );
+                    CPPUNIT_CHECK( cit != s.end() );
+                    CPPUNIT_CHECK( cit != s.cend() );
+                    ++cit;
+                    CPPUNIT_CHECK( it == cit );
+                    CPPUNIT_CHECK( it != s.end() );
+                    CPPUNIT_CHECK( it != s.cend() );
+                    CPPUNIT_CHECK( cit != s.end() );
+                    CPPUNIT_CHECK( cit != s.cend() );
+                }
+
                 int nCount = 0;
                 for ( set_iterator it = s.begin(), itEnd = s.end(); it != itEnd; ++it ) {
+                    set_iterator it2 = it;
+                    CPPUNIT_CHECK( it == it2 );
+                    CPPUNIT_CHECK( it2 != itEnd );
                     CPPUNIT_ASSERT( (*it).nKey * 2 == it->nVal );
                     it->nVal = (*it).nKey;
                     ++nCount;
@@ -1006,7 +1043,8 @@ namespace set {
                         CPPUNIT_CHECK( pVal->nKey == nKey );
                         CPPUNIT_CHECK( pVal->nVal == nKey * 2 );
 
-                        CPPUNIT_ASSERT( s.extract( ep, nKey ));
+                        ep = s.extract( nKey );
+                        CPPUNIT_ASSERT( ep );
                         CPPUNIT_ASSERT( !ep.empty() );
                         CPPUNIT_CHECK( pVal->nKey == ep->nKey );
                         CPPUNIT_CHECK( pVal->nVal == (*ep).nVal );
@@ -1015,7 +1053,7 @@ namespace set {
                     {
                         rcu_lock l;
                         CPPUNIT_CHECK( s.get( nKey ) == nullptr );
-                        CPPUNIT_CHECK( !s.extract( ep, nKey ));
+                        CPPUNIT_CHECK( !s.extract( nKey ));
                         CPPUNIT_CHECK( ep.empty() );
 
                         nKey = arr[i+1];
@@ -1024,7 +1062,8 @@ namespace set {
                         CPPUNIT_CHECK( pVal->nKey == nKey );
                         CPPUNIT_CHECK( pVal->nVal == nKey * 2 );
 
-                        CPPUNIT_ASSERT( s.extract_with( ep, nKey, less<value_type>() ));
+                        ep = s.extract_with( nKey, less<value_type>() );
+                        CPPUNIT_ASSERT( ep );
                         CPPUNIT_ASSERT( !ep.empty() );
                         CPPUNIT_CHECK( pVal->nKey == ep->nKey );
                         CPPUNIT_CHECK( pVal->nVal == (*ep).nVal );
@@ -1033,7 +1072,8 @@ namespace set {
                     {
                         rcu_lock l;
                         CPPUNIT_CHECK( s.get_with( nKey, less<value_type>() ) == nullptr );
-                        CPPUNIT_CHECK( !s.extract_with( ep, nKey, less<value_type>() ));
+                        ep = s.extract_with( nKey, less<value_type>() );
+                        CPPUNIT_CHECK( !ep );
                         CPPUNIT_CHECK( ep.empty() );
                     }
                 }
@@ -1042,7 +1082,8 @@ namespace set {
                 {
                     rcu_lock l;
                     CPPUNIT_CHECK( s.get( 100 ) == nullptr );
-                    CPPUNIT_CHECK( !s.extract( ep, 100 ));
+                    ep = s.extract( 100 );
+                    CPPUNIT_CHECK( !ep );
                     CPPUNIT_CHECK( ep.empty() );
                 }
 
@@ -1168,212 +1209,276 @@ namespace set {
         void split_dyn_HP_base_cmp();
         void split_dyn_HP_base_less();
         void split_dyn_HP_base_cmpmix();
+        void split_dyn_HP_base_cmpmix_stat();
         void split_dyn_HP_member_cmp();
         void split_dyn_HP_member_less();
         void split_dyn_HP_member_cmpmix();
+        void split_dyn_HP_member_cmpmix_stat();
         void split_st_HP_base_cmp();
         void split_st_HP_base_less();
         void split_st_HP_base_cmpmix();
+        void split_st_HP_base_cmpmix_stat();
         void split_st_HP_member_cmp();
         void split_st_HP_member_less();
         void split_st_HP_member_cmpmix();
-
-        void split_dyn_PTB_base_cmp();
-        void split_dyn_PTB_base_less();
-        void split_dyn_PTB_base_cmpmix();
-        void split_dyn_PTB_member_cmp();
-        void split_dyn_PTB_member_less();
-        void split_dyn_PTB_member_cmpmix();
-        void split_st_PTB_base_cmp();
-        void split_st_PTB_base_less();
-        void split_st_PTB_base_cmpmix();
-        void split_st_PTB_member_cmp();
-        void split_st_PTB_member_less();
-        void split_st_PTB_member_cmpmix();
+        void split_st_HP_member_cmpmix_stat();
+
+        void split_dyn_DHP_base_cmp();
+        void split_dyn_DHP_base_less();
+        void split_dyn_DHP_base_cmpmix();
+        void split_dyn_DHP_base_cmpmix_stat();
+        void split_dyn_DHP_member_cmp();
+        void split_dyn_DHP_member_less();
+        void split_dyn_DHP_member_cmpmix();
+        void split_dyn_DHP_member_cmpmix_stat();
+        void split_st_DHP_base_cmp();
+        void split_st_DHP_base_less();
+        void split_st_DHP_base_cmpmix();
+        void split_st_DHP_base_cmpmix_stat();
+        void split_st_DHP_member_cmp();
+        void split_st_DHP_member_less();
+        void split_st_DHP_member_cmpmix();
+        void split_st_DHP_member_cmpmix_stat();
 
         void split_dyn_RCU_GPI_base_cmp();
         void split_dyn_RCU_GPI_base_less();
         void split_dyn_RCU_GPI_base_cmpmix();
+        void split_dyn_RCU_GPI_base_cmpmix_stat();
         void split_dyn_RCU_GPI_member_cmp();
         void split_dyn_RCU_GPI_member_less();
         void split_dyn_RCU_GPI_member_cmpmix();
+        void split_dyn_RCU_GPI_member_cmpmix_stat();
         void split_st_RCU_GPI_base_cmp();
         void split_st_RCU_GPI_base_less();
         void split_st_RCU_GPI_base_cmpmix();
+        void split_st_RCU_GPI_base_cmpmix_stat();
         void split_st_RCU_GPI_member_cmp();
         void split_st_RCU_GPI_member_less();
         void split_st_RCU_GPI_member_cmpmix();
+        void split_st_RCU_GPI_member_cmpmix_stat();
 
         void split_dyn_RCU_GPB_base_cmp();
         void split_dyn_RCU_GPB_base_less();
         void split_dyn_RCU_GPB_base_cmpmix();
+        void split_dyn_RCU_GPB_base_cmpmix_stat();
         void split_dyn_RCU_GPB_member_cmp();
         void split_dyn_RCU_GPB_member_less();
         void split_dyn_RCU_GPB_member_cmpmix();
+        void split_dyn_RCU_GPB_member_cmpmix_stat();
         void split_st_RCU_GPB_base_cmp();
         void split_st_RCU_GPB_base_less();
         void split_st_RCU_GPB_base_cmpmix();
+        void split_st_RCU_GPB_base_cmpmix_stat();
         void split_st_RCU_GPB_member_cmp();
         void split_st_RCU_GPB_member_less();
         void split_st_RCU_GPB_member_cmpmix();
+        void split_st_RCU_GPB_member_cmpmix_stat();
 
         void split_dyn_RCU_GPT_base_cmp();
         void split_dyn_RCU_GPT_base_less();
         void split_dyn_RCU_GPT_base_cmpmix();
+        void split_dyn_RCU_GPT_base_cmpmix_stat();
         void split_dyn_RCU_GPT_member_cmp();
         void split_dyn_RCU_GPT_member_less();
         void split_dyn_RCU_GPT_member_cmpmix();
+        void split_dyn_RCU_GPT_member_cmpmix_stat();
         void split_st_RCU_GPT_base_cmp();
         void split_st_RCU_GPT_base_less();
         void split_st_RCU_GPT_base_cmpmix();
+        void split_st_RCU_GPT_base_cmpmix_stat();
         void split_st_RCU_GPT_member_cmp();
         void split_st_RCU_GPT_member_less();
         void split_st_RCU_GPT_member_cmpmix();
+        void split_st_RCU_GPT_member_cmpmix_stat();
 
         void split_dyn_RCU_SHB_base_cmp();
         void split_dyn_RCU_SHB_base_less();
         void split_dyn_RCU_SHB_base_cmpmix();
+        void split_dyn_RCU_SHB_base_cmpmix_stat();
         void split_dyn_RCU_SHB_member_cmp();
         void split_dyn_RCU_SHB_member_less();
         void split_dyn_RCU_SHB_member_cmpmix();
+        void split_dyn_RCU_SHB_member_cmpmix_stat();
         void split_st_RCU_SHB_base_cmp();
         void split_st_RCU_SHB_base_less();
         void split_st_RCU_SHB_base_cmpmix();
+        void split_st_RCU_SHB_base_cmpmix_stat();
         void split_st_RCU_SHB_member_cmp();
         void split_st_RCU_SHB_member_less();
         void split_st_RCU_SHB_member_cmpmix();
+        void split_st_RCU_SHB_member_cmpmix_stat();
 
         void split_dyn_RCU_SHT_base_cmp();
         void split_dyn_RCU_SHT_base_less();
         void split_dyn_RCU_SHT_base_cmpmix();
+        void split_dyn_RCU_SHT_base_cmpmix_stat();
         void split_dyn_RCU_SHT_member_cmp();
         void split_dyn_RCU_SHT_member_less();
         void split_dyn_RCU_SHT_member_cmpmix();
+        void split_dyn_RCU_SHT_member_cmpmix_stat();
         void split_st_RCU_SHT_base_cmp();
         void split_st_RCU_SHT_base_less();
         void split_st_RCU_SHT_base_cmpmix();
+        void split_st_RCU_SHT_base_cmpmix_stat();
         void split_st_RCU_SHT_member_cmp();
         void split_st_RCU_SHT_member_less();
         void split_st_RCU_SHT_member_cmpmix();
+        void split_st_RCU_SHT_member_cmpmix_stat();
 
         void split_dyn_nogc_base_cmp();
         void split_dyn_nogc_base_less();
         void split_dyn_nogc_base_cmpmix();
+        void split_dyn_nogc_base_cmpmix_stat();
         void split_dyn_nogc_member_cmp();
         void split_dyn_nogc_member_less();
         void split_dyn_nogc_member_cmpmix();
+        void split_dyn_nogc_member_cmpmix_stat();
         void split_st_nogc_base_cmp();
         void split_st_nogc_base_less();
         void split_st_nogc_base_cmpmix();
+        void split_st_nogc_base_cmpmix_stat();
         void split_st_nogc_member_cmp();
         void split_st_nogc_member_less();
         void split_st_nogc_member_cmpmix();
+        void split_st_nogc_member_cmpmix_stat();
 
 
         // SplitListSet + LazyList [dyn - dynamic bucket table, st - static bucket table]
         void split_dyn_HP_base_cmp_lazy();
         void split_dyn_HP_base_less_lazy();
         void split_dyn_HP_base_cmpmix_lazy();
+        void split_dyn_HP_base_cmpmix_stat_lazy();
         void split_dyn_HP_member_cmp_lazy();
         void split_dyn_HP_member_less_lazy();
         void split_dyn_HP_member_cmpmix_lazy();
+        void split_dyn_HP_member_cmpmix_stat_lazy();
         void split_st_HP_base_cmp_lazy();
         void split_st_HP_base_less_lazy();
         void split_st_HP_base_cmpmix_lazy();
+        void split_st_HP_base_cmpmix_stat_lazy();
         void split_st_HP_member_cmp_lazy();
         void split_st_HP_member_less_lazy();
         void split_st_HP_member_cmpmix_lazy();
-
-        void split_dyn_PTB_base_cmp_lazy();
-        void split_dyn_PTB_base_less_lazy();
-        void split_dyn_PTB_base_cmpmix_lazy();
-        void split_dyn_PTB_member_cmp_lazy();
-        void split_dyn_PTB_member_less_lazy();
-        void split_dyn_PTB_member_cmpmix_lazy();
-        void split_st_PTB_base_cmp_lazy();
-        void split_st_PTB_base_less_lazy();
-        void split_st_PTB_base_cmpmix_lazy();
-        void split_st_PTB_member_cmp_lazy();
-        void split_st_PTB_member_less_lazy();
-        void split_st_PTB_member_cmpmix_lazy();
+        void split_st_HP_member_cmpmix_stat_lazy();
+
+        void split_dyn_DHP_base_cmp_lazy();
+        void split_dyn_DHP_base_less_lazy();
+        void split_dyn_DHP_base_cmpmix_lazy();
+        void split_dyn_DHP_base_cmpmix_stat_lazy();
+        void split_dyn_DHP_member_cmp_lazy();
+        void split_dyn_DHP_member_less_lazy();
+        void split_dyn_DHP_member_cmpmix_lazy();
+        void split_dyn_DHP_member_cmpmix_stat_lazy();
+        void split_st_DHP_base_cmp_lazy();
+        void split_st_DHP_base_less_lazy();
+        void split_st_DHP_base_cmpmix_lazy();
+        void split_st_DHP_base_cmpmix_stat_lazy();
+        void split_st_DHP_member_cmp_lazy();
+        void split_st_DHP_member_less_lazy();
+        void split_st_DHP_member_cmpmix_lazy();
+        void split_st_DHP_member_cmpmix_stat_lazy();
 
         void split_dyn_RCU_GPI_base_cmp_lazy();
         void split_dyn_RCU_GPI_base_less_lazy();
         void split_dyn_RCU_GPI_base_cmpmix_lazy();
+        void split_dyn_RCU_GPI_base_cmpmix_stat_lazy();
         void split_dyn_RCU_GPI_member_cmp_lazy();
         void split_dyn_RCU_GPI_member_less_lazy();
         void split_dyn_RCU_GPI_member_cmpmix_lazy();
+        void split_dyn_RCU_GPI_member_cmpmix_stat_lazy();
         void split_st_RCU_GPI_base_cmp_lazy();
         void split_st_RCU_GPI_base_less_lazy();
         void split_st_RCU_GPI_base_cmpmix_lazy();
+        void split_st_RCU_GPI_base_cmpmix_stat_lazy();
         void split_st_RCU_GPI_member_cmp_lazy();
         void split_st_RCU_GPI_member_less_lazy();
         void split_st_RCU_GPI_member_cmpmix_lazy();
+        void split_st_RCU_GPI_member_cmpmix_stat_lazy();
 
         void split_dyn_RCU_GPB_base_cmp_lazy();
         void split_dyn_RCU_GPB_base_less_lazy();
         void split_dyn_RCU_GPB_base_cmpmix_lazy();
+        void split_dyn_RCU_GPB_base_cmpmix_stat_lazy();
         void split_dyn_RCU_GPB_member_cmp_lazy();
         void split_dyn_RCU_GPB_member_less_lazy();
         void split_dyn_RCU_GPB_member_cmpmix_lazy();
+        void split_dyn_RCU_GPB_member_cmpmix_stat_lazy();
         void split_st_RCU_GPB_base_cmp_lazy();
         void split_st_RCU_GPB_base_less_lazy();
         void split_st_RCU_GPB_base_cmpmix_lazy();
+        void split_st_RCU_GPB_base_cmpmix_stat_lazy();
         void split_st_RCU_GPB_member_cmp_lazy();
         void split_st_RCU_GPB_member_less_lazy();
         void split_st_RCU_GPB_member_cmpmix_lazy();
+        void split_st_RCU_GPB_member_cmpmix_stat_lazy();
 
         void split_dyn_RCU_GPT_base_cmp_lazy();
         void split_dyn_RCU_GPT_base_less_lazy();
         void split_dyn_RCU_GPT_base_cmpmix_lazy();
+        void split_dyn_RCU_GPT_base_cmpmix_stat_lazy();
         void split_dyn_RCU_GPT_member_cmp_lazy();
         void split_dyn_RCU_GPT_member_less_lazy();
         void split_dyn_RCU_GPT_member_cmpmix_lazy();
+        void split_dyn_RCU_GPT_member_cmpmix_stat_lazy();
         void split_st_RCU_GPT_base_cmp_lazy();
         void split_st_RCU_GPT_base_less_lazy();
         void split_st_RCU_GPT_base_cmpmix_lazy();
+        void split_st_RCU_GPT_base_cmpmix_stat_lazy();
         void split_st_RCU_GPT_member_cmp_lazy();
         void split_st_RCU_GPT_member_less_lazy();
         void split_st_RCU_GPT_member_cmpmix_lazy();
+        void split_st_RCU_GPT_member_cmpmix_stat_lazy();
 
         void split_dyn_RCU_SHB_base_cmp_lazy();
         void split_dyn_RCU_SHB_base_less_lazy();
         void split_dyn_RCU_SHB_base_cmpmix_lazy();
+        void split_dyn_RCU_SHB_base_cmpmix_stat_lazy();
         void split_dyn_RCU_SHB_member_cmp_lazy();
         void split_dyn_RCU_SHB_member_less_lazy();
         void split_dyn_RCU_SHB_member_cmpmix_lazy();
+        void split_dyn_RCU_SHB_member_cmpmix_stat_lazy();
         void split_st_RCU_SHB_base_cmp_lazy();
         void split_st_RCU_SHB_base_less_lazy();
         void split_st_RCU_SHB_base_cmpmix_lazy();
+        void split_st_RCU_SHB_base_cmpmix_stat_lazy();
         void split_st_RCU_SHB_member_cmp_lazy();
         void split_st_RCU_SHB_member_less_lazy();
         void split_st_RCU_SHB_member_cmpmix_lazy();
+        void split_st_RCU_SHB_member_cmpmix_stat_lazy();
 
         void split_dyn_RCU_SHT_base_cmp_lazy();
         void split_dyn_RCU_SHT_base_less_lazy();
         void split_dyn_RCU_SHT_base_cmpmix_lazy();
+        void split_dyn_RCU_SHT_base_cmpmix_stat_lazy();
         void split_dyn_RCU_SHT_member_cmp_lazy();
         void split_dyn_RCU_SHT_member_less_lazy();
         void split_dyn_RCU_SHT_member_cmpmix_lazy();
+        void split_dyn_RCU_SHT_member_cmpmix_stat_lazy();
         void split_st_RCU_SHT_base_cmp_lazy();
         void split_st_RCU_SHT_base_less_lazy();
         void split_st_RCU_SHT_base_cmpmix_lazy();
+        void split_st_RCU_SHT_base_cmpmix_stat_lazy();
         void split_st_RCU_SHT_member_cmp_lazy();
         void split_st_RCU_SHT_member_less_lazy();
         void split_st_RCU_SHT_member_cmpmix_lazy();
+        void split_st_RCU_SHT_member_cmpmix_stat_lazy();
 
         void split_dyn_nogc_base_cmp_lazy();
         void split_dyn_nogc_base_less_lazy();
         void split_dyn_nogc_base_cmpmix_lazy();
+        void split_dyn_nogc_base_cmpmix_stat_lazy();
         void split_dyn_nogc_member_cmp_lazy();
         void split_dyn_nogc_member_less_lazy();
         void split_dyn_nogc_member_cmpmix_lazy();
+        void split_dyn_nogc_member_cmpmix_stat_lazy();
         void split_st_nogc_base_cmp_lazy();
         void split_st_nogc_base_less_lazy();
         void split_st_nogc_base_cmpmix_lazy();
+        void split_st_nogc_base_cmpmix_stat_lazy();
         void split_st_nogc_member_cmp_lazy();
         void split_st_nogc_member_less_lazy();
         void split_st_nogc_member_cmpmix_lazy();
+        void split_st_nogc_member_cmpmix_stat_lazy();
 
         CPPUNIT_TEST_SUITE(IntrusiveHashSetHdrTest)
             CPPUNIT_TEST(HP_base_cmp)
@@ -1491,214 +1596,278 @@ namespace set {
             CPPUNIT_TEST(split_dyn_HP_base_cmp)
             CPPUNIT_TEST(split_dyn_HP_base_less)
             CPPUNIT_TEST(split_dyn_HP_base_cmpmix)
-            CPPUNIT_TEST(split_dyn_HP_member_cmp)
+            CPPUNIT_TEST( split_dyn_HP_base_cmpmix_stat )
+            CPPUNIT_TEST( split_dyn_HP_member_cmp )
             CPPUNIT_TEST(split_dyn_HP_member_less)
             CPPUNIT_TEST(split_dyn_HP_member_cmpmix)
-            CPPUNIT_TEST(split_st_HP_base_cmp)
+            CPPUNIT_TEST( split_dyn_HP_member_cmpmix_stat )
+            CPPUNIT_TEST( split_st_HP_base_cmp )
             CPPUNIT_TEST(split_st_HP_base_less)
             CPPUNIT_TEST(split_st_HP_base_cmpmix)
-            CPPUNIT_TEST(split_st_HP_member_cmp)
+            CPPUNIT_TEST( split_st_HP_base_cmpmix_stat )
+            CPPUNIT_TEST( split_st_HP_member_cmp )
             CPPUNIT_TEST(split_st_HP_member_less)
             CPPUNIT_TEST(split_st_HP_member_cmpmix)
-
-            CPPUNIT_TEST(split_dyn_PTB_base_cmp)
-            CPPUNIT_TEST(split_dyn_PTB_base_less)
-            CPPUNIT_TEST(split_dyn_PTB_base_cmpmix)
-            CPPUNIT_TEST(split_dyn_PTB_member_cmp)
-            CPPUNIT_TEST(split_dyn_PTB_member_less)
-            CPPUNIT_TEST(split_dyn_PTB_member_cmpmix)
-            CPPUNIT_TEST(split_st_PTB_base_cmp)
-            CPPUNIT_TEST(split_st_PTB_base_less)
-            CPPUNIT_TEST(split_st_PTB_base_cmpmix)
-            CPPUNIT_TEST(split_st_PTB_member_cmp)
-            CPPUNIT_TEST(split_st_PTB_member_less)
-            CPPUNIT_TEST(split_st_PTB_member_cmpmix)
+            CPPUNIT_TEST( split_st_HP_member_cmpmix_stat )
+
+            CPPUNIT_TEST(split_dyn_DHP_base_cmp)
+            CPPUNIT_TEST(split_dyn_DHP_base_less)
+            CPPUNIT_TEST(split_dyn_DHP_base_cmpmix)
+            CPPUNIT_TEST( split_dyn_DHP_base_cmpmix_stat )
+            CPPUNIT_TEST( split_dyn_DHP_member_cmp )
+            CPPUNIT_TEST(split_dyn_DHP_member_less)
+            CPPUNIT_TEST(split_dyn_DHP_member_cmpmix)
+            CPPUNIT_TEST( split_dyn_DHP_member_cmpmix_stat )
+            CPPUNIT_TEST( split_st_DHP_base_cmp )
+            CPPUNIT_TEST(split_st_DHP_base_less)
+            CPPUNIT_TEST(split_st_DHP_base_cmpmix)
+            CPPUNIT_TEST( split_st_DHP_base_cmpmix_stat )
+            CPPUNIT_TEST( split_st_DHP_member_cmp )
+            CPPUNIT_TEST(split_st_DHP_member_less)
+            CPPUNIT_TEST(split_st_DHP_member_cmpmix)
+            CPPUNIT_TEST( split_st_DHP_member_cmpmix_stat )
 
             CPPUNIT_TEST(split_dyn_RCU_GPI_base_cmp)
             CPPUNIT_TEST(split_dyn_RCU_GPI_base_less)
             CPPUNIT_TEST(split_dyn_RCU_GPI_base_cmpmix)
-            CPPUNIT_TEST(split_dyn_RCU_GPI_member_cmp)
+            CPPUNIT_TEST( split_dyn_RCU_GPI_base_cmpmix_stat )
+            CPPUNIT_TEST( split_dyn_RCU_GPI_member_cmp )
             CPPUNIT_TEST(split_dyn_RCU_GPI_member_less)
             CPPUNIT_TEST(split_dyn_RCU_GPI_member_cmpmix)
-            CPPUNIT_TEST(split_st_RCU_GPI_base_cmp)
+            CPPUNIT_TEST( split_dyn_RCU_GPI_member_cmpmix_stat )
+            CPPUNIT_TEST( split_st_RCU_GPI_base_cmp )
             CPPUNIT_TEST(split_st_RCU_GPI_base_less)
             CPPUNIT_TEST(split_st_RCU_GPI_base_cmpmix)
-            CPPUNIT_TEST(split_st_RCU_GPI_member_cmp)
+            CPPUNIT_TEST( split_st_RCU_GPI_base_cmpmix_stat )
+            CPPUNIT_TEST( split_st_RCU_GPI_member_cmp )
             CPPUNIT_TEST(split_st_RCU_GPI_member_less)
             CPPUNIT_TEST(split_st_RCU_GPI_member_cmpmix)
+            CPPUNIT_TEST( split_st_RCU_GPI_member_cmpmix_stat )
 
             CPPUNIT_TEST(split_dyn_RCU_GPB_base_cmp)
             CPPUNIT_TEST(split_dyn_RCU_GPB_base_less)
             CPPUNIT_TEST(split_dyn_RCU_GPB_base_cmpmix)
-            CPPUNIT_TEST(split_dyn_RCU_GPB_member_cmp)
+            CPPUNIT_TEST( split_dyn_RCU_GPB_base_cmpmix_stat )
+            CPPUNIT_TEST( split_dyn_RCU_GPB_member_cmp )
             CPPUNIT_TEST(split_dyn_RCU_GPB_member_less)
             CPPUNIT_TEST(split_dyn_RCU_GPB_member_cmpmix)
-            CPPUNIT_TEST(split_st_RCU_GPB_base_cmp)
+            CPPUNIT_TEST( split_dyn_RCU_GPB_member_cmpmix_stat )
+            CPPUNIT_TEST( split_st_RCU_GPB_base_cmp )
             CPPUNIT_TEST(split_st_RCU_GPB_base_less)
             CPPUNIT_TEST(split_st_RCU_GPB_base_cmpmix)
-            CPPUNIT_TEST(split_st_RCU_GPB_member_cmp)
+            CPPUNIT_TEST( split_st_RCU_GPB_base_cmpmix_stat )
+            CPPUNIT_TEST( split_st_RCU_GPB_member_cmp )
             CPPUNIT_TEST(split_st_RCU_GPB_member_less)
             CPPUNIT_TEST(split_st_RCU_GPB_member_cmpmix)
+            CPPUNIT_TEST( split_st_RCU_GPB_member_cmpmix_stat )
 
             CPPUNIT_TEST(split_dyn_RCU_GPT_base_cmp)
             CPPUNIT_TEST(split_dyn_RCU_GPT_base_less)
             CPPUNIT_TEST(split_dyn_RCU_GPT_base_cmpmix)
-            CPPUNIT_TEST(split_dyn_RCU_GPT_member_cmp)
+            CPPUNIT_TEST( split_dyn_RCU_GPT_base_cmpmix_stat )
+            CPPUNIT_TEST( split_dyn_RCU_GPT_member_cmp )
             CPPUNIT_TEST(split_dyn_RCU_GPT_member_less)
             CPPUNIT_TEST(split_dyn_RCU_GPT_member_cmpmix)
-            CPPUNIT_TEST(split_st_RCU_GPT_base_cmp)
+            CPPUNIT_TEST( split_dyn_RCU_GPT_member_cmpmix_stat )
+            CPPUNIT_TEST( split_st_RCU_GPT_base_cmp )
             CPPUNIT_TEST(split_st_RCU_GPT_base_less)
             CPPUNIT_TEST(split_st_RCU_GPT_base_cmpmix)
-            CPPUNIT_TEST(split_st_RCU_GPT_member_cmp)
+            CPPUNIT_TEST( split_st_RCU_GPT_base_cmpmix_stat )
+            CPPUNIT_TEST( split_st_RCU_GPT_member_cmp )
             CPPUNIT_TEST(split_st_RCU_GPT_member_less)
             CPPUNIT_TEST(split_st_RCU_GPT_member_cmpmix)
+            CPPUNIT_TEST( split_st_RCU_GPT_member_cmpmix_stat )
 
             CPPUNIT_TEST(split_dyn_RCU_SHB_base_cmp)
             CPPUNIT_TEST(split_dyn_RCU_SHB_base_less)
             CPPUNIT_TEST(split_dyn_RCU_SHB_base_cmpmix)
-            CPPUNIT_TEST(split_dyn_RCU_SHB_member_cmp)
+            CPPUNIT_TEST( split_dyn_RCU_SHB_base_cmpmix_stat )
+            CPPUNIT_TEST( split_dyn_RCU_SHB_member_cmp )
             CPPUNIT_TEST(split_dyn_RCU_SHB_member_less)
             CPPUNIT_TEST(split_dyn_RCU_SHB_member_cmpmix)
-            CPPUNIT_TEST(split_st_RCU_SHB_base_cmp)
+            CPPUNIT_TEST( split_dyn_RCU_SHB_member_cmpmix_stat )
+            CPPUNIT_TEST( split_st_RCU_SHB_base_cmp )
             CPPUNIT_TEST(split_st_RCU_SHB_base_less)
             CPPUNIT_TEST(split_st_RCU_SHB_base_cmpmix)
-            CPPUNIT_TEST(split_st_RCU_SHB_member_cmp)
+            CPPUNIT_TEST( split_st_RCU_SHB_base_cmpmix_stat )
+            CPPUNIT_TEST( split_st_RCU_SHB_member_cmp )
             CPPUNIT_TEST(split_st_RCU_SHB_member_less)
             CPPUNIT_TEST(split_st_RCU_SHB_member_cmpmix)
+            CPPUNIT_TEST( split_st_RCU_SHB_member_cmpmix_stat )
 
             CPPUNIT_TEST(split_dyn_RCU_SHT_base_cmp)
             CPPUNIT_TEST(split_dyn_RCU_SHT_base_less)
             CPPUNIT_TEST(split_dyn_RCU_SHT_base_cmpmix)
-            CPPUNIT_TEST(split_dyn_RCU_SHT_member_cmp)
+            CPPUNIT_TEST( split_dyn_RCU_SHT_base_cmpmix_stat )
+            CPPUNIT_TEST( split_dyn_RCU_SHT_member_cmp )
             CPPUNIT_TEST(split_dyn_RCU_SHT_member_less)
             CPPUNIT_TEST(split_dyn_RCU_SHT_member_cmpmix)
-            CPPUNIT_TEST(split_st_RCU_SHT_base_cmp)
+            CPPUNIT_TEST( split_dyn_RCU_SHT_member_cmpmix_stat )
+            CPPUNIT_TEST( split_st_RCU_SHT_base_cmp )
             CPPUNIT_TEST(split_st_RCU_SHT_base_less)
             CPPUNIT_TEST(split_st_RCU_SHT_base_cmpmix)
-            CPPUNIT_TEST(split_st_RCU_SHT_member_cmp)
+            CPPUNIT_TEST( split_st_RCU_SHT_base_cmpmix_stat )
+            CPPUNIT_TEST( split_st_RCU_SHT_member_cmp )
             CPPUNIT_TEST(split_st_RCU_SHT_member_less)
             CPPUNIT_TEST(split_st_RCU_SHT_member_cmpmix)
+            CPPUNIT_TEST( split_st_RCU_SHT_member_cmpmix_stat )
 
             CPPUNIT_TEST(split_dyn_nogc_base_cmp)
             CPPUNIT_TEST(split_dyn_nogc_base_less)
             CPPUNIT_TEST(split_dyn_nogc_base_cmpmix)
-            CPPUNIT_TEST(split_dyn_nogc_member_cmp)
+            CPPUNIT_TEST( split_dyn_nogc_base_cmpmix_stat )
+            CPPUNIT_TEST( split_dyn_nogc_member_cmp )
             CPPUNIT_TEST(split_dyn_nogc_member_less)
             CPPUNIT_TEST(split_dyn_nogc_member_cmpmix)
-            CPPUNIT_TEST(split_st_nogc_base_cmp)
+            CPPUNIT_TEST( split_dyn_nogc_member_cmpmix_stat )
+            CPPUNIT_TEST( split_st_nogc_base_cmp )
             CPPUNIT_TEST(split_st_nogc_base_less)
             CPPUNIT_TEST(split_st_nogc_base_cmpmix)
-            CPPUNIT_TEST(split_st_nogc_member_cmp)
+            CPPUNIT_TEST( split_st_nogc_base_cmpmix_stat )
+            CPPUNIT_TEST( split_st_nogc_member_cmp )
             CPPUNIT_TEST(split_st_nogc_member_less)
             CPPUNIT_TEST(split_st_nogc_member_cmpmix)
-
+            CPPUNIT_TEST( split_st_nogc_member_cmpmix_stat )
 
             CPPUNIT_TEST(split_dyn_HP_base_cmp_lazy)
             CPPUNIT_TEST(split_dyn_HP_base_less_lazy)
             CPPUNIT_TEST(split_dyn_HP_base_cmpmix_lazy)
-            CPPUNIT_TEST(split_dyn_HP_member_cmp_lazy)
+            CPPUNIT_TEST( split_dyn_HP_base_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_dyn_HP_member_cmp_lazy )
             CPPUNIT_TEST(split_dyn_HP_member_less_lazy)
             CPPUNIT_TEST(split_dyn_HP_member_cmpmix_lazy)
-            CPPUNIT_TEST(split_st_HP_base_cmp_lazy)
+            CPPUNIT_TEST( split_dyn_HP_member_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_st_HP_base_cmp_lazy )
             CPPUNIT_TEST(split_st_HP_base_less_lazy)
             CPPUNIT_TEST(split_st_HP_base_cmpmix_lazy)
-            CPPUNIT_TEST(split_st_HP_member_cmp_lazy)
+            CPPUNIT_TEST( split_st_HP_base_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_st_HP_member_cmp_lazy )
             CPPUNIT_TEST(split_st_HP_member_less_lazy)
             CPPUNIT_TEST(split_st_HP_member_cmpmix_lazy)
-
-            CPPUNIT_TEST(split_dyn_PTB_base_cmp_lazy)
-            CPPUNIT_TEST(split_dyn_PTB_base_less_lazy)
-            CPPUNIT_TEST(split_dyn_PTB_base_cmpmix_lazy)
-            CPPUNIT_TEST(split_dyn_PTB_member_cmp_lazy)
-            CPPUNIT_TEST(split_dyn_PTB_member_less_lazy)
-            CPPUNIT_TEST(split_dyn_PTB_member_cmpmix_lazy)
-            CPPUNIT_TEST(split_st_PTB_base_cmp_lazy)
-            CPPUNIT_TEST(split_st_PTB_base_less_lazy)
-            CPPUNIT_TEST(split_st_PTB_base_cmpmix_lazy)
-            CPPUNIT_TEST(split_st_PTB_member_cmp_lazy)
-            CPPUNIT_TEST(split_st_PTB_member_less_lazy)
-            CPPUNIT_TEST(split_st_PTB_member_cmpmix_lazy)
+            CPPUNIT_TEST( split_st_HP_member_cmpmix_stat_lazy )
+
+            CPPUNIT_TEST(split_dyn_DHP_base_cmp_lazy)
+            CPPUNIT_TEST(split_dyn_DHP_base_less_lazy)
+            CPPUNIT_TEST(split_dyn_DHP_base_cmpmix_lazy)
+            CPPUNIT_TEST( split_dyn_DHP_base_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_dyn_DHP_member_cmp_lazy )
+            CPPUNIT_TEST(split_dyn_DHP_member_less_lazy)
+            CPPUNIT_TEST(split_dyn_DHP_member_cmpmix_lazy)
+            CPPUNIT_TEST( split_dyn_DHP_member_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_st_DHP_base_cmp_lazy )
+            CPPUNIT_TEST(split_st_DHP_base_less_lazy)
+            CPPUNIT_TEST(split_st_DHP_base_cmpmix_lazy)
+            CPPUNIT_TEST( split_st_DHP_base_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_st_DHP_member_cmp_lazy )
+            CPPUNIT_TEST(split_st_DHP_member_less_lazy)
+            CPPUNIT_TEST(split_st_DHP_member_cmpmix_lazy)
+            CPPUNIT_TEST( split_st_DHP_member_cmpmix_stat_lazy )
 
             CPPUNIT_TEST(split_dyn_RCU_GPI_base_cmp_lazy)
             CPPUNIT_TEST(split_dyn_RCU_GPI_base_less_lazy)
             CPPUNIT_TEST(split_dyn_RCU_GPI_base_cmpmix_lazy)
-            CPPUNIT_TEST(split_dyn_RCU_GPI_member_cmp_lazy)
+            CPPUNIT_TEST( split_dyn_RCU_GPI_base_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_dyn_RCU_GPI_member_cmp_lazy )
             CPPUNIT_TEST(split_dyn_RCU_GPI_member_less_lazy)
             CPPUNIT_TEST(split_dyn_RCU_GPI_member_cmpmix_lazy)
-            CPPUNIT_TEST(split_st_RCU_GPI_base_cmp_lazy)
+            CPPUNIT_TEST( split_dyn_RCU_GPI_member_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_st_RCU_GPI_base_cmp_lazy )
             CPPUNIT_TEST(split_st_RCU_GPI_base_less_lazy)
             CPPUNIT_TEST(split_st_RCU_GPI_base_cmpmix_lazy)
-            CPPUNIT_TEST(split_st_RCU_GPI_member_cmp_lazy)
+            CPPUNIT_TEST( split_st_RCU_GPI_base_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_st_RCU_GPI_member_cmp_lazy )
             CPPUNIT_TEST(split_st_RCU_GPI_member_less_lazy)
             CPPUNIT_TEST(split_st_RCU_GPI_member_cmpmix_lazy)
+            CPPUNIT_TEST( split_st_RCU_GPI_member_cmpmix_stat_lazy )
 
             CPPUNIT_TEST(split_dyn_RCU_GPB_base_cmp_lazy)
             CPPUNIT_TEST(split_dyn_RCU_GPB_base_less_lazy)
             CPPUNIT_TEST(split_dyn_RCU_GPB_base_cmpmix_lazy)
-            CPPUNIT_TEST(split_dyn_RCU_GPB_member_cmp_lazy)
+            CPPUNIT_TEST( split_dyn_RCU_GPB_base_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_dyn_RCU_GPB_member_cmp_lazy )
             CPPUNIT_TEST(split_dyn_RCU_GPB_member_less_lazy)
             CPPUNIT_TEST(split_dyn_RCU_GPB_member_cmpmix_lazy)
-            CPPUNIT_TEST(split_st_RCU_GPB_base_cmp_lazy)
+            CPPUNIT_TEST( split_dyn_RCU_GPB_member_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_st_RCU_GPB_base_cmp_lazy )
             CPPUNIT_TEST(split_st_RCU_GPB_base_less_lazy)
             CPPUNIT_TEST(split_st_RCU_GPB_base_cmpmix_lazy)
-            CPPUNIT_TEST(split_st_RCU_GPB_member_cmp_lazy)
+            CPPUNIT_TEST( split_st_RCU_GPB_base_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_st_RCU_GPB_member_cmp_lazy )
             CPPUNIT_TEST(split_st_RCU_GPB_member_less_lazy)
             CPPUNIT_TEST(split_st_RCU_GPB_member_cmpmix_lazy)
+            CPPUNIT_TEST( split_st_RCU_GPB_member_cmpmix_stat_lazy )
 
             CPPUNIT_TEST(split_dyn_RCU_GPT_base_cmp_lazy)
             CPPUNIT_TEST(split_dyn_RCU_GPT_base_less_lazy)
             CPPUNIT_TEST(split_dyn_RCU_GPT_base_cmpmix_lazy)
-            CPPUNIT_TEST(split_dyn_RCU_GPT_member_cmp_lazy)
+            CPPUNIT_TEST( split_dyn_RCU_GPT_base_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_dyn_RCU_GPT_member_cmp_lazy )
             CPPUNIT_TEST(split_dyn_RCU_GPT_member_less_lazy)
             CPPUNIT_TEST(split_dyn_RCU_GPT_member_cmpmix_lazy)
-            CPPUNIT_TEST(split_st_RCU_GPT_base_cmp_lazy)
+            CPPUNIT_TEST( split_dyn_RCU_GPT_member_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_st_RCU_GPT_base_cmp_lazy )
             CPPUNIT_TEST(split_st_RCU_GPT_base_less_lazy)
             CPPUNIT_TEST(split_st_RCU_GPT_base_cmpmix_lazy)
-            CPPUNIT_TEST(split_st_RCU_GPT_member_cmp_lazy)
+            CPPUNIT_TEST( split_st_RCU_GPT_base_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_st_RCU_GPT_member_cmp_lazy )
             CPPUNIT_TEST(split_st_RCU_GPT_member_less_lazy)
             CPPUNIT_TEST(split_st_RCU_GPT_member_cmpmix_lazy)
+            CPPUNIT_TEST( split_st_RCU_GPT_member_cmpmix_stat_lazy )
 
             CPPUNIT_TEST(split_dyn_RCU_SHB_base_cmp_lazy)
             CPPUNIT_TEST(split_dyn_RCU_SHB_base_less_lazy)
             CPPUNIT_TEST(split_dyn_RCU_SHB_base_cmpmix_lazy)
-            CPPUNIT_TEST(split_dyn_RCU_SHB_member_cmp_lazy)
+            CPPUNIT_TEST( split_dyn_RCU_SHB_base_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_dyn_RCU_SHB_member_cmp_lazy )
             CPPUNIT_TEST(split_dyn_RCU_SHB_member_less_lazy)
             CPPUNIT_TEST(split_dyn_RCU_SHB_member_cmpmix_lazy)
-            CPPUNIT_TEST(split_st_RCU_SHB_base_cmp_lazy)
+            CPPUNIT_TEST( split_dyn_RCU_SHB_member_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_st_RCU_SHB_base_cmp_lazy )
             CPPUNIT_TEST(split_st_RCU_SHB_base_less_lazy)
             CPPUNIT_TEST(split_st_RCU_SHB_base_cmpmix_lazy)
-            CPPUNIT_TEST(split_st_RCU_SHB_member_cmp_lazy)
+            CPPUNIT_TEST( split_st_RCU_SHB_base_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_st_RCU_SHB_member_cmp_lazy )
             CPPUNIT_TEST(split_st_RCU_SHB_member_less_lazy)
             CPPUNIT_TEST(split_st_RCU_SHB_member_cmpmix_lazy)
+            CPPUNIT_TEST( split_st_RCU_SHB_member_cmpmix_stat_lazy )
 
             CPPUNIT_TEST(split_dyn_RCU_SHT_base_cmp_lazy)
             CPPUNIT_TEST(split_dyn_RCU_SHT_base_less_lazy)
             CPPUNIT_TEST(split_dyn_RCU_SHT_base_cmpmix_lazy)
-            CPPUNIT_TEST(split_dyn_RCU_SHT_member_cmp_lazy)
+            CPPUNIT_TEST( split_dyn_RCU_SHT_base_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_dyn_RCU_SHT_member_cmp_lazy )
             CPPUNIT_TEST(split_dyn_RCU_SHT_member_less_lazy)
             CPPUNIT_TEST(split_dyn_RCU_SHT_member_cmpmix_lazy)
-            CPPUNIT_TEST(split_st_RCU_SHT_base_cmp_lazy)
+            CPPUNIT_TEST( split_dyn_RCU_SHT_member_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_st_RCU_SHT_base_cmp_lazy )
             CPPUNIT_TEST(split_st_RCU_SHT_base_less_lazy)
             CPPUNIT_TEST(split_st_RCU_SHT_base_cmpmix_lazy)
-            CPPUNIT_TEST(split_st_RCU_SHT_member_cmp_lazy)
+            CPPUNIT_TEST( split_st_RCU_SHT_base_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_st_RCU_SHT_member_cmp_lazy )
             CPPUNIT_TEST(split_st_RCU_SHT_member_less_lazy)
             CPPUNIT_TEST(split_st_RCU_SHT_member_cmpmix_lazy)
+            CPPUNIT_TEST( split_st_RCU_SHT_member_cmpmix_stat_lazy )
 
             CPPUNIT_TEST(split_dyn_nogc_base_cmp_lazy)
             CPPUNIT_TEST(split_dyn_nogc_base_less_lazy)
             CPPUNIT_TEST(split_dyn_nogc_base_cmpmix_lazy)
-            CPPUNIT_TEST(split_dyn_nogc_member_cmp_lazy)
+            CPPUNIT_TEST( split_dyn_nogc_base_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_dyn_nogc_member_cmp_lazy )
             CPPUNIT_TEST(split_dyn_nogc_member_less_lazy)
             CPPUNIT_TEST(split_dyn_nogc_member_cmpmix_lazy)
-            CPPUNIT_TEST(split_st_nogc_base_cmp_lazy)
+            CPPUNIT_TEST( split_dyn_nogc_member_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_st_nogc_base_cmp_lazy )
             CPPUNIT_TEST(split_st_nogc_base_less_lazy)
             CPPUNIT_TEST(split_st_nogc_base_cmpmix_lazy)
-            CPPUNIT_TEST(split_st_nogc_member_cmp_lazy)
+            CPPUNIT_TEST( split_st_nogc_base_cmpmix_stat_lazy )
+            CPPUNIT_TEST( split_st_nogc_member_cmp_lazy )
             CPPUNIT_TEST(split_st_nogc_member_less_lazy)
             CPPUNIT_TEST(split_st_nogc_member_cmpmix_lazy)
-
+            CPPUNIT_TEST( split_st_nogc_member_cmpmix_stat_lazy )
         CPPUNIT_TEST_SUITE_END()
 
     };
 
 }   // namespace set
+
+#endif // #ifndef CDSTEST_HDR_INTRUSIVE_SET_H
\ No newline at end of file