comparison UnitTestsSources/SortedFramesTests.cpp @ 1631:960bb5fcc440

SortedFrames::GetFrameGeometry()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 09 Nov 2020 18:49:08 +0100
parents b2941196cabf
children 4796fb60999e
comparison
equal deleted inserted replaced
1630:78509230f0d7 1631:960bb5fcc440
240 // First instance number, then image index 240 // First instance number, then image index
241 ASSERT_EQ("sop1", f.GetFrameSopInstanceUid(0)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(0)); 241 ASSERT_EQ("sop1", f.GetFrameSopInstanceUid(0)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(0));
242 ASSERT_EQ("sop4", f.GetFrameSopInstanceUid(1)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(1)); 242 ASSERT_EQ("sop4", f.GetFrameSopInstanceUid(1)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(1));
243 ASSERT_EQ("sop2", f.GetFrameSopInstanceUid(2)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(2)); 243 ASSERT_EQ("sop2", f.GetFrameSopInstanceUid(2)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(2));
244 ASSERT_EQ("sop3", f.GetFrameSopInstanceUid(3)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(3)); 244 ASSERT_EQ("sop3", f.GetFrameSopInstanceUid(3)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(3));
245 }
246
247
248 TEST(SortedFrames, FrameOffset)
249 {
250 Orthanc::DicomMap tags;
251 tags.SetValue(Orthanc::DICOM_TAG_STUDY_INSTANCE_UID, "study", false);
252 tags.SetValue(Orthanc::DICOM_TAG_SERIES_INSTANCE_UID, "series", false);
253 tags.SetValue(Orthanc::DICOM_TAG_SOP_INSTANCE_UID, "1.2.276.0.7230010.3.1.4.296485376.1.1568899779.944133", false);
254 tags.SetValue(Orthanc::DICOM_TAG_IMAGE_POSITION_PATIENT, "-350\\-145\\-985", false);
255 tags.SetValue(Orthanc::DICOM_TAG_IMAGE_ORIENTATION_PATIENT, "1\\0\\0\\0\\1\\0", false);
256 tags.SetValue(Orthanc::DICOM_TAG_NUMBER_OF_FRAMES, "2", false);
257
258 for (unsigned int i = 0; i < 3; i++)
259 {
260 tags.SetValue(Orthanc::DICOM_TAG_FRAME_INCREMENT_POINTER, i != 1 ? "3004,000c" : "nope", false);
261 tags.SetValue(Orthanc::DICOM_TAG_GRID_FRAME_OFFSET_VECTOR, i != 2 ? "8\\11" : "1\\2\\3", false);
262
263 OrthancStone::SortedFrames f;
264 f.AddInstance(tags);
265 f.Sort();
266
267 ASSERT_EQ(2u, f.GetFramesCount());
268 ASSERT_TRUE(f.GetFrameGeometry(0).IsValid());
269 ASSERT_TRUE(f.GetFrameGeometry(1).IsValid());
270 ASSERT_FLOAT_EQ(-350.0f, f.GetFrameGeometry(0).GetOrigin() [0]);
271 ASSERT_FLOAT_EQ(-145.0f, f.GetFrameGeometry(0).GetOrigin() [1]);
272 ASSERT_FLOAT_EQ(-350.0f, f.GetFrameGeometry(1).GetOrigin() [0]);
273 ASSERT_FLOAT_EQ(-145.0f, f.GetFrameGeometry(1).GetOrigin() [1]);
274
275 if (i == 0)
276 {
277 ASSERT_FLOAT_EQ(-985.0f + 8.0f, f.GetFrameGeometry(0).GetOrigin() [2]);
278 ASSERT_FLOAT_EQ(-985.0f + 11.0f, f.GetFrameGeometry(1).GetOrigin() [2]);
279 }
280 else
281 {
282 ASSERT_FLOAT_EQ(-985.0f, f.GetFrameGeometry(0).GetOrigin() [2]);
283 ASSERT_FLOAT_EQ(-985.0f, f.GetFrameGeometry(1).GetOrigin() [2]);
284 }
285 }
245 } 286 }
246 287
247 288
248 TEST(SortedFrames, Knix) // Created using "SortedFramesCreateTest.py" 289 TEST(SortedFrames, Knix) // Created using "SortedFramesCreateTest.py"
249 { 290 {