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