comparison Tests/Tests.py @ 441:21a45ddc9256

expanded test_numpy
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sat, 27 Nov 2021 12:26:43 +0100
parents 3a5222eb4c93
children af57603438b3
comparison
equal deleted inserted replaced
440:3a5222eb4c93 441:21a45ddc9256
8235 def test_numpy(self): 8235 def test_numpy(self):
8236 # New in Orthanc 1.9.8 8236 # New in Orthanc 1.9.8
8237 a = UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm')['ID'] 8237 a = UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm')['ID']
8238 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0002.dcm') 8238 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0002.dcm')
8239 b = UploadInstance(_REMOTE, 'DicomSeg.dcm') ['ID'] 8239 b = UploadInstance(_REMOTE, 'DicomSeg.dcm') ['ID']
8240 d = UploadInstance(_REMOTE, 'Issue124.dcm') ['ID']
8240 8241
8241 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/frames/0/numpy' % a))) 8242 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/frames/0/numpy' % a)))
8242 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile)) 8243 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile))
8243 self.assertEqual(numpy.float32, c.dtype) 8244 self.assertEqual(numpy.float32, c.dtype)
8244 self.assertEqual((288, 288, 1), c.shape) 8245 self.assertEqual((288, 288, 1), c.shape)
8246 self.assertAlmostEqual(0, c.min())
8247 self.assertAlmostEqual(536, c.max())
8245 8248
8246 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/frames/0/numpy?rescale=0' % a))) 8249 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/frames/0/numpy?rescale=0' % a)))
8247 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile)) 8250 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile))
8248 self.assertEqual(numpy.uint16, c.dtype) 8251 self.assertEqual(numpy.uint16, c.dtype)
8249 self.assertEqual((288, 288, 1), c.shape) 8252 self.assertEqual((288, 288, 1), c.shape)
8253 self.assertEqual(0, c.min())
8254 self.assertEqual(536, c.max())
8250 8255
8251 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/numpy?rescale=1&compress=false' % a))) 8256 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/numpy?rescale=1&compress=false' % a)))
8252 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile)) 8257 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile))
8253 self.assertEqual(numpy.float32, c.dtype) 8258 self.assertEqual(numpy.float32, c.dtype)
8254 self.assertEqual((1, 288, 288, 1), c.shape) 8259 self.assertEqual((1, 288, 288, 1), c.shape)
8273 8278
8274 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/frames/0/numpy' % b))) 8279 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/frames/0/numpy' % b)))
8275 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile)) 8280 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile))
8276 self.assertEqual(numpy.float32, c.dtype) 8281 self.assertEqual(numpy.float32, c.dtype)
8277 self.assertEqual((256, 256, 1), c.shape) 8282 self.assertEqual((256, 256, 1), c.shape)
8283 self.assertAlmostEqual(0, c.min())
8284 self.assertAlmostEqual(0, c.max())
8285
8286 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/frames/14/numpy' % b)))
8287 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile))
8288 self.assertEqual(numpy.float32, c.dtype)
8289 self.assertEqual((256, 256, 1), c.shape)
8290 self.assertAlmostEqual(0, c.min())
8291 self.assertAlmostEqual(255, c.max())
8278 8292
8279 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/numpy' % b))) 8293 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/numpy' % b)))
8280 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile)) 8294 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile))
8281 self.assertEqual(numpy.float32, c.dtype) 8295 self.assertEqual(numpy.float32, c.dtype)
8282 self.assertEqual((96, 256, 256, 1), c.shape) 8296 self.assertEqual((96, 256, 256, 1), c.shape)
8284 series = DoGet(_REMOTE, '/instances/%s/series' % b)['ID'] 8298 series = DoGet(_REMOTE, '/instances/%s/series' % b)['ID']
8285 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/series/%s/numpy' % series))) 8299 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/series/%s/numpy' % series)))
8286 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile)) 8300 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile))
8287 self.assertEqual(numpy.float32, c.dtype) 8301 self.assertEqual(numpy.float32, c.dtype)
8288 self.assertEqual((96, 256, 256, 1), c.shape) 8302 self.assertEqual((96, 256, 256, 1), c.shape)
8303
8304 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/frames/0/numpy' % d)))
8305 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile))
8306 self.assertEqual(numpy.float32, c.dtype)
8307 self.assertEqual((512, 512, 1), c.shape)
8308 self.assertAlmostEqual(-3024, c.min()) # RescaleIntercept equals -1024 in this image
8309 self.assertAlmostEqual(2374, c.max())
8310
8311 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/frames/0/numpy?rescale=0' % d)))
8312 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile))
8313 self.assertEqual(numpy.int16, c.dtype)
8314 self.assertEqual((512, 512, 1), c.shape)
8315 self.assertEqual(-2000, c.min())
8316 self.assertEqual(3398, c.max())