]> git.llucax.com Git - software/posixx.git/blobdiff - test/buffer.cpp
Add Boost License
[software/posixx.git] / test / buffer.cpp
index f455ea51ee1dd8623d17927f51da98149dfdda8f..f8c1d1a7580ec5ef6ad00d7f4a19ffda7045d4a4 100644 (file)
@@ -1,3 +1,9 @@
+// Copyright Leandro Lucarella 2008 - 2010.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file COPYING or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+
 
 #include <posixx/buffer.hpp> // buffer
 #include <ostream> // std::ostream
@@ -23,6 +29,8 @@ std::ostream& operator << (std::ostream& os, const posixx::buffer& b)
 BOOST_TEST_DONT_PRINT_LOG_VALUE( buffer ) // FIXME
 BOOST_TEST_DONT_PRINT_LOG_VALUE( buffer::iterator )
 BOOST_TEST_DONT_PRINT_LOG_VALUE( buffer::const_iterator )
+BOOST_TEST_DONT_PRINT_LOG_VALUE( buffer::reverse_iterator )
+BOOST_TEST_DONT_PRINT_LOG_VALUE( buffer::const_reverse_iterator )
 
 // avoid compilation warning concerning unused variables
 void dummy(buffer::const_iterator i) {}
@@ -38,7 +46,8 @@ BOOST_AUTO_TEST_CASE( types_test )
        BOOST_CHECK_EQUAL(v, 2);
        buffer::const_reference cr = v;
        BOOST_CHECK_EQUAL(cr, 2);
-       buffer::iterator i;
+       buffer b;
+       buffer::iterator i = b.end();
        buffer::const_iterator ci = i;
        dummy(ci);
        buffer::size_type s = 5;
@@ -241,6 +250,37 @@ BOOST_AUTO_TEST_CASE( iterators_test )
        BOOST_CHECK_EQUAL(*(b.begin() + 1), 77);
 }
 
+BOOST_AUTO_TEST_CASE( reverse_iterators_test )
+{
+       buffer::value_type a[] = { 56, 123, 253 };
+       buffer b(a, a + 3);
+       BOOST_CHECK_NE(b.rbegin(), b.rend());
+       BOOST_CHECK_LT(b.rbegin(), b.rend());
+       buffer::reverse_iterator i = b.rbegin();
+       BOOST_CHECK_EQUAL(*i, 253);
+       i++;
+       BOOST_CHECK_EQUAL(*i, 123);
+       ++i;
+       BOOST_CHECK_EQUAL(*i, 56);
+       i += 1;
+       BOOST_CHECK_EQUAL(i, b.rend());
+       i--;
+       BOOST_CHECK_EQUAL(*i, 56);
+       --i;
+       BOOST_CHECK_EQUAL(*i, 123);
+       i -= 1;
+       BOOST_CHECK_EQUAL(*i, 253);
+       i++;
+       BOOST_CHECK_EQUAL(*(i + 1), 56);
+       BOOST_CHECK_EQUAL(*(i - 1), 253);
+       BOOST_CHECK_EQUAL(i - 1, b.rbegin());
+       BOOST_CHECK_EQUAL(i + 2, b.rend());
+       BOOST_CHECK_EQUAL(i - b.rbegin(), 1);
+       *i = 77;
+       BOOST_CHECK_EQUAL(*i, 77);
+       BOOST_CHECK_EQUAL(*(b.rbegin() + 1), 77);
+}
+
 BOOST_AUTO_TEST_CASE( resize_test )
 {
        buffer b;