25 #ifndef WVALUESET_TEST_H
26 #define WVALUESET_TEST_H
32 #include <cxxtest/TestSuite.h>
34 #include "../WDataHandlerEnums.h"
35 #include "../WValueSet.h"
48 double a[2] = { 0.0, 3.1415 };
49 const std::shared_ptr< std::vector< double > > v =
50 std::shared_ptr< std::vector< double > >(
51 new std::vector< double >( a, a +
sizeof( a ) /
sizeof(
double ) ) );
60 int a[4] = { 0, -5, 1, 2 };
61 const std::shared_ptr< std::vector< int8_t > > v =
62 std::shared_ptr< std::vector< int8_t > >(
63 new std::vector< int8_t >( a, a +
sizeof( a ) /
sizeof(
int ) ) );
65 TS_ASSERT_EQUALS( first.size(), 4 );
67 TS_ASSERT_EQUALS( second.
size(), 2 );
69 TS_ASSERT_EQUALS( third.
size(), 1 );
78 int8_t a[4] = { 0, -5, 1, 2 };
79 const std::shared_ptr< std::vector< int8_t > > v =
80 std::shared_ptr< std::vector< int8_t > >(
81 new std::vector< int8_t >( a, a +
sizeof( a ) /
sizeof( int8_t ) ) );
83 TS_ASSERT_EQUALS( first.rawSize(), 4 );
85 TS_ASSERT_EQUALS( first.rawSize(), 4 );
93 int8_t a[4] = { 0, -5, 1, 2 };
94 const std::shared_ptr< std::vector< int8_t > > v =
95 std::shared_ptr< std::vector< int8_t > >(
96 new std::vector< int8_t >( a, a +
sizeof( a ) /
sizeof( int8_t ) ) );
98 TS_ASSERT_EQUALS( set.getScalar( 0 ), a[0] );
99 TS_ASSERT_EQUALS( set.getScalar( 1 ), a[1] );
100 TS_ASSERT_EQUALS( set.getScalar( 2 ), a[2] );
101 TS_ASSERT_EQUALS( set.getScalar( 3 ), a[3] );
109 double a[2] = { 0.0, 3.1415 };
110 const std::shared_ptr< std::vector< double > > v =
111 std::shared_ptr< std::vector< double > >(
112 new std::vector< double >( a, a +
sizeof( a ) /
sizeof(
double ) ) );
114 const double *
const b = valueSet.rawData();
115 TS_ASSERT_EQUALS( b[0], 0.0 );
116 TS_ASSERT_EQUALS( b[1], 3.1415 );
124 int8_t a[6] = { 1, 2, 3, 4, 5, 6 };
127 const std::shared_ptr< std::vector< int8_t > > v =
128 std::shared_ptr< std::vector< int8_t > >(
129 new std::vector< int8_t >( a, a +
sizeof( a ) /
sizeof( int8_t ) ) );
133 for( std::size_t idx = 0; idx < v->size()/dim; idx++ )
136 for( std::size_t i = 0; i < dim; i++ ) currentWValue[ i ] = ( *v )[ idx*dim + i ];
137 TS_ASSERT_EQUALS( set.getWValue( idx ), currentWValue );
138 TS_ASSERT_EQUALS( set.getWValue( idx ).size(), dim );
142 TS_ASSERT_THROWS_ANYTHING( set.getWValue( v->size() ) );
143 TS_ASSERT_THROWS_ANYTHING( set.getWValue( v->size()*2 ) );
147 TS_ASSERT_THROWS_ANYTHING( set2.
getWValue( 0 ) );
155 int8_t a[4] = { 0, -5, 1, 2 };
156 const std::shared_ptr< std::vector< int8_t > > v =
157 std::shared_ptr< std::vector< int8_t > >(
158 new std::vector< int8_t >( a, a +
sizeof( a ) /
sizeof( int8_t ) ) );
160 TS_ASSERT_THROWS_NOTHING( set.getSubArray( 0, 2 ) );
161 TS_ASSERT_THROWS_NOTHING( set.getSubArray( 3, 1 ) );
162 TS_ASSERT_THROWS( set.getSubArray( 4, 1 ),
const WException& );
163 TS_ASSERT_THROWS( set.getSubArray( 3, 2 ),
const WException& );
164 TS_ASSERT_THROWS( set.getSubArray( 2, 0 ),
const WException& );
172 int8_t a[ 8 ] = { 0, -5, 1, 2, -27, 6, 29, 8 };
173 const std::shared_ptr< std::vector< int8_t > > v =
174 std::shared_ptr< std::vector< int8_t > >(
175 new std::vector< int8_t >( a, a +
sizeof( a ) /
sizeof( int8_t ) ) );
181 TS_ASSERT_THROWS_NOTHING( s[ 0 ] );
182 TS_ASSERT_THROWS_NOTHING( s[ 1 ] );
183 TS_ASSERT_THROWS_NOTHING( s[ 2 ] );
184 TS_ASSERT_THROWS_NOTHING( s[ 100 ] );
186 TS_ASSERT_EQUALS( s[ 0 ], 0 );
187 TS_ASSERT_EQUALS( s[ 1 ], -5 );
188 TS_ASSERT_EQUALS( s[ 2 ], 0 );
189 TS_ASSERT_EQUALS( s[ 100 ], 0 );
194 TS_ASSERT_THROWS_NOTHING( s[ 0 ] );
195 TS_ASSERT_THROWS_NOTHING( s[ 1 ] );
196 TS_ASSERT_THROWS_NOTHING( s[ 2 ] );
197 TS_ASSERT_THROWS_NOTHING( s[ 100 ] );
199 TS_ASSERT_EQUALS( s[ 0 ], -5 );
200 TS_ASSERT_EQUALS( s[ 1 ], 1 );
201 TS_ASSERT_EQUALS( s[ 2 ], 2 );
202 TS_ASSERT_EQUALS( s[ 100 ], -5 );
207 TS_ASSERT_THROWS_NOTHING( s[ 0 ] );
208 TS_ASSERT_THROWS_NOTHING( s[ 1 ] );
209 TS_ASSERT_THROWS_NOTHING( s[ 2 ] );
210 TS_ASSERT_THROWS_NOTHING( s[ 100 ] );
212 TS_ASSERT_EQUALS( s[ 0 ], 6 );
213 TS_ASSERT_EQUALS( s[ 1 ], 29 );
214 TS_ASSERT_EQUALS( s[ 2 ], 8 );
215 TS_ASSERT_EQUALS( s[ 100 ], 6 );
UnitTests the WValueSet class.
void testReadOnlyRawAccess(void)
Raw Access should provide data access to the underlying array.
void testSubArrayInstantiation()
A subarray should never exceed the valuesets boundaries and should not have a length of 0.
void testRawSize(void)
The raw size is the size of the number of integral elements inside this ValueSet.
void testSubArrayAccess()
A subarray should return the correct elements.
void testGetScalar(void)
This function should return the i-th value if the value set is scalar.
void testGetWValue(void)
This function should return the i-th WValue with of the used dimension (prerequisite the ValueSet has...
void testInstantiation(void)
An instantiation should never throw an exception.
void testGetNumberOfValues(void)
The number of values retrieved is correct.
A helper class granting safe access to a certain part of the valueset.
Base Class for all value set types.
virtual size_t size() const
WValue< T > getWValue(size_t index) const
Get the i'th WValue with the dimension of WValueSet.
Base class for all higher level values like tensors, vectors, matrices and so on.