Mercurial > hg > orthanc
comparison UnitTestsSources/DicomMapTests.cpp @ 2410:3590c936e56f
parsing numbers in DicomValue
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 29 Sep 2017 10:13:52 +0200 |
parents | 7284093111b0 |
children | cad393b41bc3 |
comparison
equal
deleted
inserted
replaced
2409:e4045b3c9772 | 2410:3590c936e56f |
---|---|
218 TestModule(ResourceType_Patient, DicomModule_Patient); | 218 TestModule(ResourceType_Patient, DicomModule_Patient); |
219 TestModule(ResourceType_Study, DicomModule_Study); | 219 TestModule(ResourceType_Study, DicomModule_Study); |
220 TestModule(ResourceType_Series, DicomModule_Series); // TODO | 220 TestModule(ResourceType_Series, DicomModule_Series); // TODO |
221 TestModule(ResourceType_Instance, DicomModule_Instance); | 221 TestModule(ResourceType_Instance, DicomModule_Instance); |
222 } | 222 } |
223 | |
224 | |
225 TEST(DicomMap, Parse) | |
226 { | |
227 DicomMap m; | |
228 float f; | |
229 double d; | |
230 int32_t i; | |
231 int64_t j; | |
232 uint32_t k; | |
233 uint64_t l; | |
234 | |
235 m.SetValue(DICOM_TAG_PATIENT_NAME, " ", false); // Empty value | |
236 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseFloat(f)); | |
237 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseDouble(d)); | |
238 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseInteger32(i)); | |
239 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseInteger64(j)); | |
240 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger32(k)); | |
241 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger64(l)); | |
242 | |
243 m.SetValue(DICOM_TAG_PATIENT_NAME, "0", true); // Binary value | |
244 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseFloat(f)); | |
245 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseDouble(d)); | |
246 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseInteger32(i)); | |
247 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseInteger64(j)); | |
248 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger32(k)); | |
249 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger64(l)); | |
250 | |
251 // 2**31-1 | |
252 m.SetValue(DICOM_TAG_PATIENT_NAME, "2147483647", false); | |
253 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseFloat(f)); | |
254 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseDouble(d)); | |
255 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseInteger32(i)); | |
256 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseInteger64(j)); | |
257 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger32(k)); | |
258 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger64(l)); | |
259 ASSERT_FLOAT_EQ(2147483647.0f, f); | |
260 ASSERT_DOUBLE_EQ(2147483647.0, d); | |
261 ASSERT_EQ(2147483647, i); | |
262 ASSERT_EQ(2147483647, j); | |
263 ASSERT_EQ(2147483647u, k); | |
264 ASSERT_EQ(2147483647u, l); | |
265 | |
266 // 2**31 | |
267 m.SetValue(DICOM_TAG_PATIENT_NAME, "2147483648", false); | |
268 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseFloat(f)); | |
269 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseDouble(d)); | |
270 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseInteger32(i)); | |
271 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseInteger64(j)); | |
272 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger32(k)); | |
273 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger64(l)); | |
274 ASSERT_FLOAT_EQ(2147483648.0f, f); | |
275 ASSERT_DOUBLE_EQ(2147483648.0, d); | |
276 ASSERT_EQ(2147483648, j); | |
277 ASSERT_EQ(2147483648u, k); | |
278 ASSERT_EQ(2147483648u, l); | |
279 | |
280 // 2**32-1 | |
281 m.SetValue(DICOM_TAG_PATIENT_NAME, "4294967295", false); | |
282 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseFloat(f)); | |
283 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseDouble(d)); | |
284 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseInteger32(i)); | |
285 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseInteger64(j)); | |
286 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger32(k)); | |
287 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger64(l)); | |
288 ASSERT_FLOAT_EQ(4294967295.0f, f); | |
289 ASSERT_DOUBLE_EQ(4294967295.0, d); | |
290 ASSERT_EQ(4294967295, j); | |
291 ASSERT_EQ(4294967295u, k); | |
292 ASSERT_EQ(4294967295u, l); | |
293 | |
294 // 2**32 | |
295 m.SetValue(DICOM_TAG_PATIENT_NAME, "4294967296", false); | |
296 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseFloat(f)); | |
297 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseDouble(d)); | |
298 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseInteger32(i)); | |
299 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseInteger64(j)); | |
300 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger32(k)); | |
301 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger64(l)); | |
302 ASSERT_FLOAT_EQ(4294967296.0f, f); | |
303 ASSERT_DOUBLE_EQ(4294967296.0, d); | |
304 ASSERT_EQ(4294967296, j); | |
305 ASSERT_EQ(4294967296u, l); | |
306 | |
307 m.SetValue(DICOM_TAG_PATIENT_NAME, "-1", false); | |
308 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseFloat(f)); | |
309 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseDouble(d)); | |
310 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseInteger32(i)); | |
311 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseInteger64(j)); | |
312 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger32(k)); | |
313 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger64(l)); | |
314 ASSERT_FLOAT_EQ(-1.0f, f); | |
315 ASSERT_DOUBLE_EQ(-1.0, d); | |
316 ASSERT_EQ(-1, i); | |
317 ASSERT_EQ(-1, j); | |
318 | |
319 // -2**31 | |
320 m.SetValue(DICOM_TAG_PATIENT_NAME, "-2147483648", false); | |
321 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseFloat(f)); | |
322 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseDouble(d)); | |
323 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseInteger32(i)); | |
324 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseInteger64(j)); | |
325 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger32(k)); | |
326 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger64(l)); | |
327 ASSERT_FLOAT_EQ(-2147483648.0f, f); | |
328 ASSERT_DOUBLE_EQ(-2147483648.0, d); | |
329 ASSERT_EQ(-2147483648, i); | |
330 ASSERT_EQ(-2147483648, j); | |
331 | |
332 // -2**31 - 1 | |
333 m.SetValue(DICOM_TAG_PATIENT_NAME, "-2147483649", false); | |
334 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseFloat(f)); | |
335 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseDouble(d)); | |
336 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseInteger32(i)); | |
337 ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseInteger64(j)); | |
338 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger32(k)); | |
339 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger64(l)); | |
340 ASSERT_FLOAT_EQ(-2147483649.0f, f); | |
341 ASSERT_DOUBLE_EQ(-2147483649.0, d); | |
342 ASSERT_EQ(-2147483649, j); | |
343 } |