Mercurial > hg > orthanc-tests
comparison Plugins/WSI/Run.py @ 364:6fa8218cf8db
wsi: test_concatenation
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 13 Jan 2021 15:05:41 +0100 |
parents | 79ce0f7a9714 |
children | 27cb0b60f2d3 |
comparison
equal
deleted
inserted
replaced
363:79ce0f7a9714 | 364:6fa8218cf8db |
---|---|
164 self.assertEqual(1, len(pyramid['Sizes'])) | 164 self.assertEqual(1, len(pyramid['Sizes'])) |
165 self.assertEqual(1, len(pyramid['TilesCount'])) | 165 self.assertEqual(1, len(pyramid['TilesCount'])) |
166 self.assertEqual(1, pyramid['Resolutions'][0]) | 166 self.assertEqual(1, pyramid['Resolutions'][0]) |
167 self.assertEqual(512, pyramid['Sizes'][0][0]) | 167 self.assertEqual(512, pyramid['Sizes'][0][0]) |
168 self.assertEqual(512, pyramid['Sizes'][0][1]) | 168 self.assertEqual(512, pyramid['Sizes'][0][1]) |
169 self.assertEqual(512, pyramid['TileWidth']) | 169 self.assertEqual(1, len(pyramid['TilesSizes'])) |
170 self.assertEqual(512, pyramid['TileHeight']) | 170 self.assertEqual(2, len(pyramid['TilesSizes'][0])) |
171 self.assertEqual(512, pyramid['TilesSizes'][0][0]) | |
172 self.assertEqual(512, pyramid['TilesSizes'][0][1]) | |
171 self.assertEqual(512, pyramid['TotalWidth']) | 173 self.assertEqual(512, pyramid['TotalWidth']) |
172 self.assertEqual(512, pyramid['TotalHeight']) | 174 self.assertEqual(512, pyramid['TotalHeight']) |
173 self.assertEqual(1, pyramid['TilesCount'][0][0]) | 175 self.assertEqual(1, pyramid['TilesCount'][0][0]) |
174 self.assertEqual(1, pyramid['TilesCount'][0][1]) | 176 self.assertEqual(1, pyramid['TilesCount'][0][1]) |
175 | 177 |
197 pyramid = DoGet(ORTHANC, '/wsi/pyramids/%s' % s[0]) | 199 pyramid = DoGet(ORTHANC, '/wsi/pyramids/%s' % s[0]) |
198 self.assertEqual(s[0], pyramid['ID']) | 200 self.assertEqual(s[0], pyramid['ID']) |
199 self.assertEqual(4, len(pyramid['Resolutions'])) | 201 self.assertEqual(4, len(pyramid['Resolutions'])) |
200 self.assertEqual(4, len(pyramid['Sizes'])) | 202 self.assertEqual(4, len(pyramid['Sizes'])) |
201 self.assertEqual(4, len(pyramid['TilesCount'])) | 203 self.assertEqual(4, len(pyramid['TilesCount'])) |
204 self.assertEqual(4, len(pyramid['TilesSizes'])) | |
205 | |
202 self.assertEqual(1, pyramid['Resolutions'][0]) | 206 self.assertEqual(1, pyramid['Resolutions'][0]) |
203 self.assertEqual(2, pyramid['Resolutions'][1]) | 207 self.assertEqual(2, pyramid['Resolutions'][1]) |
204 self.assertEqual(4, pyramid['Resolutions'][2]) | 208 self.assertEqual(4, pyramid['Resolutions'][2]) |
205 self.assertEqual(8, pyramid['Resolutions'][3]) | 209 self.assertEqual(8, pyramid['Resolutions'][3]) |
206 self.assertEqual(512, pyramid['Sizes'][0][0]) | 210 self.assertEqual(512, pyramid['Sizes'][0][0]) |
209 self.assertEqual(256, pyramid['Sizes'][1][1]) | 213 self.assertEqual(256, pyramid['Sizes'][1][1]) |
210 self.assertEqual(128, pyramid['Sizes'][2][0]) | 214 self.assertEqual(128, pyramid['Sizes'][2][0]) |
211 self.assertEqual(128, pyramid['Sizes'][2][1]) | 215 self.assertEqual(128, pyramid['Sizes'][2][1]) |
212 self.assertEqual(64, pyramid['Sizes'][3][0]) | 216 self.assertEqual(64, pyramid['Sizes'][3][0]) |
213 self.assertEqual(64, pyramid['Sizes'][3][1]) | 217 self.assertEqual(64, pyramid['Sizes'][3][1]) |
214 self.assertEqual(64, pyramid['TileWidth']) | 218 for i in range(4): |
215 self.assertEqual(64, pyramid['TileHeight']) | 219 self.assertEqual(2, len(pyramid['TilesSizes'][i])) |
220 self.assertEqual(64, pyramid['TilesSizes'][i][0]) | |
221 self.assertEqual(64, pyramid['TilesSizes'][i][1]) | |
216 self.assertEqual(512, pyramid['TotalWidth']) | 222 self.assertEqual(512, pyramid['TotalWidth']) |
217 self.assertEqual(512, pyramid['TotalHeight']) | 223 self.assertEqual(512, pyramid['TotalHeight']) |
218 self.assertEqual(8, pyramid['TilesCount'][0][0]) | 224 self.assertEqual(8, pyramid['TilesCount'][0][0]) |
219 self.assertEqual(8, pyramid['TilesCount'][0][1]) | 225 self.assertEqual(8, pyramid['TilesCount'][0][1]) |
220 self.assertEqual(4, pyramid['TilesCount'][1][0]) | 226 self.assertEqual(4, pyramid['TilesCount'][1][0]) |
276 p = filter(lambda x: 'Photometric Interpretation' in x, tiff.splitlines()) | 282 p = filter(lambda x: 'Photometric Interpretation' in x, tiff.splitlines()) |
277 self.assertEqual(4, len(p)) | 283 self.assertEqual(4, len(p)) |
278 for j in range(4): | 284 for j in range(4): |
279 self.assertTrue('RGB' in p[j]) | 285 self.assertTrue('RGB' in p[j]) |
280 | 286 |
281 | 287 |
288 def test_concatenation(self): | |
289 # https://bugs.orthanc-server.com/show_bug.cgi?id=145 | |
290 CallDicomizer([ GetDatabasePath('LenaGrayscale.png'), '--levels=1', ]) | |
291 i = DoGet(ORTHANC, '/instances') | |
292 self.assertEqual(1, len(i)) | |
293 tags = DoGet(ORTHANC, '/instances/%s/tags?short' % i[0]) | |
294 self.assertTrue('0020,0242' in tags) # SOP Instance UID of Concatenation Source | |
295 self.assertTrue('0020,9161' in tags) # Concatenation UID | |
296 self.assertTrue('0020,9162' in tags) # In-concatenation Number | |
297 self.assertTrue('0020,9228' in tags) # Concatenation Frame Offset Number | |
298 self.assertEqual('1', tags['0020,9162']) | |
299 self.assertEqual('0', tags['0020,9228']) | |
300 | |
301 DropOrthanc(ORTHANC) | |
302 | |
303 # "--max-size" disables the concatenation | |
304 CallDicomizer([ GetDatabasePath('LenaGrayscale.png'), '--levels=1', '--max-size=0' ]) | |
305 i = DoGet(ORTHANC, '/instances') | |
306 self.assertEqual(1, len(i)) | |
307 tags = DoGet(ORTHANC, '/instances/%s/tags?short' % i[0]) | |
308 self.assertFalse('0020,0242' in tags) | |
309 self.assertFalse('0020,9161' in tags) | |
310 self.assertFalse('0020,9162' in tags) | |
311 self.assertFalse('0020,9228' in tags) | |
312 | |
313 DropOrthanc(ORTHANC) | |
314 | |
315 # This creates a series with 2 instances of roughly 1.5MB (= 2 frames x 512 x 512 x 3 (RGB24) + DICOM overhead) | |
316 CallDicomizer([ GetDatabasePath('WSI/Lena2x2.png'), '--levels=1', '--max-size=1', '--compression=none' ]) | |
317 i = DoGet(ORTHANC, '/instances') | |
318 self.assertEqual(2, len(i)) | |
319 t1 = DoGet(ORTHANC, '/instances/%s/tags?short' % i[0]) | |
320 t2 = DoGet(ORTHANC, '/instances/%s/tags?short' % i[1]) | |
321 self.assertTrue('0020,0242' in t1) | |
322 self.assertTrue('0020,9161' in t1) | |
323 self.assertTrue('0020,9162' in t1) | |
324 self.assertTrue('0020,9228' in t1) | |
325 self.assertEqual(t1['0020,0242'], t2['0020,0242']) | |
326 self.assertEqual(t1['0020,9161'], t2['0020,9161']) | |
327 if t1['0020,9162'] == '1': | |
328 self.assertEqual('1', t1['0020,9162']) | |
329 self.assertEqual('0', t1['0020,9228']) | |
330 self.assertEqual('2', t2['0020,9162']) | |
331 self.assertEqual('2', t2['0020,9228']) | |
332 else: | |
333 self.assertEqual('1', t2['0020,9162']) | |
334 self.assertEqual('0', t2['0020,9228']) | |
335 self.assertEqual('2', t1['0020,9162']) | |
336 self.assertEqual('2', t1['0020,9228']) | |
337 | |
282 try: | 338 try: |
283 print('\nStarting the tests...') | 339 print('\nStarting the tests...') |
284 unittest.main(argv = [ sys.argv[0] ] + args.options) | 340 unittest.main(argv = [ sys.argv[0] ] + args.options) |
285 | 341 |
286 finally: | 342 finally: |