25 #ifndef WREADERNIFTI_TEST_H
26 #define WREADERNIFTI_TEST_H
31 #include <cxxtest/TestSuite.h>
33 #include "../WReaderNIfTI.cpp"
34 #include "../WReaderNIfTI.h"
35 #include "core/common/WLogger.h"
36 #include "core/dataHandler/exceptions/WDHNoSuchFile.h"
72 TS_ASSERT_THROWS_NOTHING(
WReaderNIfTI( W_FIXTURE_PATH +
"scalar_signed_short.nii.gz" ) );
73 TS_ASSERT_THROWS_NOTHING(
WReaderNIfTI( W_FIXTURE_PATH +
"scalar_unsigned_char.nii.gz" ) );
74 TS_ASSERT_THROWS_NOTHING(
WReaderNIfTI( W_FIXTURE_PATH +
"scalar_float.nii.gz" ) );
75 TS_ASSERT_THROWS_NOTHING(
WReaderNIfTI( W_FIXTURE_PATH +
"vector_float.nii.gz" ) );
76 TS_ASSERT_THROWS_NOTHING(
WReaderNIfTI( W_FIXTURE_PATH +
"symmetric_2nd_order_tensor_float.nii.gz" ) );
77 TS_ASSERT_THROWS_NOTHING(
WReaderNIfTI( W_FIXTURE_PATH +
"vector_unsigned_char.nii.gz" ) );
85 WReaderNIfTI reader1( W_FIXTURE_PATH +
"scalar_signed_short.nii.gz" );
86 TS_ASSERT( reader1.
load() );
94 WReaderNIfTI reader2( W_FIXTURE_PATH +
"scalar_unsigned_char.nii.gz" );
95 TS_ASSERT( reader2.
load() );
103 WReaderNIfTI reader3( W_FIXTURE_PATH +
"scalar_float.nii.gz" );
104 TS_ASSERT( reader3.
load() );
112 WReaderNIfTI reader4( W_FIXTURE_PATH +
"vector_float.nii.gz" );
113 TS_ASSERT( reader4.
load() );
121 WReaderNIfTI reader5( W_FIXTURE_PATH +
"symmetric_2nd_order_tensor_float.nii.gz" );
122 TS_ASSERT( reader5.
load() );
130 WReaderNIfTI reader6( W_FIXTURE_PATH +
"vector_unsigned_char.nii.gz" );
131 TS_ASSERT( reader6.
load() );
149 dummy.m[2][1] = 1.11;
150 dummy.m[2][2] = 1.12;
151 dummy.m[2][3] = 1.13;
152 dummy.m[3][0] = 1.14;
153 dummy.m[3][1] = 1.15;
154 dummy.m[3][2] = 1.16;
155 dummy.m[3][3] = 1.17;
158 WReaderNIfTI reader1( W_FIXTURE_PATH +
"scalar_signed_short.nii.gz" );
162 TS_ASSERT_EQUALS( result.
getNbRows(), 4 );
163 TS_ASSERT_EQUALS( result.
getNbCols(), 4 );
166 TS_ASSERT_DELTA( result( 0, 0 ), 1.1, delta );
167 TS_ASSERT_DELTA( result( 0, 1 ), 1.2, delta );
168 TS_ASSERT_DELTA( result( 0, 2 ), 1.3, delta );
169 TS_ASSERT_DELTA( result( 0, 3 ), 1.4, delta );
170 TS_ASSERT_DELTA( result( 1, 0 ), 1.5, delta );
171 TS_ASSERT_DELTA( result( 1, 1 ), 1.6, delta );
172 TS_ASSERT_DELTA( result( 1, 2 ), 1.7, delta );
173 TS_ASSERT_DELTA( result( 1, 3 ), 1.8, delta );
174 TS_ASSERT_DELTA( result( 2, 0 ), 1.9, delta );
175 TS_ASSERT_DELTA( result( 2, 1 ), 1.11, delta );
176 TS_ASSERT_DELTA( result( 2, 2 ), 1.12, delta );
177 TS_ASSERT_DELTA( result( 2, 3 ), 1.13, delta );
178 TS_ASSERT_DELTA( result( 3, 0 ), 1.14, delta );
179 TS_ASSERT_DELTA( result( 3, 1 ), 1.15, delta );
180 TS_ASSERT_DELTA( result( 3, 2 ), 1.16, delta );
181 TS_ASSERT_DELTA( result( 3, 3 ), 1.17, delta );
190 WReaderNIfTI reader1( W_FIXTURE_PATH +
"scalar_signed_short.nii.gz" );
192 const size_t nbVoxels = 10;
193 const size_t vDim = 3;
194 double* dataArray =
new double[nbVoxels * vDim];
196 for(
unsigned int voxId = 0; voxId < nbVoxels; ++voxId )
198 for(
unsigned int dim = 0; dim < vDim; ++dim )
200 unsigned int i = ( voxId * vDim + dim );
201 dataArray[i] = 1.1 * i;
204 std::shared_ptr< std::vector< double > > vec = reader1.
copyArray( dataArray, nbVoxels, vDim );
206 TS_ASSERT_EQUALS( vec->size(), nbVoxels * vDim );
208 double delta = 1e-12;
209 for(
unsigned int voxId = 0; voxId < nbVoxels; ++voxId )
211 for(
unsigned int dim = 0; dim < vDim; ++dim )
214 TS_ASSERT_DELTA( vec->at( voxId * vDim + dim ), dataArray[voxId + nbVoxels * dim], delta );
215 TS_ASSERT_DELTA( vec->at( voxId * vDim + dim ), 1.1 * ( voxId + nbVoxels * dim ), delta );
File not found exception.
static void startup(std::ostream &output=std::cout, LogLevel level=LL_DEBUG)
Create the first and only instance of the logger as it is a singleton.
size_t getNbRows() const
Get number of rows.
size_t getNbCols() const
Get number of columns.
test class the nifti reader class
void tearDown(void)
For each test the tidy up function.
void testInstantiation(void)
Test instantiation.
void testMatrixConversion(void)
Test conversion of nifti matrix to OW matrix.
void testLoading4(void)
Test if the loaded files are really loaded.
void setUp(void)
Per test initialization routines.
void testLoading6(void)
Test if the loaded files are really loaded.
void testLoading1(void)
Test if the loaded files are really loaded.
void testCopyArray(void)
Test the function copying an array into a vector.
void testLoading2(void)
Test if the loaded files are really loaded.
void testLoading5(void)
Test if the loaded files are really loaded.
void testInstantiationNonExisting(void)
Test instantiation with non existing file.
void testLoading3(void)
Test if the loaded files are really loaded.
Reader for the NIfTI file format.
WMatrix< double > convertMatrix(const mat44 &in)
This function converts a 4x4 matrix from the NIfTI libs into the format used by OpenWalnut.
std::shared_ptr< std::vector< T > > copyArray(const T *dataArray, const size_t countVoxels, const size_t vDim)
This function allows one to copy the data given as a T* by niftilibio into a std::vector< T >
virtual std::shared_ptr< WDataSet > load(DataSetType dataSetType=W_DATASET_NONE)
Loads the dataset.