Merged branch 'master' of https://github.com/Nemo1369/libcds
[libcds.git] / test / unit / queue / test_intrusive_segmented_queue.h
index 82cab56f8fee7a6a23db9cdbc82263940f65dab2..cea21511c079b70559efaaaf77598fedd91de719 100644 (file)
@@ -1,11 +1,11 @@
 /*
     This file is a part of libcds - Concurrent Data Structures library
 
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
+    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2017
 
     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:
 
     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_QUEUE_TEST_INTRUSIVE_SEGMENTED_QUEUE_H
 #define CDSUNIT_QUEUE_TEST_INTRUSIVE_SEGMENTED_QUEUE_H
 
 #include <cds_test/check_size.h>
-\r
-namespace cds_test {\r
-\r
-    class intrusive_segmented_queue : public ::testing::Test\r
-    {\r
-    protected:\r
+
+namespace cds_test {
+
+    class intrusive_segmented_queue : public ::testing::Test
+    {
+    protected:
         struct item {
             int  nValue;
 
@@ -84,34 +84,34 @@ namespace cds_test {
                 ++p->nDispose2Count;
             }
         };
-\r
-        template <typename Queue, typename Data>\r
-        void test( Queue& q, Data& val )\r
-        {\r
-            typedef typename Queue::value_type value_type;\r
-            val.resize( 100 );\r
+
+        template <typename Queue, typename Data>
+        void test( Queue& q, Data& val )
+        {
+            typedef typename Queue::value_type value_type;
+            val.resize( 100 );
             for ( size_t i = 0; i < val.size(); ++i )
                 val[i].nValue = static_cast<int>( i );
-\r
-            ASSERT_TRUE( q.empty());\r
-            ASSERT_CONTAINER_SIZE( q, 0 );\r
-\r
+
+            ASSERT_TRUE( q.empty());
+            ASSERT_CONTAINER_SIZE( q, 0u );
+
             // push/enqueue
             for ( size_t i = 0; i < val.size(); ++i ) {
                 if ( i & 1 ) {
-                    ASSERT_TRUE( q.push( val[i] ) );
+                    ASSERT_TRUE( q.push( val[i] ));
                 }
                 else {
-                    ASSERT_TRUE( q.enqueue( val[i] ) );
+                    ASSERT_TRUE( q.enqueue( val[i] ));
                 }
 
                 ASSERT_CONTAINER_SIZE( q, i + 1 );
             }
-            EXPECT_TRUE( !q.empty() );
+            EXPECT_TRUE( !q.empty());
 
             // pop/dequeue
             size_t nCount = 0;
-            while ( !q.empty() ) {
+            while ( !q.empty()) {
                 value_type * pVal;
                 if ( nCount & 1 )
                     pVal = q.pop();
@@ -120,72 +120,72 @@ namespace cds_test {
 
                 ASSERT_TRUE( pVal != nullptr );
 
-                int nSegment = int( nCount / q.quasi_factor() );
-                int nMin = nSegment * int( q.quasi_factor() );
-                int nMax = nMin + int( q.quasi_factor() ) - 1;
+                int nSegment = int( nCount / q.quasi_factor());
+                int nMin = nSegment * int( q.quasi_factor());
+                int nMax = nMin + int( q.quasi_factor()) - 1;
                 EXPECT_TRUE( nMin <= pVal->nValue && pVal->nValue <= nMax ) << nMin << " <= " << pVal->nValue << " <= " << nMax;
 
                 ++nCount;
                 EXPECT_CONTAINER_SIZE( q, val.size() - nCount );
             }
             EXPECT_EQ( nCount, val.size());
-            EXPECT_TRUE( q.empty() );
-            EXPECT_CONTAINER_SIZE( q, 0 );
-\r
+            EXPECT_TRUE( q.empty());
+            EXPECT_CONTAINER_SIZE( q, 0u );
+
             // pop from empty queue
             ASSERT_TRUE( q.pop() == nullptr );
-            EXPECT_TRUE( q.empty() );
-            EXPECT_CONTAINER_SIZE( q, 0 );
+            EXPECT_TRUE( q.empty());
+            EXPECT_CONTAINER_SIZE( q, 0u );
 
             // check that Disposer has not been called
             Queue::gc::force_dispose();
             for ( size_t i = 0; i < val.size(); ++i ) {
-                EXPECT_EQ( val[i].nDisposeCount, 0 );
-                EXPECT_EQ( val[i].nDispose2Count, 0 );
+                EXPECT_EQ( val[i].nDisposeCount, 0u );
+                EXPECT_EQ( val[i].nDispose2Count, 0u );
             }
-\r
+
             // clear
             for ( size_t i = 0; i < val.size(); ++i )
-                EXPECT_TRUE( q.push( val[i] ) );
+                EXPECT_TRUE( q.push( val[i] ));
             EXPECT_CONTAINER_SIZE( q, val.size());
-            EXPECT_TRUE( !q.empty() );
+            EXPECT_TRUE( !q.empty());
 
             q.clear();
-            EXPECT_CONTAINER_SIZE( q, 0 );
-            EXPECT_TRUE( q.empty() );
+            EXPECT_CONTAINER_SIZE( q, 0u );
+            EXPECT_TRUE( q.empty());
 
             // check if Disposer has been called
             Queue::gc::force_dispose();
             for ( size_t i = 0; i < val.size(); ++i ) {
-                EXPECT_EQ( val[i].nDisposeCount, 1 );
-                EXPECT_EQ( val[i].nDispose2Count, 0 );
+                EXPECT_EQ( val[i].nDisposeCount, 1u );
+                EXPECT_EQ( val[i].nDispose2Count, 0u );
             }
 
             // clear_with
             for ( size_t i = 0; i < val.size(); ++i )
-                EXPECT_TRUE( q.push( val[i] ) );
-            EXPECT_CONTAINER_SIZE( q, val.size() );
-            EXPECT_TRUE( !q.empty() );
+                EXPECT_TRUE( q.push( val[i] ));
+            EXPECT_CONTAINER_SIZE( q, val.size());
+            EXPECT_TRUE( !q.empty());
 
-            q.clear_with( Disposer2() );
-            EXPECT_CONTAINER_SIZE( q, 0 );
-            EXPECT_TRUE( q.empty() );
+            q.clear_with( Disposer2());
+            EXPECT_CONTAINER_SIZE( q, 0u );
+            EXPECT_TRUE( q.empty());
 
             // check if Disposer has been called
             Queue::gc::force_dispose();
             for ( size_t i = 0; i < val.size(); ++i ) {
-                EXPECT_EQ( val[i].nDisposeCount, 1 );
-                EXPECT_EQ( val[i].nDispose2Count, 1 );
-            }\r
-\r
+                EXPECT_EQ( val[i].nDisposeCount, 1u );
+                EXPECT_EQ( val[i].nDispose2Count, 1u );
+            }
+
             // check clear on destruct
             for ( size_t i = 0; i < val.size(); ++i )
                 EXPECT_TRUE( q.push( val[i] ));
             EXPECT_CONTAINER_SIZE( q, val.size());
-            EXPECT_TRUE( !q.empty());\r
-        }\r
-    };\r
-\r
-} // namespace cds_test\r
-\r
-#endif // CDSUNIT_QUEUE_TEST_INTRUSIVE_SEGMENTED_QUEUE_H\r
+            EXPECT_TRUE( !q.empty());
+        }
+    };
+
+} // namespace cds_test
+
+#endif // CDSUNIT_QUEUE_TEST_INTRUSIVE_SEGMENTED_QUEUE_H