Mercurial > hg > orthanc-tests
comparison Tests/Tests.py @ 265:8d63d035b837
test_rendered
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 25 Feb 2020 13:57:59 +0100 |
parents | 445f498bc1d4 |
children | b105bb2233c6 |
comparison
equal
deleted
inserted
replaced
264:445f498bc1d4 | 265:8d63d035b837 |
---|---|
4900 # Switch back to the original log level | 4900 # Switch back to the original log level |
4901 DoPut(_REMOTE, '/tools/log-level', original) | 4901 DoPut(_REMOTE, '/tools/log-level', original) |
4902 | 4902 |
4903 | 4903 |
4904 def test_upload_compressed(self): | 4904 def test_upload_compressed(self): |
4905 # New in Orthanc 1.6.0 | |
4905 with open(GetDatabasePath('DummyCT.dcm.gz'), 'rb') as f: | 4906 with open(GetDatabasePath('DummyCT.dcm.gz'), 'rb') as f: |
4906 d = f.read() | 4907 d = f.read() |
4907 | 4908 |
4908 self.assertRaises(Exception, lambda: DoPost(_REMOTE, '/instances', d, 'application/dicom')) | 4909 self.assertRaises(Exception, lambda: DoPost(_REMOTE, '/instances', d, 'application/dicom')) |
4909 | 4910 |
5130 'Query' : { | 5131 'Query' : { |
5131 'StudyInstanceUID' : '*' # Wildcard matching not allowed for this VR | 5132 'StudyInstanceUID' : '*' # Wildcard matching not allowed for this VR |
5132 }, | 5133 }, |
5133 'Normalize' : normalize, | 5134 'Normalize' : normalize, |
5134 })) | 5135 })) |
5136 | |
5137 | |
5138 def test_rendered(self): | |
5139 # New in Orthanc 1.6.0 | |
5140 i = UploadInstance(_REMOTE, 'ColorTestMalaterre.dcm')['ID'] | |
5141 im = GetImage(_REMOTE, '/instances/%s/rendered' % i) | |
5142 self.assertEqual("RGB", im.mode) | |
5143 self.assertEqual(41, im.size[0]) | |
5144 self.assertEqual(41, im.size[1]) | |
5145 | |
5146 # http://effbot.org/zone/pil-comparing-images.htm | |
5147 truth = Image.open(GetDatabasePath('ColorTestMalaterre.png')) | |
5148 self.assertTrue(ImageChops.difference(im, truth).getbbox() is None) | |
5149 | |
5150 im = GetImage(_REMOTE, '/instances/%s/rendered?width=10' % i) | |
5151 self.assertEqual("RGB", im.mode) | |
5152 self.assertEqual(10, im.size[0]) | |
5153 self.assertEqual(10, im.size[1]) | |
5154 | |
5155 im = GetImage(_REMOTE, '/instances/%s/rendered?height=10' % i) | |
5156 self.assertEqual("RGB", im.mode) | |
5157 self.assertEqual(10, im.size[0]) | |
5158 self.assertEqual(10, im.size[1]) | |
5159 | |
5160 im = GetImage(_REMOTE, '/instances/%s/rendered?height=128' % i) | |
5161 self.assertEqual("RGB", im.mode) | |
5162 self.assertEqual(128, im.size[0]) | |
5163 self.assertEqual(128, im.size[1]) | |
5164 | |
5165 im = GetImage(_REMOTE, '/instances/%s/rendered?height=10&smooth=0' % i) | |
5166 self.assertEqual("RGB", im.mode) | |
5167 self.assertEqual(10, im.size[0]) | |
5168 self.assertEqual(10, im.size[1]) | |
5169 | |
5170 im = GetImage(_REMOTE, '/instances/%s/rendered?height=10&smooth=1' % i) | |
5171 self.assertEqual("RGB", im.mode) | |
5172 self.assertEqual(10, im.size[0]) | |
5173 self.assertEqual(10, im.size[1]) | |
5174 | |
5175 im = GetImage(_REMOTE, '/instances/%s/rendered?height=5&width=10' % i) | |
5176 self.assertEqual("RGB", im.mode) | |
5177 self.assertEqual(5, im.size[0]) | |
5178 self.assertEqual(5, im.size[1]) | |
5179 | |
5180 | |
5181 # Grayscale image | |
5182 i = UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm')['ID'] | |
5183 im = GetImage(_REMOTE, '/instances/%s/rendered' % i) | |
5184 self.assertEqual("L", im.mode) | |
5185 self.assertEqual(288, im.size[0]) | |
5186 self.assertEqual(288, im.size[1]) | |
5187 self.assertEqual(0, im.getpixel((0, 0))) | |
5188 | |
5189 # Those are the original windowing parameters that are written | |
5190 # inside the DICOM file | |
5191 im2 = GetImage(_REMOTE, '/instances/%s/rendered?window-center=248.009544468547&window-width=431.351843817788' % i) | |
5192 self.assertEqual("L", im2.mode) | |
5193 self.assertEqual(288, im2.size[0]) | |
5194 self.assertEqual(288, im2.size[1]) | |
5195 self.assertTrue(ImageChops.difference(im, im2).getbbox() is None) | |
5196 | |
5197 im = GetImage(_REMOTE, '/instances/%s/rendered?width=512&smooth=0' % i) | |
5198 self.assertEqual("L", im.mode) | |
5199 self.assertEqual(512, im.size[0]) | |
5200 self.assertEqual(512, im.size[1]) | |
5201 | |
5202 im = GetImage(_REMOTE, '/instances/%s/rendered?width=10&smooth=0' % i) | |
5203 self.assertEqual("L", im.mode) | |
5204 self.assertEqual(10, im.size[0]) | |
5205 self.assertEqual(10, im.size[1]) | |
5206 | |
5207 im = GetImage(_REMOTE, '/instances/%s/rendered?width=10&smooth=1' % i) | |
5208 self.assertEqual("L", im.mode) | |
5209 self.assertEqual(10, im.size[0]) | |
5210 self.assertEqual(10, im.size[1]) | |
5211 | |
5212 im = GetImage(_REMOTE, '/instances/%s/rendered?width=1&window-center=-1000' % i) | |
5213 self.assertEqual("L", im.mode) | |
5214 self.assertEqual(1, im.size[0]) | |
5215 self.assertEqual(1, im.size[1]) | |
5216 self.assertEqual(255, im.getpixel((0, 0))) | |
5217 | |
5218 im = GetImage(_REMOTE, '/instances/%s/rendered?width=1&window-center=1000' % i) | |
5219 self.assertEqual("L", im.mode) | |
5220 self.assertEqual(1, im.size[0]) | |
5221 self.assertEqual(1, im.size[1]) | |
5222 self.assertEqual(0, im.getpixel((0, 0))) | |
5223 | |
5224 | |
5225 # Test monochrome 1 | |
5226 i = UploadInstance(_REMOTE, 'Issue44/Monochrome1.dcm')['ID'] | |
5227 im = GetImage(_REMOTE, '/instances/%s/rendered' % i) | |
5228 self.assertEqual("L", im.mode) | |
5229 self.assertEqual(2010, im.size[0]) | |
5230 self.assertEqual(2446, im.size[1]) | |
5231 self.assertEqual(0, im.getpixel((0, 0))) | |
5232 im = GetImage(_REMOTE, '/instances/%s/rendered?width=20' % i) | |
5233 self.assertEqual("L", im.mode) | |
5234 self.assertEqual(20, im.size[0]) | |
5235 self.assertEqual(24, im.size[1]) | |
5236 im = GetImage(_REMOTE, '/instances/%s/rendered?height=24' % i) | |
5237 self.assertEqual("L", im.mode) | |
5238 self.assertEqual(20, im.size[0]) | |
5239 self.assertEqual(24, im.size[1]) | |
5240 im = GetImage(_REMOTE, '/instances/%s/rendered?width=10&height=24' % i) | |
5241 self.assertEqual("L", im.mode) | |
5242 self.assertEqual(10, im.size[0]) | |
5243 self.assertEqual(12, im.size[1]) | |
5244 im = GetImage(_REMOTE, '/instances/%s/rendered?width=40&height=24' % i) | |
5245 self.assertEqual("L", im.mode) | |
5246 self.assertEqual(20, im.size[0]) | |
5247 self.assertEqual(24, im.size[1]) |