5 #include <LadLutLoader.h> 72 double x,
double y,
double z,
73 double ex,
double ey,
double ez
80 double u1[3] = {0.79259392, 0.22645541, 0.56613852};
82 double u2[3] = {-0.440759, 0.000000, 0.897626};
84 double u3[3] = {-0.36999991, 0.46129036, -0.80641879};
88 std::string llPath =
testDir +
"spherical.txt";
90 std::shared_ptr<LadLut> ladlut = loader.
load(llPath);
95 ladlut->transformToLadLutDomain(u1[0], u1[1], u1[2], wx, wy, wz);
100 double g = ladlut->interpolate(u1[0], u1[1], u1[2]);
101 if(fabs(g-g1) >
eps)
return false;
104 g = ladlut->interpolate(wx, wy, wz);
105 if(fabs(g-g1) >
eps)
return false;
108 g = ladlut->interpolate(u2[0], u2[1], u2[2]);
109 if(fabs(g-g2) >
eps)
return false;
112 g = ladlut->interpolate(u3[0], u3[1], u3[2]);
113 if(fabs(g-g3) >
eps)
return false;
122 size_t indices[4] = {0, 1, 498, 499};
123 double expectedX[4] = {
124 1.000000, 0.999921, 0.999921, 1.000000
126 double expectedY[4] = {
127 0.000000, 0.000000, 0.000000, 0.000000
129 double expectedZ[4] = {
130 0.000000, 0.012591, -0.012591, -0.000000
132 double expectedG[4] = {
133 0.500000, 0.500040, 0.500040, 0.500000
137 for(
size_t i = 0 ; i < 4 ; i++){
138 size_t idx = indices[i];
140 double diffX = ladlut.
X[idx] - expectedX[i];
141 double diffY = ladlut.
Y[idx] - expectedY[i];
142 double diffZ = ladlut.
Z[idx] - expectedZ[i];
143 double diffG = ladlut.
G[idx] - expectedG[i];
145 if(diffX < -eps || diffX >
eps)
return false;
146 if(diffY < -eps || diffY > eps)
return false;
147 if(diffZ < -eps || diffZ > eps)
return false;
148 if(diffG < -eps || diffG > eps)
return false;
154 double x,
double y,
double z,
155 double ex,
double ey,
double ez
160 return xDiff > -
eps && xDiff <
eps &&
161 yDiff > -
eps && yDiff <
eps &&
162 zDiff > -
eps && zDiff <
eps;
std::vector< double > Y
Y component of normalized director vector for each record.
Definition: LadLut.h:45
Loader for Leaf Angle Distribution Look Up Tables.
Definition: LadLutLoader.h:10
bool run() override
Definition: LadLutTest.h:78
std::shared_ptr< LadLut > load(std::string const &path, std::string const separator=",")
Load LadLut from specified file.
Definition: LadLutLoader.cpp:8
bool validateTransformation(double x, double y, double z, double ex, double ey, double ez)
Validate a transformation.
Definition: LadLutTest.h:153
Leaf Angle Distribution Look-Up Table.
Definition: LadLut.h:13
BaseTest class.
Definition: BaseTest.h:19
std::vector< double > G
Function evaluation for each record.
Definition: LadLut.h:53
LadLutTest(std::string testDir="data/test/")
Leaf angle distribution look-up table test constructor.
Definition: LadLutTest.h:34
std::string testDir
Where required test files are stored. For LadLutTest it is required that a file named spherical...
Definition: LadLutTest.h:27
std::vector< double > X
X component of normalized director vector for each record.
Definition: LadLut.h:41
double eps
Decimal precision for validation purposes.
Definition: LadLutTest.h:21
Test look-up table for leaf angle distribution.
Definition: LadLutTest.h:14
bool validateLadLut(LadLut const &ladlut)
Validate given leaf angle distribution look-up table.
Definition: LadLutTest.h:120
std::vector< double > Z
Z component of normalized director vector for each record.
Definition: LadLut.h:49