1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/test/maps_test.cc Mon May 23 04:48:14 2005 +0000
1.3 @@ -0,0 +1,57 @@
1.4 +#include <lemon/concept_check.h>
1.5 +#include <lemon/concept/maps.h>
1.6 +#include <lemon/maps.h>
1.7 +
1.8 +#include "test_tools.h"
1.9 +
1.10 +using namespace lemon;
1.11 +using namespace lemon::concept;
1.12 +
1.13 +struct A {};
1.14 +struct B {};
1.15 +class F
1.16 +{
1.17 +public:
1.18 + B operator()(const A &) const {return B();}
1.19 +};
1.20 +
1.21 +int func(A) {return 3;}
1.22 +
1.23 +typedef ReadMap<A,double> DoubleMap;
1.24 +
1.25 +int main()
1.26 +{ // checking graph components
1.27 +
1.28 + checkConcept<ReadMap<A,B>, ReadMap<A,B> >();
1.29 + checkConcept<WriteMap<A,B>, WriteMap<A,B> >();
1.30 + checkConcept<ReadWriteMap<A,B>, ReadWriteMap<A,B> >();
1.31 + checkConcept<ReferenceMap<A,B,B&,const B&>, ReferenceMap<A,B,B&,const B&> >();
1.32 +
1.33 + checkConcept<ReadMap<A,double>, AddMap<DoubleMap,DoubleMap> >();
1.34 + checkConcept<ReadMap<A,double>, SubMap<DoubleMap,DoubleMap> >();
1.35 + checkConcept<ReadMap<A,double>, MulMap<DoubleMap,DoubleMap> >();
1.36 + checkConcept<ReadMap<A,double>, DivMap<DoubleMap,DoubleMap> >();
1.37 + checkConcept<ReadMap<A,double>, NegMap<DoubleMap> >();
1.38 + checkConcept<ReadMap<A,double>, AbsMap<DoubleMap> >();
1.39 + checkConcept<ReadMap<A,double>, ShiftMap<DoubleMap> >();
1.40 + checkConcept<ReadMap<A,double>, ScaleMap<DoubleMap> >();
1.41 +
1.42 + checkConcept<ReadMap<B,double>, ComposeMap<DoubleMap,ReadMap<B,A> > >();
1.43 +
1.44 + checkConcept<ReadMap<A,B>, FunctorMap<A,B,F> >();
1.45 +
1.46 + int a;
1.47 +
1.48 + a=mapFunctor(constMap<A,int>(2))(A());
1.49 + check(a==2,"Something is wrong with mapFunctor");
1.50 +
1.51 + B b;
1.52 + b=functorMap<A,B>(F())[A()];
1.53 +
1.54 + a=functorMap<A,int>(&func)[A()];
1.55 + check(a==3,"Something is wrong with functorMap");
1.56 +
1.57 + std::cout << __FILE__ ": All tests passed.\n";
1.58 +
1.59 + return 0;
1.60 +}