Mercurial > hg > orthanc-tests
comparison Plugins/WSI/Run.py @ 569:201e69006cff
WSI: added test_iiif
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 13 Jul 2023 13:33:19 +0200 |
parents | 6399d3a1cd30 |
children | 9d41b7f18be8 |
comparison
equal
deleted
inserted
replaced
568:6399d3a1cd30 | 569:201e69006cff |
---|---|
434 | 434 |
435 TestTransferSyntax(s, '1.2.840.10008.1.2.4.90') | 435 TestTransferSyntax(s, '1.2.840.10008.1.2.4.90') |
436 TestDefaultAccept(s, 'PNG') | 436 TestDefaultAccept(s, 'PNG') |
437 TestForceAccept(s) | 437 TestForceAccept(s) |
438 | 438 |
439 def test_iiif(self): | |
440 CallDicomizer([ GetDatabasePath('LenaGrayscale.png'), # Image is 512x512 | |
441 '--levels=3', '--tile-width=128', '--tile-height=128' ]) | |
442 | |
443 self.assertEqual(3, len(DoGet(ORTHANC, '/instances'))) | |
444 | |
445 s = DoGet(ORTHANC, '/series') | |
446 self.assertEqual(1, len(s)) | |
447 | |
448 uri = '/wsi/iiif/tiles/%s' % s[0] | |
449 info = DoGet(ORTHANC, '%s/info.json' % uri) | |
450 self.assertEqual('http://iiif.io/api/image/3/context.json', info['@context']) | |
451 self.assertEqual('http://iiif.io/api/image', info['protocol']) | |
452 self.assertEqual('http://localhost:8042%s' % uri, info['id']) | |
453 self.assertEqual('level0', info['profile']) | |
454 self.assertEqual('ImageService3', info['type']) | |
455 self.assertEqual(512, info['width']) | |
456 self.assertEqual(512, info['height']) | |
457 | |
458 self.assertEqual(3, len(info['sizes'])) | |
459 self.assertEqual(512, info['sizes'][0]['width']) | |
460 self.assertEqual(512, info['sizes'][0]['height']) | |
461 self.assertEqual(256, info['sizes'][1]['width']) | |
462 self.assertEqual(256, info['sizes'][1]['height']) | |
463 self.assertEqual(128, info['sizes'][2]['width']) | |
464 self.assertEqual(128, info['sizes'][2]['height']) | |
465 | |
466 self.assertEqual(1, len(info['tiles'])) | |
467 self.assertEqual(128, info['tiles'][0]['width']) | |
468 self.assertEqual(128, info['tiles'][0]['height']) | |
469 self.assertEqual([ 1, 2, 4 ], info['tiles'][0]['scaleFactors']) | |
470 | |
471 # The list of URIs below was generated by "orthanc-wsi/Resources/TestIIIFTiles.py" | |
472 | |
473 # Level 0 | |
474 GetImage(ORTHANC, '/%s/0,0,128,128/128,128/0/default.jpg' % uri) | |
475 GetImage(ORTHANC, '/%s/128,0,128,128/128,128/0/default.jpg' % uri) | |
476 GetImage(ORTHANC, '/%s/256,0,128,128/128,128/0/default.jpg' % uri) | |
477 GetImage(ORTHANC, '/%s/384,0,128,128/128,128/0/default.jpg' % uri) | |
478 GetImage(ORTHANC, '/%s/0,128,128,128/128,128/0/default.jpg' % uri) | |
479 GetImage(ORTHANC, '/%s/128,128,128,128/128,128/0/default.jpg' % uri) | |
480 GetImage(ORTHANC, '/%s/256,128,128,128/128,128/0/default.jpg' % uri) | |
481 GetImage(ORTHANC, '/%s/384,128,128,128/128,128/0/default.jpg' % uri) | |
482 GetImage(ORTHANC, '/%s/0,256,128,128/128,128/0/default.jpg' % uri) | |
483 GetImage(ORTHANC, '/%s/128,256,128,128/128,128/0/default.jpg' % uri) | |
484 GetImage(ORTHANC, '/%s/256,256,128,128/128,128/0/default.jpg' % uri) | |
485 GetImage(ORTHANC, '/%s/384,256,128,128/128,128/0/default.jpg' % uri) | |
486 GetImage(ORTHANC, '/%s/0,384,128,128/128,128/0/default.jpg' % uri) | |
487 GetImage(ORTHANC, '/%s/128,384,128,128/128,128/0/default.jpg' % uri) | |
488 GetImage(ORTHANC, '/%s/256,384,128,128/128,128/0/default.jpg' % uri) | |
489 GetImage(ORTHANC, '/%s/384,384,128,128/128,128/0/default.jpg' % uri) | |
490 | |
491 # Level 1 | |
492 GetImage(ORTHANC, '/%s/0,0,256,256/128,128/0/default.jpg' % uri) | |
493 GetImage(ORTHANC, '/%s/256,0,256,256/128,128/0/default.jpg' % uri) | |
494 GetImage(ORTHANC, '/%s/0,256,256,256/128,128/0/default.jpg' % uri) | |
495 GetImage(ORTHANC, '/%s/256,256,256,256/128,128/0/default.jpg' % uri) | |
496 | |
497 # Level 2 | |
498 i = GetImage(ORTHANC, '/%s/0,0,512,512/128,128/0/default.jpg' % uri) | |
499 self.assertEqual(128, i.width) | |
500 self.assertEqual(128, i.height) | |
501 | |
502 uri2 = '/wsi/iiif/series/%s/manifest.json' % s[0] | |
503 manifest = DoGet(ORTHANC, uri2) | |
504 self.assertEqual('http://iiif.io/api/presentation/3/context.json', manifest['@context']) | |
505 self.assertEqual('http://localhost:8042%s' % uri2, manifest['id']) | |
506 | |
507 self.assertEqual(1, len(manifest['items'])) | |
508 self.assertEqual(1, len(manifest['items'][0]['items'])) | |
509 self.assertEqual(1, len(manifest['items'][0]['items'][0]['items'])) | |
510 | |
511 self.assertEqual('Manifest', manifest['type']) | |
512 self.assertEqual('Canvas', manifest['items'][0]['type']) | |
513 self.assertEqual('AnnotationPage', manifest['items'][0]['items'][0]['type']) | |
514 self.assertEqual('Annotation', manifest['items'][0]['items'][0]['items'][0]['type']) | |
515 | |
516 self.assertEqual(512, manifest['items'][0]['width']) | |
517 self.assertEqual(512, manifest['items'][0]['height']) | |
518 | |
519 body = manifest['items'][0]['items'][0]['items'][0]['body'] | |
520 self.assertEqual(1, len(body['service'])) | |
521 self.assertEqual('image/jpeg', body['format']) | |
522 self.assertEqual('Image', body['type']) | |
523 self.assertEqual(512, body['width']) | |
524 self.assertEqual(512, body['height']) | |
525 self.assertEqual('level0', body['service'][0]['profile']) | |
526 self.assertEqual('ImageService3', body['service'][0]['type']) | |
527 self.assertEqual('http://localhost:8042%s' % uri, body['service'][0]['id']) | |
528 | |
529 | |
439 try: | 530 try: |
440 print('\nStarting the tests...') | 531 print('\nStarting the tests...') |
441 unittest.main(argv = [ sys.argv[0] ] + args.options) | 532 unittest.main(argv = [ sys.argv[0] ] + args.options) |
442 | 533 |
443 finally: | 534 finally: |