/[escript]/trunk/escript/test/DataTaggedTestCase.cpp
ViewVC logotype

Diff of /trunk/escript/test/DataTaggedTestCase.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 514 by jgs, Mon Feb 13 04:47:47 2006 UTC revision 515 by jgs, Mon Feb 13 05:59:51 2006 UTC
# Line 2951  void DataTaggedTestCase::testCopyConstru Line 2951  void DataTaggedTestCase::testCopyConstru
2951    
2952  }  }
2953    
2954  void DataTaggedTestCase::testSlicing() {  void DataTaggedTestCase::testGetSlice() {
2955    
2956    cout << endl;    cout << endl;
2957    
# Line 3164  void DataTaggedTestCase::testSlicing() { Line 3164  void DataTaggedTestCase::testSlicing() {
3164    
3165    }    }
3166    
3167      {
3168    
3169        cout << "\tTest slicing DataTagged with scalar values and one tag." << endl;
3170    
3171        DataTagged::TagListType keys;
3172        keys.push_back(1);
3173    
3174        DataTagged::ValueListType values;
3175    
3176        DataArrayView::ShapeType viewShape;
3177    
3178        // default value
3179        DataArrayView::ValueType viewData(1);
3180        viewData[0]=0.0;
3181        DataArrayView myView(viewData,viewShape);
3182    
3183        // value for tag "1"
3184        DataArray eOne(myView);
3185        eOne.getView()()=1.0;
3186        values.push_back(eOne.getView());
3187    
3188        DataTagged myData(keys,values,myView,FunctionSpace());
3189    
3190        //cout << myData.toString() << endl;
3191    
3192        // full slice
3193    
3194        DataArrayView::RegionType region;
3195    
3196        DataAbstract* slicedDefault = myData.getSlice(region);
3197    
3198        //cout << slicedDefault->toString() << endl;
3199    
3200        const DataTagged* myDataSliced=dynamic_cast<const DataTagged*>(slicedDefault);
3201    
3202        assert(myDataSliced->getTagLookup().size()==1);
3203    
3204        assert(myDataSliced->getLength()==2);
3205    
3206        DataArrayView myDataView = myDataSliced->getDefaultValue();
3207        assert(!myDataView.isEmpty());
3208        assert(myDataView.getOffset()==0);
3209        assert(myDataView.getRank()==0);
3210        assert(myDataView.noValues()==1);
3211        assert(myDataView.getShape().size()==0);
3212        assert(myDataView()==0);
3213    
3214        myDataView = myDataSliced->getDataPointByTag(1);
3215        assert(!myDataView.isEmpty());
3216        assert(myDataView.getOffset()==1);
3217        assert(myDataView.getRank()==0);
3218        assert(myDataView.noValues()==1);
3219        assert(myDataView.getShape().size()==0);
3220        assert(myDataView()==1);
3221    
3222      }
3223    
3224      {
3225    
3226        cout << "\tTest slicing DataTagged with rank 1 values and one tag." << endl;
3227    
3228        DataArrayView::ShapeType viewShape;
3229        viewShape.push_back(3);
3230    
3231        DataTagged::TagListType keys;
3232        keys.push_back(1);
3233    
3234        DataTagged::ValueListType values;
3235    
3236        // default value
3237        DataArrayView::ValueType viewData(3);
3238        for (int i=0;i<viewShape[0];i++) {
3239          viewData[i]=i;
3240        }
3241        DataArrayView myView(viewData,viewShape);
3242    
3243        // value for tag "1"
3244        DataArray eOne(myView);
3245        for (int i=0;i<eOne.getView().getShape()[0];i++) {
3246          eOne.getView()(i)=i+3.0;
3247        }
3248        values.push_back(eOne.getView());
3249    
3250        DataTagged myData(keys,values,myView,FunctionSpace());
3251    
3252        //cout << myData.toString() << endl;
3253    
3254        // full slice
3255    
3256        std::pair<int, int> region_element;
3257        region_element.first=0;
3258        region_element.second=3;
3259        DataArrayView::RegionType region;
3260        region.push_back(region_element);
3261    
3262        DataAbstract* slicedDefault = myData.getSlice(region);
3263    
3264        //cout << slicedDefault->toString() << endl;
3265    
3266        const DataTagged* myDataSliced=dynamic_cast<const DataTagged*>(slicedDefault);
3267    
3268        assert(myDataSliced->getTagLookup().size()==1);
3269    
3270        assert(myDataSliced->getLength()==6);
3271    
3272        DataArrayView myDataView = myDataSliced->getDefaultValue();
3273        assert(!myDataView.isEmpty());
3274        assert(myDataView.getOffset()==0);
3275        assert(myDataView.getRank()==1);
3276        assert(myDataView.noValues()==3);
3277        assert(myDataView.getShape().size()==1);
3278        assert(myDataView(0)==0);
3279        assert(myDataView(1)==1);
3280        assert(myDataView(2)==2);
3281    
3282        myDataView = myDataSliced->getDataPointByTag(1);
3283        assert(!myDataView.isEmpty());
3284        assert(myDataView.getOffset()==3);
3285        assert(myDataView.getRank()==1);
3286        assert(myDataView.noValues()==3);
3287        assert(myDataView.getShape().size()==1);
3288        assert(myDataView(0)==3);
3289        assert(myDataView(1)==4);
3290        assert(myDataView(2)==5);
3291    
3292        // scalar slice
3293    
3294        region_element.first=1;
3295        region_element.second=1;
3296        region.clear();
3297        region.push_back(region_element);
3298    
3299        slicedDefault = myData.getSlice(region);
3300    
3301        //cout << slicedDefault->toString() << endl;
3302    
3303        myDataSliced=dynamic_cast<const DataTagged*>(slicedDefault);
3304    
3305        assert(myDataSliced->getTagLookup().size()==1);
3306    
3307        assert(myDataSliced->getLength()==2);
3308    
3309        myDataView = myDataSliced->getDefaultValue();
3310        assert(!myDataView.isEmpty());
3311        assert(myDataView.getOffset()==0);
3312        assert(myDataView.getRank()==0);
3313        assert(myDataView.noValues()==1);
3314        assert(myDataView.getShape().size()==0);
3315        assert(myDataView()==1);
3316    
3317        myDataView = myDataSliced->getDataPointByTag(1);
3318        assert(!myDataView.isEmpty());
3319        assert(myDataView.getOffset()==1);
3320        assert(myDataView.getRank()==0);
3321        assert(myDataView.noValues()==1);
3322        assert(myDataView.getShape().size()==0);
3323        assert(myDataView()==4);
3324    
3325      }
3326    
3327    }
3328    
3329    void DataTaggedTestCase::testSetSlice() {
3330    
3331      cout << endl;
3332    
3333      {
3334    
3335      }
3336    
3337  }  }
3338    
3339  TestSuite* DataTaggedTestCase::suite ()  TestSuite* DataTaggedTestCase::suite ()
# Line 3177  TestSuite* DataTaggedTestCase::suite () Line 3347  TestSuite* DataTaggedTestCase::suite ()
3347    testSuite->addTest (new TestCaller< DataTaggedTestCase>("testCopyConstructors",&DataTaggedTestCase::testCopyConstructors));    testSuite->addTest (new TestCaller< DataTaggedTestCase>("testCopyConstructors",&DataTaggedTestCase::testCopyConstructors));
3348    testSuite->addTest (new TestCaller< DataTaggedTestCase>("testOperations",&DataTaggedTestCase::testOperations));    testSuite->addTest (new TestCaller< DataTaggedTestCase>("testOperations",&DataTaggedTestCase::testOperations));
3349    testSuite->addTest (new TestCaller< DataTaggedTestCase>("testReshape",&DataTaggedTestCase::testReshape));    testSuite->addTest (new TestCaller< DataTaggedTestCase>("testReshape",&DataTaggedTestCase::testReshape));
3350    testSuite->addTest (new TestCaller< DataTaggedTestCase>("testSlicing",&DataTaggedTestCase::testSlicing));    testSuite->addTest (new TestCaller< DataTaggedTestCase>("testGetSlice",&DataTaggedTestCase::testGetSlice));
3351      testSuite->addTest (new TestCaller< DataTaggedTestCase>("testSetSlice",&DataTaggedTestCase::testSetSlice));
3352    return testSuite;    return testSuite;
3353  }  }

Legend:
Removed from v.514  
changed lines
  Added in v.515

  ViewVC Help
Powered by ViewVC 1.1.26