25 #ifndef WTHREADEDPERVOXELOPERATION_TEST_H
26 #define WTHREADEDPERVOXELOPERATION_TEST_H
30 #include <cxxtest/TestSuite.h>
32 #include "../../common/WThreadedFunction.h"
33 #include "../../common/WLogger.h"
34 #include "../WDataHandlerEnums.h"
35 #include "../WDataSetSingle.h"
36 #include "../WThreadedPerVoxelOperation.h"
74 TS_ASSERT_THROWS(
TPVO t( boost::shared_ptr< WDataSetSingle >(),
77 TS_ASSERT_THROWS(
TPVO t( boost::shared_ptr< WDataSetSingle >(
new WDataSetSingle( ds->getValueSet(),
78 boost::shared_ptr< WGrid >() ) ),
80 TS_ASSERT_THROWS(
TPVO t( boost::shared_ptr< WDataSetSingle >(
new WDataSetSingle( boost::shared_ptr< WValueSetBase >(),
88 TS_ASSERT_EQUALS( ds->getGrid(), t.
m_grid );
106 TS_ASSERT_THROWS_NOTHING( f.
run() );
107 TS_ASSERT_THROWS_NOTHING( f.
wait() );
111 boost::shared_ptr< WDataSetSingle > res = t->getResult();
118 -28.0f, 13.0f, -44.0f,
125 TS_ASSERT( res->getValueSet() );
126 TS_ASSERT_EQUALS( res->getGrid(), ds->getGrid() );
127 TS_ASSERT_EQUALS( res->getValueSet()->dimension(), 3 );
128 TS_ASSERT_EQUALS( res->getValueSet()->order(), 1 );
129 TS_ASSERT_EQUALS( res->getValueSet()->size(), 8 );
131 boost::shared_ptr< WValueSet< float > > vs = boost::shared_dynamic_cast<
WValueSet< float > >( res->getValueSet() );
134 TS_ASSERT( vs->rawData() );
135 TS_ASSERT_EQUALS( vs->rawDataVectorPointer()->size(), 24 );
136 TS_ASSERT_SAME_DATA( vs->rawData(), shouldBe, 8 * 3 *
sizeof( float ) );
149 o[ 0 ] =
static_cast< float >( a[ 1 ] );
150 o[ 1 ] =
static_cast< float >( a[ 0 ] + 1 );
151 o[ 2 ] =
static_cast< float >( a[ 0 ] + 2 * a[ 1 ] );
162 int a[] = { 1, 2, 3, -5, 7, 8, 2, -4, 12, -28, 3, 3, 4, -4, -5, 2 };
163 boost::shared_ptr< std::vector< int > > v = boost::shared_ptr< std::vector< int > >(
new std::vector< int >( a, a + 16 ) );
165 boost::shared_ptr< ValueSetType > vs(
new ValueSetType( 1, 2, v, r ) );
166 boost::shared_ptr< WGridRegular3D > g(
new WGridRegular3D( 2, 2, 2 ) );
167 return boost::shared_ptr< WDataSetSingle >(
new WDataSetSingle( vs, g ) );
193 #endif // WTHREADEDPERVOXELOPERATION_TEST_H