3924 |
|
|
3925 |
{ |
{ |
3926 |
|
|
3927 |
|
cout << "\tTest slicing default DataTagged." << endl; |
3928 |
|
|
3929 |
|
DataTagged myData1; |
3930 |
|
DataTagged myData2; |
3931 |
|
|
3932 |
|
DataArrayView::RegionType region; |
3933 |
|
|
3934 |
|
myData1.setSlice(&myData2, region); |
3935 |
|
|
3936 |
|
//cout << myData1.toString() << endl; |
3937 |
|
|
3938 |
|
assert(myData1.getTagLookup().size()==0); |
3939 |
|
|
3940 |
|
assert(myData1.getLength()==1); |
3941 |
|
|
3942 |
|
DataArrayView myDataView = myData1.getDefaultValue(); |
3943 |
|
assert(!myDataView.isEmpty()); |
3944 |
|
assert(myDataView.getOffset()==0); |
3945 |
|
assert(myDataView.getRank()==0); |
3946 |
|
assert(myDataView.noValues()==1); |
3947 |
|
assert(myDataView.getShape().size()==0); |
3948 |
|
assert(myDataView()==0.0); |
3949 |
|
|
3950 |
|
} |
3951 |
|
|
3952 |
|
{ |
3953 |
|
|
3954 |
|
cout << "\tTest slicing DataTagged with rank 1 default value only." << endl; |
3955 |
|
|
3956 |
|
DataTagged::TagListType keys; |
3957 |
|
|
3958 |
|
DataTagged::ValueListType values; |
3959 |
|
|
3960 |
|
DataArrayView::ShapeType viewShape; |
3961 |
|
viewShape.push_back(3); |
3962 |
|
|
3963 |
|
DataArrayView::ValueType viewData1(3); |
3964 |
|
for (int i=0;i<viewShape[0];i++) { |
3965 |
|
viewData1[i]=i; |
3966 |
|
} |
3967 |
|
DataArrayView myView1(viewData1,viewShape); |
3968 |
|
|
3969 |
|
DataArrayView::ValueType viewData2(3); |
3970 |
|
for (int i=0;i<viewShape[0];i++) { |
3971 |
|
viewData2[i]=i+3; |
3972 |
|
} |
3973 |
|
DataArrayView myView2(viewData2,viewShape); |
3974 |
|
|
3975 |
|
DataTagged myData1(keys,values,myView1,FunctionSpace()); |
3976 |
|
DataTagged myData2(keys,values,myView2,FunctionSpace()); |
3977 |
|
|
3978 |
|
// full slice |
3979 |
|
|
3980 |
|
std::pair<int, int> region_element; |
3981 |
|
region_element.first=0; |
3982 |
|
region_element.second=3; |
3983 |
|
DataArrayView::RegionType region; |
3984 |
|
region.push_back(region_element); |
3985 |
|
|
3986 |
|
myData1.setSlice(&myData2, region); |
3987 |
|
|
3988 |
|
//cout << myData1.toString() << endl; |
3989 |
|
|
3990 |
|
assert(myData1.getTagLookup().size()==0); |
3991 |
|
|
3992 |
|
assert(myData1.getLength()==3); |
3993 |
|
|
3994 |
|
DataArrayView myDataView = myData1.getDefaultValue(); |
3995 |
|
assert(!myDataView.isEmpty()); |
3996 |
|
assert(myDataView.getOffset()==0); |
3997 |
|
assert(myDataView.getRank()==1); |
3998 |
|
assert(myDataView.noValues()==3); |
3999 |
|
assert(myDataView.getShape().size()==1); |
4000 |
|
assert(myDataView(0)==3.0); |
4001 |
|
assert(myDataView(1)==4.0); |
4002 |
|
assert(myDataView(2)==5.0); |
4003 |
|
|
4004 |
|
// rank 1 slice |
4005 |
|
|
4006 |
|
//viewShape.clear(); |
4007 |
|
//viewShape.push_back(1); |
4008 |
|
|
4009 |
|
//DataArrayView::ValueType viewData3(1); |
4010 |
|
//for (int i=0;i<viewShape[0];i++) { |
4011 |
|
// viewData3[i]=0.0; |
4012 |
|
//} |
4013 |
|
//DataArrayView myView3(viewData3,viewShape); |
4014 |
|
|
4015 |
|
//DataTagged myData3(keys,values,myView3,FunctionSpace()); |
4016 |
|
|
4017 |
|
//region.clear(); |
4018 |
|
//region_element.first=0; |
4019 |
|
//region_element.second=1; |
4020 |
|
//region.push_back(region_element); |
4021 |
|
|
4022 |
|
//cout << myData3.toString() << endl; |
4023 |
|
|
4024 |
|
//myData3.setSlice(&myData2, region); |
4025 |
|
|
4026 |
|
//cout << myData3.toString() << endl; |
4027 |
|
|
4028 |
|
// scalar slice |
4029 |
|
|
4030 |
|
//region.clear(); |
4031 |
|
//region_element.first=0; |
4032 |
|
//region_element.second=0; |
4033 |
|
//region.push_back(region_element); |
4034 |
|
|
4035 |
|
//cout << myData3.toString() << endl; |
4036 |
|
|
4037 |
|
//myData3.setSlice(&myData2, region); |
4038 |
|
|
4039 |
|
//cout << myData3.toString() << endl; |
4040 |
|
|
4041 |
|
//assert(myData3.getTagLookup().size()==0); |
4042 |
|
|
4043 |
|
//assert(myData3.getLength()==1); |
4044 |
|
|
4045 |
|
//myDataView = myData3.getDefaultValue(); |
4046 |
|
//assert(!myDataView.isEmpty()); |
4047 |
|
//assert(myDataView.getOffset()==0); |
4048 |
|
//assert(myDataView.getRank()==0); |
4049 |
|
//assert(myDataView.noValues()==1); |
4050 |
|
//assert(myDataView.getShape().size()==0); |
4051 |
|
//assert(myDataView()==3.0); |
4052 |
|
|
4053 |
} |
} |
4054 |
|
|
4055 |
} |
} |