470 |
|
|
471 |
cout << endl; |
cout << endl; |
472 |
|
|
473 |
cout << "\tCreate a DataTagged object with a default value only." << endl; |
{ |
474 |
|
|
475 |
DataTagged::TagListType keys; |
cout << "\tCreate a DataTagged object with a default value only." << endl; |
476 |
|
|
477 |
DataTagged::ValueListType values; |
DataTagged::TagListType keys; |
478 |
|
|
479 |
DataArrayView::ShapeType viewShape; |
DataTagged::ValueListType values; |
|
viewShape.push_back(3); |
|
480 |
|
|
481 |
DataArrayView::ValueType viewData(3); |
DataArrayView::ShapeType viewShape; |
482 |
for (int i=0;i<viewShape[0];i++) { |
viewShape.push_back(3); |
483 |
viewData[i]=i; |
|
484 |
} |
DataArrayView::ValueType viewData(3); |
485 |
DataArrayView defaultValue(viewData,viewShape); |
for (int i=0;i<viewShape[0];i++) { |
486 |
|
viewData[i]=i; |
487 |
bool expanded=false; |
} |
488 |
|
DataArrayView defaultValue(viewData,viewShape); |
489 |
Data myData(keys,values,defaultValue,FunctionSpace(),expanded); |
|
490 |
|
bool expanded=false; |
491 |
// cout << myData.toString() << endl; |
|
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 |
|
|
|
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); |
|
561 |
} |
} |
|
// 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; |
|
562 |
|
|
563 |
// value for tag "1" |
{ |
|
DataArray eTwo(defaultValue); |
|
|
for (int i=0;i<eTwo.getView().getShape()[0];i++) { |
|
|
eTwo.getView()(i)=i+2.0; |
|
|
} |
|
564 |
|
|
565 |
myData.setTaggedValueFromCPP(1,eTwo.getView()); |
cout << "\tCreate a DataTagged object via tag() method." << endl; |
566 |
|
|
567 |
assert(myData.getLength()==6); |
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 |
|
|
|
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); |
|
609 |
} |
} |
610 |
|
|
611 |
} |
} |