mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-11-10 19:56:47 +03:00
Test harness for EPS files.
We now have a test harness for EPS files. Two variants were created one for the default scale=1 and one where scale=2. These two tests are run against two different EPS files, one with zero for the start of the bounding box and one where this is not the case. PNG test renders are used to make sure the output match what we expect. Lastly the sample EPS files were generated using the included create_eps.gnuplot file and the gnuplot program on a Mac.
This commit is contained in:
parent
7989378bfd
commit
582d54d055
30
Tests/images/create_eps.gnuplot
Normal file
30
Tests/images/create_eps.gnuplot
Normal file
|
@ -0,0 +1,30 @@
|
|||
#!/usr/bin/gnuplot
|
||||
|
||||
#This is the script that was used to create our sample EPS files
|
||||
#We used the following version of the gnuplot program
|
||||
#G N U P L O T
|
||||
#Version 4.6 patchlevel 3 last modified 2013-04-12
|
||||
#Build System: Darwin x86_64
|
||||
|
||||
#This file will generate the non_zero_bb.eps variant, in order to get the
|
||||
#zero_bb.eps variant you will need to edit line6 in the result file to
|
||||
#be "%%BoundingBox: 0 0 460 352" instead of "%%BoundingBox: 50 50 410 302"
|
||||
|
||||
set t postscript eps color
|
||||
set o "sample.eps"
|
||||
set dummy u,v
|
||||
set key bmargin center horizontal Right noreverse enhanced autotitles nobox
|
||||
set parametric
|
||||
set view 50, 30, 1, 1
|
||||
set isosamples 10, 10
|
||||
set hidden3d back offset 1 trianglepattern 3 undefined 1 altdiagonal bentover
|
||||
set ticslevel 0
|
||||
set title "Interlocking Tori"
|
||||
|
||||
set style line 1 lt 1 lw 1 pt 3 lc rgb "red"
|
||||
set style line 2 lt 1 lw 1 pt 3 lc rgb "blue"
|
||||
|
||||
set urange [ -3.14159 : 3.14159 ] noreverse nowriteback
|
||||
set vrange [ -3.14159 : 3.14159 ] noreverse nowriteback
|
||||
splot cos(u)+.5*cos(u)*cos(v),sin(u)+.5*sin(u)*cos(v),.5*sin(v) ls 1,\
|
||||
1+cos(u)+.5*cos(u)*cos(v),.5*sin(v),sin(u)+.5*sin(u)*cos(v) ls 2
|
BIN
Tests/images/non_zero_bb.eps
Normal file
BIN
Tests/images/non_zero_bb.eps
Normal file
Binary file not shown.
BIN
Tests/images/non_zero_bb.png
Normal file
BIN
Tests/images/non_zero_bb.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
BIN
Tests/images/non_zero_bb_scale2.png
Normal file
BIN
Tests/images/non_zero_bb_scale2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.4 KiB |
BIN
Tests/images/zero_bb.eps
Normal file
BIN
Tests/images/zero_bb.eps
Normal file
Binary file not shown.
BIN
Tests/images/zero_bb.png
Normal file
BIN
Tests/images/zero_bb.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
BIN
Tests/images/zero_bb_scale2.png
Normal file
BIN
Tests/images/zero_bb_scale2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.8 KiB |
82
Tests/test_file_eps.py
Normal file
82
Tests/test_file_eps.py
Normal file
|
@ -0,0 +1,82 @@
|
|||
from tester import *
|
||||
|
||||
from PIL import Image
|
||||
|
||||
#Our two EPS test files (they are identical except for their bounding boxes)
|
||||
file1 = "Tests/images/zero_bb.eps"
|
||||
file2 = "Tests/images/non_zero_bb.eps"
|
||||
|
||||
#Due to palletization, we'll need to convert these to RGB after load
|
||||
file1_compare = "Tests/images/zero_bb.png"
|
||||
file1_compare_scale2 = "Tests/images/zero_bb_scale2.png"
|
||||
|
||||
file2_compare = "Tests/images/non_zero_bb.png"
|
||||
file2_compare_scale2 = "Tests/images/non_zero_bb_scale2.png"
|
||||
|
||||
def test_sanity():
|
||||
#Regular scale
|
||||
image1 = Image.open(file1)
|
||||
image1.load()
|
||||
assert_equal(image1.mode, "RGB")
|
||||
assert_equal(image1.size, (460, 352))
|
||||
assert_equal(image1.format, "EPS")
|
||||
|
||||
image2 = Image.open(file2)
|
||||
image2.load()
|
||||
assert_equal(image2.mode, "RGB")
|
||||
assert_equal(image2.size, (360, 252))
|
||||
assert_equal(image2.format, "EPS")
|
||||
|
||||
#Double scale
|
||||
image1_scale2 = Image.open(file1)
|
||||
image1_scale2.load(scale=2)
|
||||
assert_equal(image1_scale2.mode, "RGB")
|
||||
assert_equal(image1_scale2.size, (920, 704))
|
||||
assert_equal(image1_scale2.format, "EPS")
|
||||
|
||||
image2_scale2 = Image.open(file2)
|
||||
image2_scale2.load(scale=2)
|
||||
assert_equal(image2_scale2.mode, "RGB")
|
||||
assert_equal(image2_scale2.size, (720, 504))
|
||||
assert_equal(image2_scale2.format, "EPS")
|
||||
|
||||
def test_render_scale1():
|
||||
#We need png support for these render test
|
||||
codecs = dir(Image.core)
|
||||
if "zip_encoder" not in codecs or "zip_decoder" not in codecs:
|
||||
skip("zip/deflate support not available")
|
||||
|
||||
#Zero bounding box
|
||||
image1 = Image.open(file1)
|
||||
image1.load()
|
||||
image1_compare = Image.open(file1_compare).convert("RGB")
|
||||
image1_compare.load()
|
||||
assert_image_equal(image1, image1_compare)
|
||||
|
||||
#Non-Zero bounding box
|
||||
image2 = Image.open(file2)
|
||||
image2.load()
|
||||
image2_compare = Image.open(file2_compare).convert("RGB")
|
||||
image2_compare.load()
|
||||
assert_image_equal(image2, image2_compare)
|
||||
|
||||
def test_render_scale2():
|
||||
#We need png support for these render test
|
||||
codecs = dir(Image.core)
|
||||
if "zip_encoder" not in codecs or "zip_decoder" not in codecs:
|
||||
skip("zip/deflate support not available")
|
||||
|
||||
#Zero bounding box
|
||||
image1 = Image.open(file1)
|
||||
image1.load(scale=2)
|
||||
image1_compare = Image.open(file1_compare_scale2).convert("RGB")
|
||||
image1_compare.load()
|
||||
assert_image_equal(image1, image1_compare)
|
||||
|
||||
#Non-Zero bounding box
|
||||
image2 = Image.open(file2)
|
||||
image2.load(scale=2)
|
||||
image2_compare = Image.open(file2_compare_scale2).convert("RGB")
|
||||
image2_compare.load()
|
||||
assert_image_equal(image2, image2_compare)
|
||||
|
Loading…
Reference in New Issue
Block a user