/*
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_BOUNDED_QUEUE_H
#define CDSUNIT_QUEUE_TEST_BOUNDED_QUEUE_H
#include <cds_test/check_size.h>
-\r
-namespace cds_test {\r
-\r
- class bounded_queue : public ::testing::Test\r
- {\r
- protected:\r
- template <typename Queue>\r
- void test( Queue& q )\r
- {\r
+
+namespace cds_test {
+
+ class bounded_queue : public ::testing::Test
+ {
+ protected:
+ template <typename Queue>
+ void test( Queue& q )
+ {
typedef typename Queue::value_type value_type;
value_type it;
const size_t nSize = q.capacity();
- ASSERT_TRUE( q.empty() );
+ ASSERT_TRUE( q.empty());
ASSERT_CONTAINER_SIZE( q, 0 );
// enqueue/dequeue
ASSERT_TRUE( q.enqueue( it ));
ASSERT_CONTAINER_SIZE( q, i + 1 );
}
- ASSERT_FALSE( q.empty() );
+ ASSERT_FALSE( q.empty());
ASSERT_CONTAINER_SIZE( q, nSize );
for ( size_t i = 0; i < nSize; ++i ) {
it = -1;
- ASSERT_TRUE( q.dequeue( it ) );
- ASSERT_EQ( it, i );
+ ASSERT_TRUE( q.dequeue( it ));
+ ASSERT_EQ( it, static_cast<value_type>( i ));
ASSERT_CONTAINER_SIZE( q, nSize - i - 1 );
}
- ASSERT_TRUE( q.empty() );
+ ASSERT_TRUE( q.empty());
ASSERT_CONTAINER_SIZE( q, 0 );
// push/pop
ASSERT_TRUE( q.push( it ));
ASSERT_CONTAINER_SIZE( q, i + 1 );
}
- ASSERT_FALSE( q.empty() );
+ ASSERT_FALSE( q.empty());
ASSERT_CONTAINER_SIZE( q, nSize );
for ( size_t i = 0; i < nSize; ++i ) {
it = -1;
- ASSERT_TRUE( q.pop( it ) );
- ASSERT_EQ( it, i );
+ ASSERT_TRUE( q.pop( it ));
+ ASSERT_EQ( it, static_cast<value_type>( i ));
ASSERT_CONTAINER_SIZE( q, nSize - i - 1 );
}
- ASSERT_TRUE( q.empty() );
+ ASSERT_TRUE( q.empty());
ASSERT_CONTAINER_SIZE( q, 0 );
// push/pop with lambda
ASSERT_EQ( it, -1 );
ASSERT_CONTAINER_SIZE( q, i + 1 );
}
- ASSERT_FALSE( q.empty() );
+ ASSERT_FALSE( q.empty());
ASSERT_CONTAINER_SIZE( q, nSize );
for ( size_t i = 0; i < nSize; ++i ) {
ASSERT_TRUE( q.pop_with( f ));
else
ASSERT_TRUE( q.dequeue_with( f ));
- ASSERT_EQ( it, i );
+ ASSERT_EQ( it, static_cast<value_type>( i ));
ASSERT_CONTAINER_SIZE( q, nSize - i - 1 );
}
- ASSERT_TRUE( q.empty() );
- ASSERT_CONTAINER_SIZE( q, 0 );
+ ASSERT_TRUE( q.empty());
+ ASSERT_CONTAINER_SIZE( q, 0u );
for ( size_t i = 0; i < nSize; ++i ) {
- ASSERT_TRUE( q.push( static_cast<value_type>(i) ) );
+ ASSERT_TRUE( q.push( static_cast<value_type>(i)));
}
- ASSERT_FALSE( q.empty() );
+ ASSERT_FALSE( q.empty());
ASSERT_CONTAINER_SIZE( q, nSize );
// push in full queue
ASSERT_FALSE( q.push( static_cast<int>(nSize * 2 )));
- ASSERT_FALSE( q.empty() );
+ ASSERT_FALSE( q.empty());
ASSERT_CONTAINER_SIZE( q, nSize );
it = static_cast<int>( nSize * 2 );
ASSERT_FALSE( q.enqueue( it ));
- ASSERT_FALSE( q.empty() );
+ ASSERT_FALSE( q.empty());
ASSERT_CONTAINER_SIZE( q, nSize );
// clear
q.clear();
- ASSERT_TRUE( q.empty() );
- ASSERT_CONTAINER_SIZE( q, 0 );
+ ASSERT_TRUE( q.empty());
+ ASSERT_CONTAINER_SIZE( q, 0u );
// pop from empty queue
it = static_cast<int>(nSize * 2);
- ASSERT_FALSE( q.pop( it ) );
- ASSERT_EQ( it, nSize * 2 );
- ASSERT_TRUE( q.empty() );
- ASSERT_CONTAINER_SIZE( q, 0 );
+ ASSERT_FALSE( q.pop( it ));
+ ASSERT_EQ( it, static_cast<value_type>( nSize * 2 ));
+ ASSERT_TRUE( q.empty());
+ ASSERT_CONTAINER_SIZE( q, 0u );
+
+ ASSERT_FALSE( q.dequeue( it ));
+ ASSERT_EQ( it, static_cast<value_type>( nSize * 2 ));
+ ASSERT_TRUE( q.empty());
+ ASSERT_CONTAINER_SIZE( q, 0u );
+ }
- ASSERT_FALSE( q.dequeue( it ) );
- ASSERT_EQ( it, nSize * 2 );
- ASSERT_TRUE( q.empty() );
- ASSERT_CONTAINER_SIZE( q, 0 );
- }\r
-\r
template <class Queue>
void test_string( Queue& q )
{
ASSERT_TRUE( q.emplace( str[i].c_str()));
ASSERT_CONTAINER_SIZE( q, i + 1 );
}
- ASSERT_FALSE( q.empty() );
+ ASSERT_FALSE( q.empty());
ASSERT_CONTAINER_SIZE( q, nSize );
{
std::string s;
auto f = [&s]( std::string& src ) {
- ASSERT_FALSE( src.empty() );
+ ASSERT_FALSE( src.empty());
s = std::move( src );
ASSERT_NE( s, src );
};
ASSERT_EQ( s, str[i] );
}
}
- ASSERT_TRUE( q.empty() );
+ ASSERT_TRUE( q.empty());
ASSERT_CONTAINER_SIZE( q, 0 );
ASSERT_TRUE( q.enqueue( std::move( s )));
else
ASSERT_TRUE( q.push( std::move( s )));
- ASSERT_TRUE( s.empty() );
+ ASSERT_TRUE( s.empty());
ASSERT_CONTAINER_SIZE( q, i + 1 );
}
- ASSERT_FALSE( q.empty() );
+ ASSERT_FALSE( q.empty());
ASSERT_CONTAINER_SIZE( q, nSize );
for ( size_t i = 0; i < nSize; ++i ) {
std::string s;
- ASSERT_TRUE( q.pop( s ) );
+ ASSERT_TRUE( q.pop( s ));
ASSERT_CONTAINER_SIZE( q, nSize - i - 1 );
ASSERT_EQ( s, str[i] );
}
- ASSERT_TRUE( q.empty() );
+ ASSERT_TRUE( q.empty());
ASSERT_CONTAINER_SIZE( q, 0 );
}
-\r
- };\r
-\r
-} // namespace cds_test\r
-\r
-#endif // CDSUNIT_QUEUE_TEST_BOUNDED_QUEUE_H\r
+
+ };
+
+} // namespace cds_test
+
+#endif // CDSUNIT_QUEUE_TEST_BOUNDED_QUEUE_H