3931 |
|
|
3932 |
DataArrayView::RegionType region; |
DataArrayView::RegionType region; |
3933 |
|
|
3934 |
|
myData2.getDefaultValue()()=1.0; |
3935 |
|
|
3936 |
myData1.setSlice(&myData2, region); |
myData1.setSlice(&myData2, region); |
3937 |
|
|
3938 |
//cout << myData1.toString() << endl; |
//cout << myData1.toString() << endl; |
3947 |
assert(myDataView.getRank()==0); |
assert(myDataView.getRank()==0); |
3948 |
assert(myDataView.noValues()==1); |
assert(myDataView.noValues()==1); |
3949 |
assert(myDataView.getShape().size()==0); |
assert(myDataView.getShape().size()==0); |
3950 |
assert(myDataView()==0.0); |
assert(myDataView()==1.0); |
3951 |
|
|
3952 |
} |
} |
3953 |
|
|
3967 |
viewData1[i]=i; |
viewData1[i]=i; |
3968 |
} |
} |
3969 |
DataArrayView myView1(viewData1,viewShape); |
DataArrayView myView1(viewData1,viewShape); |
3970 |
|
DataTagged myData1(keys,values,myView1,FunctionSpace()); |
3971 |
|
|
3972 |
DataArrayView::ValueType viewData2(3); |
DataArrayView::ValueType viewData2(3); |
3973 |
for (int i=0;i<viewShape[0];i++) { |
for (int i=0;i<viewShape[0];i++) { |
3974 |
viewData2[i]=i+3; |
viewData2[i]=i+3; |
3975 |
} |
} |
3976 |
DataArrayView myView2(viewData2,viewShape); |
DataArrayView myView2(viewData2,viewShape); |
|
|
|
|
DataTagged myData1(keys,values,myView1,FunctionSpace()); |
|
3977 |
DataTagged myData2(keys,values,myView2,FunctionSpace()); |
DataTagged myData2(keys,values,myView2,FunctionSpace()); |
3978 |
|
|
3979 |
// full slice |
// full slice |
4008 |
viewShape.push_back(1); |
viewShape.push_back(1); |
4009 |
|
|
4010 |
DataArrayView::ValueType viewData3(1); |
DataArrayView::ValueType viewData3(1); |
4011 |
viewData3[0]=0.0; |
viewData3[0]=6.0; |
4012 |
DataArrayView myView3(viewData3,viewShape); |
DataArrayView myView3(viewData3,viewShape); |
|
|
|
4013 |
DataTagged myData3(keys,values,myView3,FunctionSpace()); |
DataTagged myData3(keys,values,myView3,FunctionSpace()); |
4014 |
|
|
4015 |
region.clear(); |
region.clear(); |
4032 |
assert(myDataView.noValues()==3); |
assert(myDataView.noValues()==3); |
4033 |
assert(myDataView.getShape().size()==1); |
assert(myDataView.getShape().size()==1); |
4034 |
assert(myDataView(0)==3.0); |
assert(myDataView(0)==3.0); |
4035 |
assert(myDataView(1)==0.0); |
assert(myDataView(1)==6.0); |
4036 |
assert(myDataView(2)==5.0); |
assert(myDataView(2)==5.0); |
4037 |
|
|
4038 |
// scalar slice |
// scalar slice |
4039 |
|
|
4040 |
//region.clear(); |
region.clear(); |
4041 |
//region_element.first=0; |
region_element.first=0; |
4042 |
//region_element.second=0; |
region_element.second=0; |
4043 |
//region.push_back(region_element); |
region.push_back(region_element); |
4044 |
|
|
4045 |
|
DataTagged myData4; |
4046 |
|
myData4.getDefaultValue()()=7.0; |
4047 |
|
|
4048 |
|
myData1.setSlice(&myData4, region); |
4049 |
|
|
4050 |
//cout << myData3.toString() << endl; |
//cout << myData3.toString() << endl; |
4051 |
|
|
4052 |
//myData3.setSlice(&myData2, region); |
assert(myData1.getTagLookup().size()==0); |
4053 |
|
|
4054 |
//cout << myData3.toString() << endl; |
assert(myData1.getLength()==3); |
4055 |
|
|
4056 |
|
myDataView = myData1.getDefaultValue(); |
4057 |
|
assert(!myDataView.isEmpty()); |
4058 |
|
assert(myDataView.getOffset()==0); |
4059 |
|
assert(myDataView.getRank()==1); |
4060 |
|
assert(myDataView.noValues()==3); |
4061 |
|
assert(myDataView.getShape().size()==1); |
4062 |
|
assert(myDataView(0)==7.0); |
4063 |
|
assert(myDataView(1)==6.0); |
4064 |
|
assert(myDataView(2)==5.0); |
4065 |
|
|
4066 |
|
} |
4067 |
|
|
4068 |
|
{ |
4069 |
|
|
4070 |
|
cout << "\tTest slicing DataTagged with rank 3 default value only." << endl; |
4071 |
|
|
4072 |
|
DataTagged::TagListType keys; |
4073 |
|
|
4074 |
|
DataTagged::ValueListType values; |
4075 |
|
|
4076 |
|
DataArrayView::ShapeType viewShape; |
4077 |
|
viewShape.push_back(3); |
4078 |
|
viewShape.push_back(3); |
4079 |
|
viewShape.push_back(3); |
4080 |
|
|
4081 |
//assert(myData3.getTagLookup().size()==0); |
DataArrayView::ValueType viewData1(27); |
4082 |
|
for (int i=0;i<viewData1.size();i++) { |
4083 |
|
viewData1[i]=i; |
4084 |
|
} |
4085 |
|
DataArrayView myView1(viewData1,viewShape); |
4086 |
|
DataTagged myData1(keys,values,myView1,FunctionSpace()); |
4087 |
|
|
4088 |
//assert(myData3.getLength()==1); |
DataArrayView::ValueType viewData2(27); |
4089 |
|
for (int i=0;i<viewData2.size();i++) { |
4090 |
|
viewData2[i]=i+27; |
4091 |
|
} |
4092 |
|
DataArrayView myView2(viewData2,viewShape); |
4093 |
|
DataTagged myData2(keys,values,myView2,FunctionSpace()); |
4094 |
|
|
4095 |
|
// full slice |
4096 |
|
|
4097 |
|
std::pair<int, int> region_element; |
4098 |
|
region_element.first=0; |
4099 |
|
region_element.second=3; |
4100 |
|
DataArrayView::RegionType region; |
4101 |
|
region.push_back(region_element); |
4102 |
|
region.push_back(region_element); |
4103 |
|
region.push_back(region_element); |
4104 |
|
|
4105 |
|
myData1.setSlice(&myData2, region); |
4106 |
|
|
4107 |
//myDataView = myData3.getDefaultValue(); |
//cout << myData1.toString() << endl; |
4108 |
//assert(!myDataView.isEmpty()); |
|
4109 |
//assert(myDataView.getOffset()==0); |
assert(myData1.getTagLookup().size()==0); |
4110 |
//assert(myDataView.getRank()==0); |
|
4111 |
//assert(myDataView.noValues()==1); |
assert(myData1.getLength()==27); |
4112 |
//assert(myDataView.getShape().size()==0); |
|
4113 |
//assert(myDataView()==3.0); |
DataArrayView myDataView = myData1.getDefaultValue(); |
4114 |
|
assert(!myDataView.isEmpty()); |
4115 |
|
assert(myDataView.getOffset()==0); |
4116 |
|
assert(myDataView.getRank()==3); |
4117 |
|
assert(myDataView.noValues()==27); |
4118 |
|
assert(myDataView.getShape().size()==3); |
4119 |
|
|
4120 |
|
// rank 1 slice |
4121 |
|
|
4122 |
|
viewShape.clear(); |
4123 |
|
viewShape.push_back(3); |
4124 |
|
|
4125 |
|
DataArrayView::ValueType viewData3(3); |
4126 |
|
for (int i=0;i<viewData3.size();i++) { |
4127 |
|
viewData3[i]=i+60; |
4128 |
|
} |
4129 |
|
DataArrayView myView3(viewData3,viewShape); |
4130 |
|
DataTagged myData3(keys,values,myView3,FunctionSpace()); |
4131 |
|
|
4132 |
|
region.clear(); |
4133 |
|
region.push_back(region_element); |
4134 |
|
region_element.first=0; |
4135 |
|
region_element.second=0; |
4136 |
|
region.push_back(region_element); |
4137 |
|
region.push_back(region_element); |
4138 |
|
|
4139 |
|
myData1.setSlice(&myData3, region); |
4140 |
|
|
4141 |
|
//cout << myData1.toString() << endl; |
4142 |
|
|
4143 |
|
assert(myData1.getTagLookup().size()==0); |
4144 |
|
|
4145 |
|
assert(myData1.getLength()==27); |
4146 |
|
|
4147 |
|
myDataView = myData1.getDefaultValue(); |
4148 |
|
assert(!myDataView.isEmpty()); |
4149 |
|
assert(myDataView.getOffset()==0); |
4150 |
|
assert(myDataView.getRank()==3); |
4151 |
|
assert(myDataView.noValues()==27); |
4152 |
|
assert(myDataView.getShape().size()==3); |
4153 |
|
assert(myDataView(0,0,0)==60.0); |
4154 |
|
assert(myDataView(1,0,0)==61.0); |
4155 |
|
assert(myDataView(2,0,0)==62.0); |
4156 |
|
|
4157 |
|
// scalar slice |
4158 |
|
|
4159 |
|
region.clear(); |
4160 |
|
region_element.first=0; |
4161 |
|
region_element.second=0; |
4162 |
|
region.push_back(region_element); |
4163 |
|
region.push_back(region_element); |
4164 |
|
region.push_back(region_element); |
4165 |
|
|
4166 |
|
DataTagged myData4; |
4167 |
|
myData4.getDefaultValue()()=70.0; |
4168 |
|
|
4169 |
|
myData1.setSlice(&myData4, region); |
4170 |
|
|
4171 |
|
//cout << myData1.toString() << endl; |
4172 |
|
|
4173 |
|
assert(myData1.getTagLookup().size()==0); |
4174 |
|
|
4175 |
|
assert(myData1.getLength()==27); |
4176 |
|
|
4177 |
|
myDataView = myData1.getDefaultValue(); |
4178 |
|
assert(!myDataView.isEmpty()); |
4179 |
|
assert(myDataView.getOffset()==0); |
4180 |
|
assert(myDataView.getRank()==3); |
4181 |
|
assert(myDataView.noValues()==27); |
4182 |
|
assert(myDataView.getShape().size()==3); |
4183 |
|
assert(myDataView(0,0,0)==70.0); |
4184 |
|
|
4185 |
} |
} |
4186 |
|
|