/[escript]/trunk/escript/test/Data/DataTestCase.cpp
ViewVC logotype

Diff of /trunk/escript/test/Data/DataTestCase.cpp

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

revision 537 by jgs, Mon Feb 20 02:00:18 2006 UTC revision 539 by jgs, Mon Feb 20 04:12:51 2006 UTC
# Line 354  void DataTestCase::testSlicing() { Line 354  void DataTestCase::testSlicing() {
354    
355  }  }
356    
357  void DataTestCase::testMore() {  void DataTestCase::testAll() {
358    
359    cout << endl;    cout << endl;
360    
# Line 381  void DataTestCase::testMore() { Line 381  void DataTestCase::testMore() {
381    result=exData*cData;    result=exData*cData;
382    assert(result.isExpanded());    assert(result.isExpanded());
383    
   assert(result.Lsup()==4);  
   assert(result.sup()==4);  
   assert(result.inf()==0);  
   
   result=exData+cData;  
   result=exData-cData;  
   result=exData/cData;  
   
   cout << "\tExercise wherePositive method" << endl;  
   assert(!exData.wherePositive().isEmpty());  
   
   cout << "\tExercise copyWithMask method" << endl;  
   exData.copyWithMask(result, exData.wherePositive());  
   assert(!exData.wherePositive().isEmpty());  
   
384  }  }
385    
386  void DataTestCase::testAll() {  void DataTestCase::testMore() {
387    
388    cout << endl;    cout << endl;
389    
# Line 413  void DataTestCase::testAll() { Line 398  void DataTestCase::testAll() {
398    DataArrayView myView(viewData,viewShape);    DataArrayView myView(viewData,viewShape);
399    
400    bool expanded=true;    bool expanded=true;
   
401    Data exData(myView,FunctionSpace(),expanded);    Data exData(myView,FunctionSpace(),expanded);
402    Data cData(myView);    Data cData(myView);
403    Data result;    Data result;
# Line 426  void DataTestCase::testAll() { Line 410  void DataTestCase::testAll() {
410    result=exData*cData;    result=exData*cData;
411    assert(result.isExpanded());    assert(result.isExpanded());
412    
413      assert(result.Lsup()==4);
414      assert(result.sup()==4);
415      assert(result.inf()==0);
416    
417      result=exData+cData;
418      result=exData-cData;
419      result=exData/cData;
420    
421      cout << "\tExercise wherePositive method" << endl;
422      assert(!exData.wherePositive().isEmpty());
423    
424      cout << "\tExercise copyWithMask method" << endl;
425      exData.copyWithMask(result, exData.wherePositive());
426      assert(!exData.wherePositive().isEmpty());
427    
428  }  }
429    
430  void DataTestCase::testDataConstant() {  void DataTestCase::testDataConstant() {
# Line 467  void DataTestCase::testDataConstant() { Line 466  void DataTestCase::testDataConstant() {
466    
467  }  }
468    
469    void DataTestCase::testDataTagged() {
470    
471      cout << endl;
472    
473      {
474    
475        cout << "\tCreate a DataTagged object with a default value only." << endl;
476    
477        DataTagged::TagListType keys;
478    
479        DataTagged::ValueListType values;
480    
481        DataArrayView::ShapeType viewShape;
482        viewShape.push_back(3);
483    
484        DataArrayView::ValueType viewData(3);
485        for (int i=0;i<viewShape[0];i++) {
486          viewData[i]=i;
487        }
488        DataArrayView defaultValue(viewData,viewShape);
489    
490        bool expanded=false;
491      
492        Data myData(keys,values,defaultValue,FunctionSpace(),expanded);
493    
494        // cout << myData.toString() << endl;
495    
496        assert(!myData.isEmpty());
497        assert(myData.isTagged());
498        assert(myData.getTagNumber(0)==1);
499        assert(myData.getDataPointRank()==1);
500        assert(myData.getLength()==3);
501    
502        DataArrayView myDataView = myData.getPointDataView();
503        assert(!myDataView.isEmpty());
504        assert(myDataView.getOffset()==0);
505        assert(myDataView.getRank()==1);
506        assert(myDataView.noValues()==3);
507        assert(myDataView.getShape().size()==1);
508        assert(myDataView(0)==0.0);
509        assert(myDataView(1)==1.0);
510        assert(myDataView(2)==2.0);
511    
512        myDataView = myData.getDataPoint(0,0);
513        assert(!myDataView.isEmpty());
514        assert(myDataView.getOffset()==0);
515        assert(myDataView.getRank()==1);
516        assert(myDataView.noValues()==3);
517        assert(myDataView.getShape().size()==1);
518        assert(myDataView(0)==0.0);
519        assert(myDataView(1)==1.0);
520        assert(myDataView(2)==2.0);
521    
522        double* sampleData=myData.getSampleData(0);
523        for (int i=0; i<myDataView.noValues(); i++) {
524          assert(sampleData[i]==i);
525        }
526        // use a non-existent tag so we get a pointer to
527        // the first element of the data array
528        sampleData=myData.getSampleDataByTag(9);
529        for (int i=0; i<myData.getLength(); i++) {
530          assert(sampleData[i]==i);
531        }
532    
533        cout << "\tTest setting of a tag and associated value." << endl;
534    
535        // value for tag "1"
536        DataArray eTwo(defaultValue);
537        for (int i=0;i<eTwo.getView().getShape()[0];i++) {
538          eTwo.getView()(i)=i+2.0;
539        }
540    
541        myData.setTaggedValueFromCPP(1,eTwo.getView());
542    
543        assert(myData.getLength()==6);
544    
545        myDataView = myData.getDataPoint(0,0);
546        assert(myDataView==eTwo.getView());
547        assert(!myDataView.isEmpty());
548        assert(myDataView.getOffset()==3);
549        assert(myDataView.getRank()==1);
550        assert(myDataView.noValues()==3);
551        assert(myDataView.getShape().size()==1);
552        assert(myDataView(0)==2);
553        assert(myDataView(1)==3);
554        assert(myDataView(2)==4);
555    
556        sampleData=myData.getSampleDataByTag(1);
557        for (int i=0; i<myDataView.noValues(); i++) {
558          assert(sampleData[i]==i+2);
559        }
560    
561      }
562    
563      {
564    
565        cout << "\tCreate a DataTagged object via tag() method." << endl;
566    
567        DataArrayView::ShapeType viewShape;
568        viewShape.push_back(2);
569        viewShape.push_back(3);
570        Data myData(1.3,viewShape,FunctionSpace(),false);
571        myData.tag();
572    
573        //cout << myData.toString() << endl;
574    
575        assert(!myData.isEmpty());
576        assert(myData.isTagged());
577        assert(myData.getTagNumber(0)==1);
578        assert(myData.getDataPointRank()==2);
579        assert(myData.getLength()==6);
580    
581        // check default value
582        DataArrayView myDataView = myData.getPointDataView();
583        assert(!myDataView.isEmpty());
584        assert(myDataView.getOffset()==0);
585        assert(myDataView.getRank()==2);
586        assert(myDataView.noValues()==6);
587        assert(myDataView.getShape().size()==2);
588        assert(myDataView(0,0)==1.3);
589        assert(myDataView(0,1)==1.3);
590        assert(myDataView(0,2)==1.3);
591        assert(myDataView(1,0)==1.3);
592        assert(myDataView(1,1)==1.3);
593        assert(myDataView(1,2)==1.3);
594    
595        // check value for data-point (0,0).
596        myDataView = myData.getDataPoint(0,0);
597        assert(!myDataView.isEmpty());
598        assert(myDataView.getOffset()==0);
599        assert(myDataView.getRank()==2);
600        assert(myDataView.noValues()==6);
601        assert(myDataView.getShape().size()==2);
602        assert(myDataView(0,0)==1.3);
603        assert(myDataView(0,1)==1.3);
604        assert(myDataView(0,2)==1.3);
605        assert(myDataView(1,0)==1.3);
606        assert(myDataView(1,1)==1.3);
607        assert(myDataView(1,2)==1.3);
608    
609      }
610    
611    }
612    
613  void DataTestCase::testDataTaggedExceptions() {  void DataTestCase::testDataTaggedExceptions() {
614    
615    cout << endl;    cout << endl;
# Line 495  void DataTestCase::testDataTaggedExcepti Line 638  void DataTestCase::testDataTaggedExcepti
638    }    }
639    
640  }  }
   
 void DataTestCase::testDataTagged() {  
   
   cout << endl;  
   
   cout << "\tCreate a DataTagged object with a default value only." << endl;  
   
   // create tagged data with no tag values just a default  
   
   DataTagged::TagListType keys;  
   
   DataTagged::ValueListType values;  
   
   DataArrayView::ShapeType viewShape;  
   viewShape.push_back(3);  
   
   DataArrayView::ValueType viewData(3);  
   for (int i=0;i<viewShape[0];++i) {  
     viewData[i]=i;  
   }  
   DataArrayView myView(viewData,viewShape);  
   
   bool expanded=false;  
   
   Data myData(keys,values,myView,FunctionSpace(),expanded);  
   
   // cout << myData.toString() << endl;  
   
   assert(!myData.isEmpty());  
   assert(myData.isTagged());  
   assert(myData.getTagNumber(0)==1);  
   assert(myData.getDataPointRank()==1);  
   assert(myData.getLength()==3);  
   
   DataArrayView myDataView = myData.getPointDataView();  
   assert(!myDataView.isEmpty());  
   assert(myDataView.getOffset()==0);  
   assert(myDataView.getRank()==1);  
   assert(myDataView.noValues()==3);  
   assert(myDataView.getShape().size()==1);  
   assert(myDataView(0)==0.0);  
   assert(myDataView(1)==1.0);  
   assert(myDataView(2)==2.0);  
   
   myDataView = myData.getDataPoint(0,0);  
   assert(!myDataView.isEmpty());  
   assert(myDataView.getOffset()==0);  
   assert(myDataView.getRank()==1);  
   assert(myDataView.noValues()==3);  
   assert(myDataView.getShape().size()==1);  
   assert(myDataView(0)==0.0);  
   assert(myDataView(1)==1.0);  
   assert(myDataView(2)==2.0);  
   
   double* sampleData=myData.getSampleData(0);  
   for (int i=0; i<myDataView.noValues(); i++) {  
     assert(sampleData[i]==i);  
   }  
   // use a non-existent tag so we get a pointer to  
   // the first element of the data array  
   sampleData=myData.getSampleDataByTag(9);  
   for (int i=0; i<myData.getLength(); i++) {  
     assert(sampleData[i]==i);  
   }  
   
   cout << "\tTest setting of a tag and associated value." << endl;  
   
   // value for tag "1"  
   DataArray eTwo(myView);  
   for (int i=0;i<eTwo.getView().getShape()[0];i++) {  
     eTwo.getView()(i)=i+2.0;  
   }  
   
   myData.setTaggedValueFromCPP(1,eTwo.getView());  
   
   assert(myData.getLength()==6);  
   
   myDataView = myData.getDataPoint(0,0);  
   assert(myDataView==eTwo.getView());  
   assert(!myDataView.isEmpty());  
   assert(myDataView.getOffset()==3);  
   assert(myDataView.getRank()==1);  
   assert(myDataView.noValues()==3);  
   assert(myDataView.getShape().size()==1);  
   assert(myDataView(0)==2);  
   assert(myDataView(1)==3);  
   assert(myDataView(2)==4);  
   
   sampleData=myData.getSampleDataByTag(1);  
   for (int i=0; i<myDataView.noValues(); i++) {  
     assert(sampleData[i]==i+2);  
   }  
   
 }  
641    
642  void DataTestCase::testConstructors() {  void DataTestCase::testConstructors() {
643    

Legend:
Removed from v.537  
changed lines
  Added in v.539

  ViewVC Help
Powered by ViewVC 1.1.26