35 #include "DGtal/base/Common.h"
36 #include "DGtal/base/BasicFunctors.h"
37 #include "DGtal/base/OutputIteratorAdapter.h"
38 #include "DGtal/base/IteratorAdapter.h"
44 using namespace DGtal;
58 typedef map<string,string> Map;
59 typedef pair<string,string> Pair;
63 m.insert( Pair(
"Proudhon",
"Pierre-Joseph" ) );
64 m.insert( Pair(
"Reclus",
"Élisée" ) );
65 m.insert( Pair(
"Zamenhof",
"Ludwik Lejzer" ) );
67 typedef vector<string> Vec;
69 v.push_back(
"P-J." );
71 v.push_back(
"L. L." );
75 m2.insert( Pair(
"Proudhon",
"P-J." ) );
76 m2.insert( Pair(
"Reclus",
"E.") );
77 m2.insert( Pair(
"Zamenhof",
"L. L." ) );
83 BOOST_CONCEPT_ASSERT(( boost::OutputIterator<Adapter, string> ));
85 Adapter a( m.begin(), f );
87 copy(v.begin(), v.end(), a);
90 flag = std::equal( m.begin(), m.end(), m2.begin() );
94 trace.
info() <<
"(" << nbok <<
"/" << nb <<
")" << std::endl;
104 BOOST_CONCEPT_ASSERT(( boost::ForwardIterator<Adapter> ));
107 Adapter a( m.begin(), f );
108 copy(v.begin(), v.end(), a);
109 bool flag1 = std::equal( m.begin(), m.end(), m2.begin() );
112 Adapter aBegin( m.begin(), f);
113 Adapter aEnd( m.end(), f);
114 bool flag2 = std::equal( aBegin, aEnd, v.begin() );
116 nbok += (flag1 && flag2)?1:0;
119 trace.
info() <<
"(" << nbok <<
"/" << nb <<
")" << std::endl;
129 int main(
int argc,
char** argv )
133 for (
int i = 0; i < argc; ++i )
137 bool res = testPairs()
139 trace.
emphase() << ( res ?
"Passed." :
"Error." ) << endl;