22 #include <gsl/gsl_matrix.h> 23 #include <gsl/gsl_vector.h> 24 #include <gsl/gsl_blas.h> 28 using std::numeric_limits;
38 const float FLOAT_SMALL=
39 sqrt(numeric_limits<float>::epsilon());
49 TEST(fabs(f-3.0*3.0*3.0*2.0 )< FLOAT_SMALL,
"getsum test");
50 TEST(fabs(a.count(1.0f)- 3.0*3.0*3.0) < FLOAT_SMALL,
"Count test");
62 TEST(xs == ys && ys == zs && zs == 3,
"resize tests");
67 f.setData(1,1,1,1.0f);
69 TEST(fabs(f.max() - 1.0f) < FLOAT_SMALL,
"Fill and data set");
71 f.resizeKeepData(2,2,2);
74 TEST(xs == ys && ys == zs && zs == 2,
"resizeKeepData");
75 TEST(f.max() == 1.0f,
"resize keep data");
81 for(
size_t ui=0;ui<8;ui++)
82 v.setData(ui&1, (ui & 2) >> 1, (ui &4)>>2, ui);
84 auto slice =
new float[4];
86 v.getSlice(2,0,slice);
87 for(
size_t ui=0;ui<4;ui++)
95 expResults[0]=0; expResults[1]=2;expResults[2]=4; expResults[3]=6;
96 v.getSlice(0,0,slice);
97 for(
size_t ui=0;ui<4;ui++)
99 ASSERT(slice[ui] == expResults[ui]);
103 v.getSlice(1,1,slice);
104 expResults[0]=2; expResults[1]=3;expResults[2]=6; expResults[3]=7;
105 for(
size_t ui=0;ui<4;ui++)
107 ASSERT(slice[ui] == expResults[ui]);
114 for(
size_t ui=0;ui<24;ui++)
117 slice =
new float[12];
119 v.getSlice(2,1,slice);
120 for(
size_t ui=0;ui<12;ui++)
136 v.setBounds(Point3D(0,0,0),Point3D(3,3,4));
137 for(
unsigned int ui=0;ui<3;ui++)
139 for(
unsigned int uj=0;uj<3;uj++)
141 v.setData(ui,uj,0,1);
142 v.setData(ui,uj,1,0);
143 v.setData(ui,uj,2,-2);
144 v.setData(ui,uj,3,-1);
149 Point3D p(1.5,1.5,0);
150 const unsigned int NSTEP=30;
151 for(
unsigned int ui=0;ui<NSTEP;ui++)
153 p[2] = (float)ui/(
float)NSTEP*4.0f;
155 v.getInterpolatedData(p,interpV);
157 TEST(interpV <= 1 && interpV >= -2,
"interp test");
166 TEST(basicTests(),
"basic voxel tests");
167 TEST(simpleMath(),
"voxel simple maths");
168 TEST(interpTests(),
"voxel simple maths");