Mercurial > hg > orthanc-stone
comparison UnitTestsSources/SortedFramesTests.cpp @ 1602:b2941196cabf
SortedFrames::LookupFrame()
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 28 Oct 2020 16:35:45 +0100 |
parents | 1704341bb96e |
children | 960bb5fcc440 |
comparison
equal
deleted
inserted
replaced
1601:1704341bb96e | 1602:b2941196cabf |
---|---|
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 | 95 |
96 size_t i; | 96 size_t i; |
97 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop3")); ASSERT_EQ(0u, i); | |
97 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop1")); ASSERT_EQ(1u, i); | 98 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, "sop2")); ASSERT_EQ(2u, i); |
99 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop3")); ASSERT_EQ(0u, i); | |
100 ASSERT_FALSE(f.LookupSopInstanceUid(i, "nope")); | 100 ASSERT_FALSE(f.LookupSopInstanceUid(i, "nope")); |
101 | 101 |
102 ASSERT_THROW(f.LookupFrame(i, "sop3", 0), Orthanc::OrthancException); // Not sorted yet | |
103 | |
102 f.Sort(); | 104 f.Sort(); |
103 ASSERT_EQ(3u, f.GetInstancesCount()); | 105 ASSERT_EQ(3u, f.GetInstancesCount()); |
104 ASSERT_EQ("sop3", f.GetSopInstanceUid(0)); | 106 ASSERT_EQ("sop3", f.GetSopInstanceUid(0)); |
105 ASSERT_EQ("sop1", f.GetSopInstanceUid(1)); | 107 ASSERT_EQ("sop1", f.GetSopInstanceUid(1)); |
106 ASSERT_EQ("sop2", f.GetSopInstanceUid(2)); | 108 ASSERT_EQ("sop2", f.GetSopInstanceUid(2)); |
115 // The instances must not have been reordered, only the frames | 117 // The instances must not have been reordered, only the frames |
116 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop1")); ASSERT_EQ(1u, i); | 118 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop1")); ASSERT_EQ(1u, i); |
117 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop2")); ASSERT_EQ(2u, i); | 119 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop2")); ASSERT_EQ(2u, i); |
118 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop3")); ASSERT_EQ(0u, i); | 120 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop3")); ASSERT_EQ(0u, i); |
119 ASSERT_FALSE(f.LookupSopInstanceUid(i, "nope")); | 121 ASSERT_FALSE(f.LookupSopInstanceUid(i, "nope")); |
122 | |
123 ASSERT_TRUE(f.LookupFrame(i, "sop1", 0)); ASSERT_EQ(0u, i); | |
124 ASSERT_TRUE(f.LookupFrame(i, "sop1", 1)); ASSERT_EQ(1u, i); | |
125 ASSERT_TRUE(f.LookupFrame(i, "sop1", 2)); ASSERT_EQ(2u, i); | |
126 ASSERT_TRUE(f.LookupFrame(i, "sop2", 0)); ASSERT_EQ(3u, i); | |
127 ASSERT_TRUE(f.LookupFrame(i, "sop2", 1)); ASSERT_EQ(4u, i); | |
128 ASSERT_TRUE(f.LookupFrame(i, "sop3", 0)); ASSERT_EQ(5u, i); | |
129 | |
130 ASSERT_FALSE(f.LookupFrame(i, "nope", 0)); | |
131 ASSERT_FALSE(f.LookupFrame(i, "sop1", 3)); | |
132 ASSERT_FALSE(f.LookupFrame(i, "sop2", 2)); | |
133 ASSERT_FALSE(f.LookupFrame(i, "sop3", 1)); | |
120 } | 134 } |
121 | 135 |
122 | 136 |
123 TEST(SortedFrames, SortInstanceNumber) | 137 TEST(SortedFrames, SortInstanceNumber) |
124 { | 138 { |
144 f.AddInstance(tags); | 158 f.AddInstance(tags); |
145 tags.SetValue(Orthanc::DICOM_TAG_SOP_INSTANCE_UID, "sop5", false); | 159 tags.SetValue(Orthanc::DICOM_TAG_SOP_INSTANCE_UID, "sop5", false); |
146 tags.SetValue(Orthanc::DICOM_TAG_INSTANCE_NUMBER, "10", false); | 160 tags.SetValue(Orthanc::DICOM_TAG_INSTANCE_NUMBER, "10", false); |
147 f.AddInstance(tags); | 161 f.AddInstance(tags); |
148 | 162 |
163 size_t i; | |
164 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop1")); ASSERT_EQ(0u, i); | |
165 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop2")); ASSERT_EQ(1u, i); | |
166 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop2a")); ASSERT_EQ(2u, i); | |
167 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop4")); ASSERT_EQ(3u, i); | |
168 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop3")); ASSERT_EQ(4u, i); | |
169 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop5")); ASSERT_EQ(5u, i); | |
170 ASSERT_FALSE(f.LookupSopInstanceUid(i, "nope")); | |
171 | |
172 ASSERT_THROW(f.LookupFrame(i, "sop1", 0), Orthanc::OrthancException); // Not sorted yet | |
173 | |
149 f.Sort(); | 174 f.Sort(); |
150 ASSERT_EQ(6u, f.GetInstancesCount()); | 175 ASSERT_EQ(6u, f.GetInstancesCount()); |
151 ASSERT_EQ("sop1", f.GetSopInstanceUid(0)); | 176 ASSERT_EQ("sop1", f.GetSopInstanceUid(0)); |
152 ASSERT_EQ("sop2", f.GetSopInstanceUid(1)); | 177 ASSERT_EQ("sop2", f.GetSopInstanceUid(1)); |
153 ASSERT_EQ("sop2a", f.GetSopInstanceUid(2)); | 178 ASSERT_EQ("sop2a", f.GetSopInstanceUid(2)); |
158 ASSERT_EQ("sop2", f.GetFrameSopInstanceUid(0)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(0)); | 183 ASSERT_EQ("sop2", f.GetFrameSopInstanceUid(0)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(0)); |
159 ASSERT_EQ("sop3", f.GetFrameSopInstanceUid(1)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(1)); | 184 ASSERT_EQ("sop3", f.GetFrameSopInstanceUid(1)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(1)); |
160 ASSERT_EQ("sop4", f.GetFrameSopInstanceUid(2)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(2)); | 185 ASSERT_EQ("sop4", f.GetFrameSopInstanceUid(2)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(2)); |
161 ASSERT_EQ("sop5", f.GetFrameSopInstanceUid(3)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(3)); | 186 ASSERT_EQ("sop5", f.GetFrameSopInstanceUid(3)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(3)); |
162 ASSERT_EQ("sop1", f.GetFrameSopInstanceUid(4)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(4)); | 187 ASSERT_EQ("sop1", f.GetFrameSopInstanceUid(4)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(4)); |
163 ASSERT_EQ("sop2a", f.GetFrameSopInstanceUid(5)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(5)); | 188 ASSERT_EQ("sop2a", f.GetFrameSopInstanceUid(5)); ASSERT_EQ(0u, f.GetFrameNumberInInstance(5)); |
189 | |
190 // The instances must not have been reordered, only the frames | |
191 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop1")); ASSERT_EQ(0u, i); | |
192 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop2")); ASSERT_EQ(1u, i); | |
193 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop2a")); ASSERT_EQ(2u, i); | |
194 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop4")); ASSERT_EQ(3u, i); | |
195 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop3")); ASSERT_EQ(4u, i); | |
196 ASSERT_TRUE(f.LookupSopInstanceUid(i, "sop5")); ASSERT_EQ(5u, i); | |
197 ASSERT_FALSE(f.LookupSopInstanceUid(i, "nope")); | |
198 | |
199 ASSERT_TRUE(f.LookupFrame(i, "sop2", 0)); ASSERT_EQ(0u, i); | |
200 ASSERT_TRUE(f.LookupFrame(i, "sop3", 0)); ASSERT_EQ(1u, i); | |
201 ASSERT_TRUE(f.LookupFrame(i, "sop4", 0)); ASSERT_EQ(2u, i); | |
202 ASSERT_TRUE(f.LookupFrame(i, "sop5", 0)); ASSERT_EQ(3u, i); | |
203 ASSERT_TRUE(f.LookupFrame(i, "sop1", 0)); ASSERT_EQ(4u, i); | |
204 ASSERT_TRUE(f.LookupFrame(i, "sop2a", 0)); ASSERT_EQ(5u, i); | |
205 | |
206 ASSERT_FALSE(f.LookupFrame(i, "nope", 0)); | |
207 ASSERT_FALSE(f.LookupFrame(i, "sop1", 1)); | |
164 } | 208 } |
165 | 209 |
166 | 210 |
167 TEST(SortedFrames, SortInstanceNumberAndImageIndex) | 211 TEST(SortedFrames, SortInstanceNumberAndImageIndex) |
168 { | 212 { |