from helper import PillowTestCase try: import numpy as np from numpy.testing import assert_equal from scipy import misc HAS_SCIPY = True except: HAS_SCIPY = False class Test_scipy_resize(PillowTestCase): """ Tests for scipy regression in 2.6.0 Tests from https://github.com/scipy/scipy/blob/master/scipy/misc/pilutil.py """ def setUp(self): if not HAS_SCIPY: self.skipTest("Scipy Required") def test_imresize(self): im = np.random.random((10,20)) for T in np.sctypes['float'] + [float]: # 1.1 rounds to below 1.1 for float16, 1.101 works im1 = misc.imresize(im,T(1.101)) self.assertEqual(im1.shape,(11,22)) def test_imresize4(self): im = np.array([[1,2], [3,4]]) res = np.array([[ 1. , 1.25, 1.75, 2. ], [ 1.5 , 1.75, 2.25, 2.5 ], [ 2.5 , 2.75, 3.25, 3.5 ], [ 3. , 3.25, 3.75, 4. ]], dtype=np.float32) # Check that resizing by target size, float and int are the same im2 = misc.imresize(im, (4,4), mode='F') # output size im3 = misc.imresize(im, 2., mode='F') # fraction im4 = misc.imresize(im, 200, mode='F') # percentage assert_equal(im2, res) assert_equal(im3, res) assert_equal(im4, res)