Update of /cvsroot/boost/boost/libs/bimap/test
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv3463/test

Modified Files:
        Jamfile.v2 test_bimap_extra.cpp test_bimap_lambda.cpp 
Added Files:
        test_bimap_mutable.cpp 
Log Message:
add mutable tests

--- NEW FILE: test_bimap_mutable.cpp ---
  // Boost.Bimap
//
// Copyright (c) 2006-2007 Matias Capeletto
//
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)

//  VC++ 8.0 warns on usage of certain Standard Library and API functions that
//  can be cause buffer overruns or other possible security issues if misused.
//  See http://msdn.microsoft.com/msdnmag/issues/05/05/SafeCandC/default.aspx
//  But the wording of the warning is misleading and unsettling, there are no
//  portable alternative functions, and VC++ 8.0's own libraries use the
//  functions in question. So turn off the warnings.
#define _CRT_SECURE_NO_DEPRECATE
#define _SCL_SECURE_NO_DEPRECATE

#include <boost/config.hpp>

// Boost.Test
#include <boost/test/minimal.hpp>

// Boost.Bimap
#include <boost/bimap/bimap.hpp>
#include <boost/bimap/list_of.hpp>
#include <boost/bimap/vector_of.hpp>
#include <boost/bimap/unconstrained_set_of.hpp>

using namespace boost::bimaps;

template< class BimapType >
void test_bimap_mutable()
{
    typedef BimapType bm_type;

    bm_type bm;
    bm.insert( BOOST_DEDUCED_TYPENAME bm_type::value_type(1,0.1) );

    const bm_type & cbm = bm;

    // Map Mutable Iterator test
    {

    BOOST_DEDUCED_TYPENAME bm_type::left_iterator iter = bm.left.begin();
    iter->second = 0.2;
    BOOST_CHECK( iter->second == bm.left.begin()->second );

    BOOST_DEDUCED_TYPENAME bm_type::left_const_iterator citer = bm.left.begin();
    BOOST_CHECK( citer->second == bm.left.begin()->second );

    BOOST_DEDUCED_TYPENAME bm_type::left_const_iterator cciter = 
cbm.left.begin();
    BOOST_CHECK( cciter->second == cbm.left.begin()->second );

    }

    // Set Mutable Iterator test
    {

    BOOST_DEDUCED_TYPENAME bm_type::iterator iter = bm.begin();
    iter->right = 0.1;
    BOOST_CHECK( iter->right == bm.begin()->right );

    BOOST_DEDUCED_TYPENAME bm_type::const_iterator citer = bm.begin();
    BOOST_CHECK( citer->right == bm.begin()->right );

    BOOST_DEDUCED_TYPENAME bm_type::const_iterator cciter = cbm.begin();
    BOOST_CHECK( cciter->left == cbm.begin()->left );

    }

    // Map Assignable Reference test
    {

    BOOST_DEDUCED_TYPENAME bm_type::left_reference r = *bm.left.begin();
    r.second = 0.2;
    BOOST_CHECK( r == *bm.left.begin() );

    BOOST_DEDUCED_TYPENAME bm_type::left_const_reference cr = *bm.left.begin();
    BOOST_CHECK( cr == *bm.left.begin() );

    BOOST_DEDUCED_TYPENAME bm_type::left_const_reference ccr = 
*cbm.left.begin();
    BOOST_CHECK( ccr == *cbm.left.begin() );

    }

    // Set Assignable Reference test
    {

    BOOST_DEDUCED_TYPENAME bm_type::reference r = *bm.begin();
    r.right = 0.1;
    BOOST_CHECK( r == *bm.begin() );

    BOOST_DEDUCED_TYPENAME bm_type::const_reference cr = *bm.begin();
    BOOST_CHECK( cr == *bm.begin() );

    BOOST_DEDUCED_TYPENAME bm_type::const_reference ccr = *cbm.begin();
    BOOST_CHECK( ccr == *bm.begin() );

    }
}

int test_main( int, char* [] )
{
    test_bimap_mutable< bimap< int, list_of<double> > >();
    test_bimap_mutable< bimap< int, vector_of<double> > >();
    test_bimap_mutable< bimap< int, unconstrained_set_of<double> > >();
    return 0;
}


Index: Jamfile.v2
===================================================================
RCS file: /cvsroot/boost/boost/libs/bimap/test/Jamfile.v2,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- Jamfile.v2  25 May 2007 01:07:11 -0000      1.1
+++ Jamfile.v2  26 May 2007 02:53:14 -0000      1.2
@@ -56,8 +56,10 @@
     [ run test_bimap_assign.cpp                                               ]
     [ run test_bimap_property_map.cpp                                         ]
     [ run test_bimap_modify.cpp                                               ]
+    [ run test_bimap_range.cpp                                                ]
     [ run test_bimap_operator_bracket.cpp                                     ]
     [ run test_bimap_lambda.cpp                                               ]
+    [ run test_bimap_mutable.cpp                                              ]
     [ run test_bimap_extra.cpp                                                ]
     [ run test_bimap_convenience_header.cpp                                   ]
     [ run test_bimap_project.cpp                                              ]
@@ -65,3 +67,10 @@
           /boost/serialization//boost_serialization                           ]
     ;
 
+test-suite "compile_fail_test"
+    :
+
+    [ compile-fail compile_fail/test_bimap_mutable_1.cpp                      ]
+    [ compile-fail compile_fail/test_bimap_mutable_2.cpp                      ]
+    [ compile-fail compile_fail/test_bimap_mutable_3.cpp                      ]
+    ;

Index: test_bimap_extra.cpp
===================================================================
RCS file: /cvsroot/boost/boost/libs/bimap/test/test_bimap_extra.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- test_bimap_extra.cpp        25 May 2007 01:07:12 -0000      1.1
+++ test_bimap_extra.cpp        26 May 2007 02:53:14 -0000      1.2
@@ -38,31 +38,31 @@
 using namespace boost::bimaps;
 using namespace boost::bimaps::support;
 
-typedef bimap<int, unconstrained_set_of<double> > bm;
+typedef bimap<int, unconstrained_set_of<double> > bm_type;
 
 
 namespace support_metafunctions_test {
 
     typedef boost::is_same
     <
-        data_type_by< member_at::left , bm >::type,
-        key_type_by < member_at::right, bm >::type
+        data_type_by< member_at::left , bm_type >::type,
+        key_type_by < member_at::right, bm_type >::type
 
     >::type test_metafunction_1;
     BOOST_STATIC_ASSERT(test_metafunction_1::value);
 
     typedef boost::is_same
     <
-        data_type_by< member_at::right, bm >::type,
-        key_type_by < member_at::left , bm >::type
+        data_type_by< member_at::right, bm_type >::type,
+        key_type_by < member_at::left , bm_type >::type
 
     >::type test_metafunction_2;
     BOOST_STATIC_ASSERT(test_metafunction_2::value);
 
     typedef boost::is_same
     <
-        map_type_by  < member_at::left , bm >::type::value_type,
-        value_type_by< member_at::left , bm >::type
+        map_type_by  < member_at::left , bm_type >::type::value_type,
+        value_type_by< member_at::left , bm_type >::type
 
     >::type test_metafunction_3;
     BOOST_STATIC_ASSERT(test_metafunction_3::value);
@@ -71,13 +71,13 @@
 
 void test_bimap_extra()
 {
-    bm b;
-    b.left.insert( bm::left_value_type(1,0.1) );
+    // extra tests
+    // ---------------------------------------------------------------
+    // This section test small things... when a group of this checks
+    // can be related it is moved to a separate unit test file.
+
 
-    bm::left_iterator iter = (b.left.begin());
-    iter->second = 0.2;
 
-    b.begin()->right = 0.1;
 }
 
 

Index: test_bimap_lambda.cpp
===================================================================
RCS file: /cvsroot/boost/boost/libs/bimap/test/test_bimap_lambda.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- test_bimap_lambda.cpp       25 May 2007 01:07:12 -0000      1.1
+++ test_bimap_lambda.cpp       26 May 2007 02:53:14 -0000      1.2
@@ -24,7 +24,6 @@
 #include <boost/bimap/support/lambda.hpp>
 #include <boost/bimap/bimap.hpp>
 
-
 void test_bimap_lambda()
 {
     using namespace boost::bimaps;
@@ -34,22 +33,12 @@
     bm b;
     b.insert( bm::value_type(1,0.1) );
 
-    /*
-    b.left .modify( b.left.begin() , _first = 2 );
-    b.left .modify( b.left.begin() , _second = 0.1 );
-    b.right.modify( b.right.begin(), ( _first = 0.1, _second = 1 ) );
-
-    BOOST_CHECK( b.left.at(1) == 0.1 );
-
     BOOST_CHECK( b.size() == 1 );
-
-    b.modify( b.begin(), ( _left = 2, _right = 0.2 ) );
-    */
-
+    BOOST_CHECK( b.left.modify_key ( b.left.begin(),  _key =   2 ) );
+    BOOST_CHECK( b.left.modify_data( b.left.begin(), _data = 0.2 ) );
     BOOST_CHECK( b.left.range( _key >= 1, _key < 3 ).first == b.left.begin() );
 }
 
-
 int test_main( int, char* [] )
 {
     test_bimap_lambda();


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs

Reply via email to