Several changes. \n If new map is added to mapstorage it emits signal with the name of the new map. This was important, because from now on not only tha mapwin should be updated. \n Furthermore algobox gets a pointer to mapstorage instead of only the mapnames from it. This is important because without it it would be complicated to pass all of the required maps to algobox.
1 #include <lemon/concept_check.h>
2 #include <lemon/concept/maps.h>
3 #include <lemon/maps.h>
5 #include "test_tools.h"
8 using namespace lemon::concept;
15 typedef A argument_type;
16 typedef B result_type;
18 B operator()(const A &) const {return B();}
21 int func(A) {return 3;}
23 int binc(int, B) {return 4;}
25 typedef ReadMap<A,double> DoubleMap;
28 { // checking graph components
30 checkConcept<ReadMap<A,B>, ReadMap<A,B> >();
31 checkConcept<WriteMap<A,B>, WriteMap<A,B> >();
32 checkConcept<ReadWriteMap<A,B>, ReadWriteMap<A,B> >();
33 checkConcept<ReferenceMap<A,B,B&,const B&>, ReferenceMap<A,B,B&,const B&> >();
35 checkConcept<ReadMap<A,double>, AddMap<DoubleMap,DoubleMap> >();
36 checkConcept<ReadMap<A,double>, SubMap<DoubleMap,DoubleMap> >();
37 checkConcept<ReadMap<A,double>, MulMap<DoubleMap,DoubleMap> >();
38 checkConcept<ReadMap<A,double>, DivMap<DoubleMap,DoubleMap> >();
39 checkConcept<ReadMap<A,double>, NegMap<DoubleMap> >();
40 checkConcept<ReadMap<A,double>, AbsMap<DoubleMap> >();
41 checkConcept<ReadMap<A,double>, ShiftMap<DoubleMap> >();
42 checkConcept<ReadMap<A,double>, ScaleMap<DoubleMap> >();
44 checkConcept<ReadMap<B,double>, ComposeMap<DoubleMap,ReadMap<B,A> > >();
46 checkConcept<ReadMap<A,B>, FunctorMap<F, A, B> >();
50 a=mapFunctor(constMap<A,int>(2))(A());
51 check(a==2,"Something is wrong with mapFunctor");
54 b=functorMap(F())[A()];
56 a=functorMap(&func)[A()];
57 check(a==3,"Something is wrong with functorMap");
59 a=combineMap(constMap<B, int, 1>(), identityMap<B>(), &binc)[B()];
60 check(a==4,"Something is wrong with combineMap");
63 std::cout << __FILE__ ": All tests passed.\n";