+// 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
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) {}
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;
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;