test/maps_test.cc
changeset 82 bce6c8f93d10
parent 80 15968e25ca08
child 94 a4688e4138ec
     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;