summaryrefslogtreecommitdiff
path: root/libs/fusion/test/sequence/back_extended_deque.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/fusion/test/sequence/back_extended_deque.cpp')
-rw-r--r--libs/fusion/test/sequence/back_extended_deque.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/libs/fusion/test/sequence/back_extended_deque.cpp b/libs/fusion/test/sequence/back_extended_deque.cpp
index edae9276c..368ec0c26 100644
--- a/libs/fusion/test/sequence/back_extended_deque.cpp
+++ b/libs/fusion/test/sequence/back_extended_deque.cpp
@@ -24,6 +24,45 @@ int main()
{
using namespace boost::fusion;
{
+ typedef deque<> initial_deque_type;
+ initial_deque_type initial_deque;
+ typedef back_extended_deque<initial_deque_type, long> extended_type;
+ extended_type extended(initial_deque, 101L);
+
+ BOOST_TEST(size(extended) == 1);
+ BOOST_TEST(extended == make_vector(101L));
+ BOOST_TEST(*begin(extended) == 101L);
+ BOOST_TEST(*prior(end(extended)) == 101L);
+ BOOST_TEST(distance(begin(extended), end(extended)) == 1);
+ }
+ {
+ namespace mpl = boost::mpl;
+ typedef deque<> initial_deque_type;
+ typedef back_extended_deque<initial_deque_type, long> extended_type;
+
+ BOOST_MPL_ASSERT((boost::is_same<mpl::at_c<extended_type, 0>::type, long>));
+ BOOST_MPL_ASSERT((boost::is_same<mpl::deref<mpl::begin<extended_type>::type>::type, long>));
+ BOOST_MPL_ASSERT((mpl::equal_to<mpl::size<extended_type>::type, mpl::int_<1> >));
+ }
+ {
+ long l(101L);
+ typedef deque<> initial_deque_type;
+ initial_deque_type initial_deque;
+ typedef back_extended_deque<initial_deque_type, long&> extended_type;
+ extended_type extended(initial_deque, l);
+ BOOST_TEST(extended == make_vector(101L));
+
+ long l2(202L);
+ extended_type extended2(initial_deque_type(), l2);
+
+ extended = extended2;
+
+ BOOST_TEST(extended == make_vector(202L));
+
+ BOOST_TEST(l == l2);
+ }
+
+ {
typedef deque<int, char> initial_deque_type;
initial_deque_type initial_deque(1, 'a');
typedef back_extended_deque<initial_deque_type, long> extended_type;