1.1 --- a/test/maps_test.cc Sat Mar 15 21:24:43 2008 +0100
1.2 +++ b/test/maps_test.cc Sat Mar 15 23:39:41 2008 +0100
1.3 @@ -78,7 +78,7 @@
1.4 ConstMap<A,B> map3 = map1;
1.5 map1 = constMap<A>(B());
1.6 map1.setAll(B());
1.7 -
1.8 +
1.9 checkConcept<ReadWriteMap<A,int>, ConstMap<A,int> >();
1.10 check(constMap<A>(10)[A()] == 10, "Something is wrong with ConstMap");
1.11
1.12 @@ -95,7 +95,7 @@
1.13 IdentityMap<A> map1;
1.14 IdentityMap<A> map2 = map1;
1.15 map1 = identityMap<A>();
1.16 -
1.17 +
1.18 checkConcept<ReadMap<double,double>, IdentityMap<double> >();
1.19 check(identityMap<double>()[1.0] == 1.0 && identityMap<double>()[3.14] == 3.14,
1.20 "Something is wrong with IdentityMap");
1.21 @@ -151,7 +151,7 @@
1.22 checkConcept<ReadMap<B,double>, CompMap>();
1.23 CompMap map1(DoubleMap(),ReadMap<B,A>());
1.24 CompMap map2 = composeMap(DoubleMap(), ReadMap<B,A>());
1.25 -
1.26 +
1.27 SparseMap<double, bool> m1(false); m1[3.14] = true;
1.28 RangeMap<double> m2(2); m2[0] = 3.0; m2[1] = 3.14;
1.29 check(!composeMap(m1,m2)[0] && composeMap(m1,m2)[1], "Something is wrong with ComposeMap")
1.30 @@ -197,7 +197,7 @@
1.31 // ForkMap
1.32 {
1.33 checkConcept<DoubleWriteMap, ForkMap<DoubleWriteMap, DoubleWriteMap> >();
1.34 -
1.35 +
1.36 typedef RangeMap<double> RM;
1.37 typedef SparseMap<int, double> SM;
1.38 RM m1(10, -1);
1.39 @@ -210,7 +210,7 @@
1.40 check(m1[1] == -1 && m1[5] == 10 && m2[1] == -1 && m2[5] == 10 && map2[1] == -1 && map2[5] == 10,
1.41 "Something is wrong with ForkMap");
1.42 }
1.43 -
1.44 +
1.45 // Arithmetic maps:
1.46 // - AddMap, SubMap, MulMap, DivMap
1.47 // - ShiftMap, ShiftWriteMap, ScaleMap, ScaleWriteMap
1.48 @@ -220,7 +220,7 @@
1.49 checkConcept<DoubleMap, SubMap<DoubleMap,DoubleMap> >();
1.50 checkConcept<DoubleMap, MulMap<DoubleMap,DoubleMap> >();
1.51 checkConcept<DoubleMap, DivMap<DoubleMap,DoubleMap> >();
1.52 -
1.53 +
1.54 ConstMap<int, double> c1(1.0), c2(3.14);
1.55 IdentityMap<int> im;
1.56 ConvertMap<IdentityMap<int>, double> id(im);
1.57 @@ -228,7 +228,7 @@
1.58 check(subMap(id,c1)[0] == -1.0 && subMap(id,c1)[10] == 9.0, "Something is wrong with SubMap");
1.59 check(mulMap(id,c2)[0] == 0 && mulMap(id,c2)[2] == 6.28, "Something is wrong with MulMap");
1.60 check(divMap(c2,id)[1] == 3.14 && divMap(c2,id)[2] == 1.57, "Something is wrong with DivMap");
1.61 -
1.62 +
1.63 checkConcept<DoubleMap, ShiftMap<DoubleMap> >();
1.64 checkConcept<DoubleWriteMap, ShiftWriteMap<DoubleWriteMap> >();
1.65 checkConcept<DoubleMap, ScaleMap<DoubleMap> >();
1.66 @@ -252,16 +252,40 @@
1.67 check(absMap(id)[1] == 1.0 && absMap(id)[-10] == 10.0,
1.68 "Something is wrong with AbsMap");
1.69 }
1.70 -
1.71 - // Logical maps
1.72 +
1.73 + // Logical maps:
1.74 + // - TrueMap, FalseMap
1.75 + // - AndMap, OrMap
1.76 + // - NotMap, NotWriteMap
1.77 + // - EqualMap, LessMap
1.78 {
1.79 + checkConcept<BoolMap, TrueMap<A> >();
1.80 + checkConcept<BoolMap, FalseMap<A> >();
1.81 + checkConcept<BoolMap, AndMap<BoolMap,BoolMap> >();
1.82 + checkConcept<BoolMap, OrMap<BoolMap,BoolMap> >();
1.83 checkConcept<BoolMap, NotMap<BoolMap> >();
1.84 checkConcept<BoolWriteMap, NotWriteMap<BoolWriteMap> >();
1.85 -
1.86 + checkConcept<BoolMap, EqualMap<DoubleMap,DoubleMap> >();
1.87 + checkConcept<BoolMap, LessMap<DoubleMap,DoubleMap> >();
1.88 +
1.89 + TrueMap<int> tm;
1.90 + FalseMap<int> fm;
1.91 RangeMap<bool> rm(2);
1.92 rm[0] = true; rm[1] = false;
1.93 - check(!(notMap(rm)[0]) && notMap(rm)[1], "Something is wrong with NotMap");
1.94 - check(!(notWriteMap(rm)[0]) && notWriteMap(rm)[1], "Something is wrong with NotWriteMap");
1.95 + check(andMap(tm,rm)[0] && !andMap(tm,rm)[1] && !andMap(fm,rm)[0] && !andMap(fm,rm)[1],
1.96 + "Something is wrong with AndMap");
1.97 + check(orMap(tm,rm)[0] && orMap(tm,rm)[1] && orMap(fm,rm)[0] && !orMap(fm,rm)[1],
1.98 + "Something is wrong with OrMap");
1.99 + check(!notMap(rm)[0] && notMap(rm)[1], "Something is wrong with NotMap");
1.100 + check(!notWriteMap(rm)[0] && notWriteMap(rm)[1], "Something is wrong with NotWriteMap");
1.101 +
1.102 + ConstMap<int, double> cm(2.0);
1.103 + IdentityMap<int> im;
1.104 + ConvertMap<IdentityMap<int>, double> id(im);
1.105 + check(lessMap(id,cm)[1] && !lessMap(id,cm)[2] && !lessMap(id,cm)[3],
1.106 + "Something is wrong with LessMap");
1.107 + check(!equalMap(id,cm)[1] && equalMap(id,cm)[2] && !equalMap(id,cm)[3],
1.108 + "Something is wrong with EqualMap");
1.109 }
1.110
1.111 return 0;