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)