add tests and reference images (created at 211b102ec5
) for ensuring consistent output of png encoding - refs #1557
After Width: | Height: | Size: 270 B |
BIN
tests/python_tests/images/support/encoding-opts/blank-png.png
Normal file
After Width: | Height: | Size: 334 B |
After Width: | Height: | Size: 103 B |
After Width: | Height: | Size: 116 B |
After Width: | Height: | Size: 103 B |
After Width: | Height: | Size: 116 B |
After Width: | Height: | Size: 116 B |
After Width: | Height: | Size: 116 B |
After Width: | Height: | Size: 103 B |
After Width: | Height: | Size: 116 B |
After Width: | Height: | Size: 103 B |
After Width: | Height: | Size: 116 B |
After Width: | Height: | Size: 116 B |
After Width: | Height: | Size: 116 B |
After Width: | Height: | Size: 270 B |
BIN
tests/python_tests/images/support/encoding-opts/solid-png.png
Normal file
After Width: | Height: | Size: 334 B |
After Width: | Height: | Size: 103 B |
After Width: | Height: | Size: 116 B |
After Width: | Height: | Size: 103 B |
After Width: | Height: | Size: 116 B |
After Width: | Height: | Size: 116 B |
After Width: | Height: | Size: 116 B |
After Width: | Height: | Size: 103 B |
After Width: | Height: | Size: 116 B |
After Width: | Height: | Size: 103 B |
After Width: | Height: | Size: 116 B |
After Width: | Height: | Size: 116 B |
After Width: | Height: | Size: 116 B |
|
@ -16,6 +16,58 @@ tmp_dir = '/tmp/mapnik-png/'
|
||||||
if not os.path.exists(tmp_dir):
|
if not os.path.exists(tmp_dir):
|
||||||
os.makedirs(tmp_dir)
|
os.makedirs(tmp_dir)
|
||||||
|
|
||||||
|
opts = [
|
||||||
|
'png',
|
||||||
|
'png:t=0',
|
||||||
|
'png8:m=o',
|
||||||
|
'png8:m=o:c=1',
|
||||||
|
'png8:m=o:t=0',
|
||||||
|
'png8:m=o:c=1:t=0',
|
||||||
|
'png8:m=o:t=1',
|
||||||
|
'png8:m=o:t=2',
|
||||||
|
'png8:m=h',
|
||||||
|
'png8:m=h:c=1',
|
||||||
|
'png8:m=h:t=0',
|
||||||
|
'png8:m=h:c=1:t=0',
|
||||||
|
'png8:m=h:t=1',
|
||||||
|
'png8:m=h:t=2',
|
||||||
|
]
|
||||||
|
|
||||||
|
# Todo - use itertools.product
|
||||||
|
#z_opts = range(1,9+1)
|
||||||
|
#t_opts = range(0,2+1)
|
||||||
|
|
||||||
|
def gen_filepath(name,format):
|
||||||
|
return os.path.join('images/support/encoding-opts',name+'-'+format.replace(":","+")+'.png')
|
||||||
|
|
||||||
|
generate = False
|
||||||
|
|
||||||
|
def test_expected_encodings():
|
||||||
|
im = mapnik.Image(256,256)
|
||||||
|
for opt in opts:
|
||||||
|
expected = gen_filepath('solid',opt)
|
||||||
|
actual = os.path.join(tmp_dir,os.path.basename(expected))
|
||||||
|
if generate or not os.path.exists(expected):
|
||||||
|
print 'generating expected image %s' % expected
|
||||||
|
im.save(expected,opt)
|
||||||
|
else:
|
||||||
|
im.save(actual,opt)
|
||||||
|
eq_(mapnik.Image.open(actual).tostring(),
|
||||||
|
mapnik.Image.open(expected).tostring(),
|
||||||
|
'%s (actual) not == to %s (expected)' % (actual,expected))
|
||||||
|
|
||||||
|
for opt in opts:
|
||||||
|
expected = gen_filepath('blank',opt)
|
||||||
|
actual = os.path.join(tmp_dir,os.path.basename(expected))
|
||||||
|
if generate or not os.path.exists(expected):
|
||||||
|
print 'generating expected image %s' % expected
|
||||||
|
im.save(expected,opt)
|
||||||
|
else:
|
||||||
|
im.save(actual,opt)
|
||||||
|
eq_(mapnik.Image.open(actual).tostring(),
|
||||||
|
mapnik.Image.open(expected).tostring(),
|
||||||
|
'%s (actual) not == to %s (expected)' % (actual,expected))
|
||||||
|
|
||||||
def test_transparency_levels():
|
def test_transparency_levels():
|
||||||
# create partial transparency image
|
# create partial transparency image
|
||||||
im = mapnik.Image(256,256)
|
im = mapnik.Image(256,256)
|
||||||
|
@ -78,11 +130,9 @@ def test_transparency_levels_aerial():
|
||||||
|
|
||||||
im_in = mapnik.Image.open('./images/support/transparency/aerial_rgb.png')
|
im_in = mapnik.Image.open('./images/support/transparency/aerial_rgb.png')
|
||||||
eq_(len(im.tostring('png')),len(im_in.tostring('png')))
|
eq_(len(im.tostring('png')),len(im_in.tostring('png')))
|
||||||
eq_(len(im.tostring('png:t=0')),len(im_in.tostring('png:t=0')))
|
#eq_(len(im.tostring('png:t=0')),len(im_in.tostring('png:t=0')))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
setup()
|
setup()
|
||||||
for t in dir():
|
[eval(run)() for run in dir() if 'test_' in run]
|
||||||
if 'test_' in t:
|
|
||||||
eval(t)()
|
|