X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2Funit%2Ftree%2Ftest_intrusive_tree_hp.h;h=1a1325afe8d2a111224a2e26da4c78857a169fad;hb=46d9829c1e2543773c743957866679f97823ffc1;hp=8a5835d1ee945f2dffe7385838fa6bf95ed0fb64;hpb=db3232385353242bd0298ead219c3918a1f2c5a5;p=libcds.git diff --git a/test/unit/tree/test_intrusive_tree_hp.h b/test/unit/tree/test_intrusive_tree_hp.h index 8a5835d1..1a1325af 100644 --- a/test/unit/tree/test_intrusive_tree_hp.h +++ b/test/unit/tree/test_intrusive_tree_hp.h @@ -5,7 +5,7 @@ Source code repo: http://github.com/khizmax/libcds/ Download: http://sourceforge.net/projects/libcds/files/ - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -25,7 +25,7 @@ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef CDSUNIT_TREE_TEST_INTRUSIVE_TREE_HP_H @@ -54,7 +54,7 @@ namespace cds_test { base_class::test( t ); - ASSERT_TRUE( t.empty() ); + ASSERT_TRUE( t.empty()); ASSERT_CONTAINER_SIZE( t, 0 ); typedef typename Tree::value_type value_type; @@ -64,10 +64,10 @@ namespace cds_test { data.reserve( kSize ); indices.reserve( kSize ); for ( size_t key = 0; key < kSize; ++key ) { - data.push_back( value_type( static_cast(key) ) ); + data.push_back( value_type( static_cast(key))); indices.push_back( key ); } - shuffle( indices.begin(), indices.end() ); + shuffle( indices.begin(), indices.end()); typename Tree::guarded_ptr gp; @@ -77,7 +77,7 @@ namespace cds_test { gp = t.get( i ); ASSERT_TRUE( !gp ); - gp = t.get( i.key() ); + gp = t.get( i.key()); ASSERT_TRUE( !gp ); gp = t.get_with( other_item( i.key()), other_less()); ASSERT_TRUE( !gp ); @@ -96,32 +96,33 @@ namespace cds_test { } // fill tree - for ( auto& i : data ) { + for ( auto idx : indices ) { + auto& i = data[idx]; i.nDisposeCount = 0; - ASSERT_TRUE( t.insert( i ) ); + ASSERT_TRUE( t.insert( i )); } // get/extract for ( auto idx : indices ) { auto& i = data[idx]; - EXPECT_EQ( i.nFindCount, 0 ); + EXPECT_EQ( i.nFindCount, 0u ); gp = t.get( i ); ASSERT_FALSE( !gp ); ++gp->nFindCount; - EXPECT_EQ( i.nFindCount, 1 ); + EXPECT_EQ( i.nFindCount, 1u ); - gp = t.get( i.key() ); + gp = t.get( i.key()); ASSERT_FALSE( !gp ); ++gp->nFindCount; - EXPECT_EQ( i.nFindCount, 2 ); + EXPECT_EQ( i.nFindCount, 2u ); gp = t.get_with( other_item( i.key()), other_less()); ASSERT_FALSE( !gp ); ++gp->nFindCount; - EXPECT_EQ( i.nFindCount, 3 ); + EXPECT_EQ( i.nFindCount, 3u ); - EXPECT_EQ( i.nEraseCount, 0 ); + EXPECT_EQ( i.nEraseCount, 0u ); switch ( i.key() % 3 ) { case 0: gp = t.extract( i.key()); @@ -130,41 +131,42 @@ namespace cds_test { gp = t.extract( i ); break; case 2: - gp = t.extract_with( other_item( i.key() ), other_less() ); + gp = t.extract_with( other_item( i.key()), other_less()); break; } ASSERT_FALSE( !gp ); ++gp->nEraseCount; - EXPECT_EQ( i.nEraseCount, 1 ); + EXPECT_EQ( i.nEraseCount, 1u ); gp = t.extract( i ); ASSERT_TRUE( !gp ); - gp = t.extract( i.key() ); + gp = t.extract( i.key()); ASSERT_TRUE( !gp ); - gp = t.extract_with( other_item( i.key() ), other_less() ); + gp = t.extract_with( other_item( i.key()), other_less()); ASSERT_TRUE( !gp ); } gp.release(); - ASSERT_TRUE( t.empty() ); - ASSERT_CONTAINER_SIZE( t, 0 ); + ASSERT_TRUE( t.empty()); + ASSERT_CONTAINER_SIZE( t, 0u ); // Force retiring cycle Tree::gc::force_dispose(); for ( auto& i : data ) { - EXPECT_EQ( i.nDisposeCount, 1 ); + EXPECT_EQ( i.nDisposeCount, 1u ); } // extract_min - for ( auto& i : data ) { + for ( auto idx : indices ) { + auto& i = data[idx]; i.nDisposeCount = 0; - ASSERT_TRUE( t.insert( i ) ); + ASSERT_TRUE( t.insert( i )); } size_t nCount = 0; int nKey = -1; - while ( !t.empty() ) { + while ( !t.empty()) { gp = t.extract_min(); ASSERT_FALSE( !gp ); EXPECT_EQ( gp->key(), nKey + 1 ); @@ -172,25 +174,26 @@ namespace cds_test { nKey = gp->key(); } gp.release(); - ASSERT_TRUE( t.empty() ); - ASSERT_CONTAINER_SIZE( t, 0 ); - EXPECT_EQ( nCount, data.size() ); + ASSERT_TRUE( t.empty()); + ASSERT_CONTAINER_SIZE( t, 0u ); + EXPECT_EQ( nCount, data.size()); // Force retiring cycle Tree::gc::force_dispose(); for ( auto& i : data ) { - EXPECT_EQ( i.nDisposeCount, 1 ); + EXPECT_EQ( i.nDisposeCount, 1u ); } // extract_max - for ( auto& i : data ) { + for ( auto idx : indices ) { + auto& i = data[idx]; i.nDisposeCount = 0; - ASSERT_TRUE( t.insert( i ) ); + ASSERT_TRUE( t.insert( i )); } nCount = 0; nKey = static_cast( data.size()); - while ( !t.empty() ) { + while ( !t.empty()) { gp = t.extract_max(); ASSERT_FALSE( !gp ); EXPECT_EQ( gp->key(), nKey - 1 ); @@ -198,14 +201,14 @@ namespace cds_test { nKey = gp->key(); } gp.release(); - ASSERT_TRUE( t.empty() ); - ASSERT_CONTAINER_SIZE( t, 0 ); - EXPECT_EQ( nCount, data.size() ); + ASSERT_TRUE( t.empty()); + ASSERT_CONTAINER_SIZE( t, 0u ); + EXPECT_EQ( nCount, data.size()); // Force retiring cycle Tree::gc::force_dispose(); for ( auto& i : data ) { - EXPECT_EQ( i.nDisposeCount, 1 ); + EXPECT_EQ( i.nDisposeCount, 1u ); } }