comparison UnitTestsSources/SortedFramesTests.cpp @ 1599:73cd85d7da6a

SortedFrames::LookupSopInstanceUid()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 28 Oct 2020 10:55:45 +0100
parents 4fb8fdf03314
children 1704341bb96e
comparison
equal deleted inserted replaced
1598:8563ea5d8ae4 1599:73cd85d7da6a
90 tags.SetValue(Orthanc::DICOM_TAG_NUMBER_OF_FRAMES, "3", false); 90 tags.SetValue(Orthanc::DICOM_TAG_NUMBER_OF_FRAMES, "3", false);
91 f.AddInstance(tags); 91 f.AddInstance(tags);
92 tags.SetValue(Orthanc::DICOM_TAG_SOP_INSTANCE_UID, "sop2", false); 92 tags.SetValue(Orthanc::DICOM_TAG_SOP_INSTANCE_UID, "sop2", false);
93 tags.SetValue(Orthanc::DICOM_TAG_NUMBER_OF_FRAMES, "2", false); 93 tags.SetValue(Orthanc::DICOM_TAG_NUMBER_OF_FRAMES, "2", false);
94 f.AddInstance(tags); 94 f.AddInstance(tags);
95
96 size_t i;
97 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop1")); ASSERT_EQ(1u, i);
98 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop2")); ASSERT_EQ(2u, i);
99 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop3")); ASSERT_EQ(0u, i);
100 ASSERT_FALSE(f.LookupSopInstanceUid(i, "nope"));
95 101
96 f.Sort(); 102 f.Sort();
97 ASSERT_EQ(3u, f.GetInstancesCount()); 103 ASSERT_EQ(3u, f.GetInstancesCount());
98 ASSERT_EQ("sop3", f.GetSopInstanceUid(0)); 104 ASSERT_EQ("sop3", f.GetSopInstanceUid(0));
99 ASSERT_EQ("sop1", f.GetSopInstanceUid(1)); 105 ASSERT_EQ("sop1", f.GetSopInstanceUid(1));
103 ASSERT_EQ("sop1", f.GetFrameSopInstanceUid(1)); ASSERT_EQ(1u, f.GetFrameIndex(1)); 109 ASSERT_EQ("sop1", f.GetFrameSopInstanceUid(1)); ASSERT_EQ(1u, f.GetFrameIndex(1));
104 ASSERT_EQ("sop1", f.GetFrameSopInstanceUid(2)); ASSERT_EQ(2u, f.GetFrameIndex(2)); 110 ASSERT_EQ("sop1", f.GetFrameSopInstanceUid(2)); ASSERT_EQ(2u, f.GetFrameIndex(2));
105 ASSERT_EQ("sop2", f.GetFrameSopInstanceUid(3)); ASSERT_EQ(0u, f.GetFrameIndex(3)); 111 ASSERT_EQ("sop2", f.GetFrameSopInstanceUid(3)); ASSERT_EQ(0u, f.GetFrameIndex(3));
106 ASSERT_EQ("sop2", f.GetFrameSopInstanceUid(4)); ASSERT_EQ(1u, f.GetFrameIndex(4)); 112 ASSERT_EQ("sop2", f.GetFrameSopInstanceUid(4)); ASSERT_EQ(1u, f.GetFrameIndex(4));
107 ASSERT_EQ("sop3", f.GetFrameSopInstanceUid(5)); ASSERT_EQ(0u, f.GetFrameIndex(5)); 113 ASSERT_EQ("sop3", f.GetFrameSopInstanceUid(5)); ASSERT_EQ(0u, f.GetFrameIndex(5));
114
115 // The instances must not have been reordered, only the frames
116 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop1")); ASSERT_EQ(1u, i);
117 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop2")); ASSERT_EQ(2u, i);
118 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop3")); ASSERT_EQ(0u, i);
119 ASSERT_FALSE(f.LookupSopInstanceUid(i, "nope"));
108 } 120 }
109 121
110 122
111 TEST(SortedFrames, SortInstanceNumber) 123 TEST(SortedFrames, SortInstanceNumber)
112 { 124 {
171 f.AddInstance(tags); 183 f.AddInstance(tags);
172 tags.SetValue(Orthanc::DICOM_TAG_SOP_INSTANCE_UID, "sop4", false); 184 tags.SetValue(Orthanc::DICOM_TAG_SOP_INSTANCE_UID, "sop4", false);
173 tags.Remove(Orthanc::DICOM_TAG_IMAGE_INDEX); 185 tags.Remove(Orthanc::DICOM_TAG_IMAGE_INDEX);
174 tags.SetValue(Orthanc::DICOM_TAG_INSTANCE_NUMBER, "30", false); 186 tags.SetValue(Orthanc::DICOM_TAG_INSTANCE_NUMBER, "30", false);
175 f.AddInstance(tags); 187 f.AddInstance(tags);
176 188
177 f.Sort(); 189 f.Sort();
178 ASSERT_EQ(4u, f.GetInstancesCount()); 190 ASSERT_EQ(4u, f.GetInstancesCount());
179 ASSERT_EQ("sop1", f.GetSopInstanceUid(0)); 191 ASSERT_EQ("sop1", f.GetSopInstanceUid(0));
180 ASSERT_EQ("sop2", f.GetSopInstanceUid(1)); 192 ASSERT_EQ("sop2", f.GetSopInstanceUid(1));
181 ASSERT_EQ("sop3", f.GetSopInstanceUid(2)); 193 ASSERT_EQ("sop3", f.GetSopInstanceUid(2));