15 #include "itkVector.h" 20 #include "vnl/vnl_math.h" 21 #include <vnl/vnl_vector_fixed_ref.h> 32 CPPUNIT_TEST_SUITE(mitkVectorTypeConversionTestSuite);
54 CPPUNIT_TEST_SUITE_END();
70 float epsDouble2Float;
83 template <
typename T1,
typename T2>
84 void TestForEquality(
const T1 &v1,
86 const std::string &v1Name,
87 const std::string &v2Name,
90 CPPUNIT_ASSERT_EQUAL_MESSAGE(
91 "\nAssigning " + v2Name +
" to " + v1Name +
":\n both are equal",
true,
EqualArray(v1, v2, 3,
eps));
95 void setUp(
void)
override 97 FillVector3D(originalValues, 1.123456789987, 2.789456321456, 3.123654789987456);
98 FillVector3D(valuesToCopy, 4.654789123321, 5.987456789321, 6.321654987789546);
100 epsDouble2Float = vnl_math::float_eps * 10.0;
103 void tearDown(
void)
override {}
108 TestForEquality(vector3D, valuesToCopy,
"mitk::Vector3D",
"double POD");
118 TestForEquality(podArray, vector3D,
"double POD",
"mitk::Vector3D");
121 void OneElement2Mitk(
void)
123 double twos[] = {2.0, 2.0, 2.0};
126 CPPUNIT_ASSERT_ASSERTION_PASS_MESSAGE(
"\n one values initializes all elements to this value",
132 itk::Vector<ScalarType, 3> itkVector = valuesToCopy;
136 TestForEquality(vector3D, itkVector,
"mitk::Vector3D",
"itk::Vector");
143 itk::Vector<ScalarType, 3> itkVector = vector3D;
145 TestForEquality(itkVector, vector3D,
"itk::Vector",
"mitk::Vector3D");
148 void Vnlfixed2Mitk(
void)
150 vnl_vector_fixed<ScalarType, 3> vnlVectorFixed(valuesToCopy);
154 TestForEquality(vector3D, vnlVectorFixed,
"mitk::Vector3D",
"vnl_vector_fixed<ScalarType>");
157 void Mitk2Vnlfixed(
void)
159 vnl_vector_fixed<ScalarType, 3> vnlVectorFixed(originalValues);
162 vnlVectorFixed = vector3D;
164 TestForEquality(vnlVectorFixed, vector3D,
"vnl_vector_fixed<ScalarType>",
"mitk::Vector3D");
169 vnl_vector<ScalarType> vnlVector(3);
170 vnlVector.set(valuesToCopy);
174 TestForEquality(vector3D, vnlVector,
"mitk::Vector3D",
"vnl_vector<ScalarType>");
179 vnl_vector<ScalarType> vnlVector(3);
180 vnlVector.set(originalValues);
183 vnlVector = vector3D;
185 TestForEquality(vnlVector, vector3D,
"vnl_vector<ScalarType>",
"mitk::Vector3D");
191 void Vnl2Mitk_WrongVnlVectorSize()
193 ScalarType largerValuesToCopy[] = {4.12345678910, 5.10987654321, 6.123456789132456, 7.123456987789456};
195 vnl_vector<ScalarType> vnlVector(4);
196 vnlVector.set(largerValuesToCopy);
201 void ToArray_DifferentType(
void)
204 for (
int var = 0; var < 3; ++var)
206 podArray[var] = originalValues[var];
212 TestForEquality(podArray, vector3D,
"float POD",
"mitk::Vector3D", epsDouble2Float);
215 void Fill_DifferentType(
void)
219 for (
int var = 0; var < 3; ++var)
221 podArray[var] = valuesToCopy[var];
226 TestForEquality(vector3D, podArray,
"mitk::Vector3D",
"float POD", epsDouble2Float);
235 TestForEquality(point3D, vector3D,
"mitk::Point3D",
"mitk::Vector3D");
bool EqualArray(TArrayType1 &arrayType1, TArrayType2 &arrayType2, int size, ScalarType eps=mitk::eps, bool verbose=false)
MITK_TEST_SUITE_REGISTRATION(mitkImageToItk)
#define MITK_TEST(TESTMETHOD)
Adds a test to the current test suite.
DataCollection - Class to facilitate loading/accessing structured data.
void FillVector3D(Tout &out, mitk::ScalarType x, mitk::ScalarType y, mitk::ScalarType z)
void FillVector(const ArrayType &array)
An object of this class represents an exception of MITK. Please don't instantiate exceptions manually...
Test fixture for parameterized tests.
MITKCORE_EXPORT const ScalarType eps
void ToArray(ArrayType array) const