27 #include <vtkDebugLeaks.h> 35 CPPUNIT_TEST_SUITE(mitkPointSetLocaleTestSuite);
37 MITK_TEST(TestIfGermanLocaleUsed_Success);
39 CPPUNIT_TEST_SUITE_END();
43 StringList m_AllLocales;
52 bool ChangeLocale(
const std::string &locale)
56 MITK_TEST_OUTPUT(<<
"\n** Changing locale from " << setlocale(LC_ALL,
nullptr) <<
" to '" << locale <<
"'");
57 setlocale(LC_ALL, locale.c_str());
59 std::locale l(locale.c_str());
71 void ReaderLocaleTest(
mitk::Point3D &refPoint, std::string filename)
75 m_PointSet = mitk::IOUtil::Load<mitk::PointSet>(filename);
77 if (m_PointSet->GetPointIfExists(0, &m_Point))
79 CPPUNIT_ASSERT_MESSAGE(
"read x correct", fabs(refPoint[0] - m_Point[0]) < 0.00001);
80 CPPUNIT_ASSERT_MESSAGE(
"read y correct", fabs(refPoint[1] - m_Point[1]) < 0.00001);
81 CPPUNIT_ASSERT_MESSAGE(
"read z correct", fabs(refPoint[2] - m_Point[2]) < 0.00001);
90 void WriterLocaleTest(
mitk::Point3D &refPoint, std::string filename)
95 m_RefPointSet->InsertPoint(0, refPoint);
102 std::ifstream stream(tmpFilePath.c_str());
105 std::ifstream refStream(filename.c_str());
107 CPPUNIT_ASSERT_MESSAGE(
"Read reference point set", refStream);
108 CPPUNIT_ASSERT_MESSAGE(
"Read point set", stream);
111 if (stream.is_open() && refStream.is_open())
113 std::string streamLine;
114 std::string refStreamLine;
115 while (!stream.eof() && !refStream.eof())
117 getline(stream, streamLine);
118 getline(refStream, refStreamLine);
119 if (streamLine.compare(refStreamLine) != 0)
128 CPPUNIT_ASSERT_MESSAGE(
"Write point set correct", !differ);
132 void setUp()
override 137 m_AllLocales.push_back(
"de_DE");
138 m_AllLocales.push_back(
"de_DE.utf8");
139 m_AllLocales.push_back(
"de_DE.UTF-8");
140 m_AllLocales.push_back(
"de_DE@euro");
141 m_AllLocales.push_back(
"German_Germany");
143 m_RefPoint[0] = 32.2946;
144 m_RefPoint[1] = -17.7359;
145 m_RefPoint[2] = 29.6502;
148 void tearDown()
override 154 m_AllLocales.clear();
157 void TestIfGermanLocaleUsed_Success()
160 m_RefPointSet->SetPoint(0, m_RefPoint);
164 #if defined(__APPLE__) || defined(MACOSX) 165 m_AllLocales.push_back(
"C");
171 MITK_INFO <<
"Reference PointSet in " << referenceFilePath;
176 unsigned int numberOfTestedGermanLocales(0);
177 for (
auto iter = m_AllLocales.begin(); iter != m_AllLocales.end(); ++iter)
179 if (ChangeLocale(*iter))
181 ++numberOfTestedGermanLocales;
182 WriterLocaleTest(m_RefPoint, referenceFilePath);
183 ReaderLocaleTest(m_RefPoint, referenceFilePath);
187 if (numberOfTestedGermanLocales == 0)
MITK_TEST_SUITE_REGISTRATION(mitkImageToItk)
#define MITK_TEST(TESTMETHOD)
Adds a test to the current test suite.
#define MITK_TEST_OUTPUT(x)
Output some text.
#define MITK_TEST_FAILED_MSG(MSG)
Fail and finish test with message MSG.
Test fixture for parameterized tests.
std::vector< std::string > StringList
static void Save(const mitk::BaseData *data, const std::string &path, bool setPathProperty=false)
Save a mitk::BaseData instance.
static std::string CreateTemporaryFile(std::ofstream &tmpStream, const std::string &templateName="XXXXXX", std::string path=std::string())