diff options
Diffstat (limited to 'numpy/lib/tests/test_function_base.py')
-rw-r--r-- | numpy/lib/tests/test_function_base.py | 163 |
1 files changed, 81 insertions, 82 deletions
diff --git a/numpy/lib/tests/test_function_base.py b/numpy/lib/tests/test_function_base.py index e1a7ae67a..3cd7cd6bb 100644 --- a/numpy/lib/tests/test_function_base.py +++ b/numpy/lib/tests/test_function_base.py @@ -5,11 +5,10 @@ set_package_path() import numpy.lib;reload(numpy.lib) from numpy.lib import * from numpy.core import * +restore_path() -del sys.path[0] - -class TestAny(NumpyTestCase): - def check_basic(self): +class TestAny(TestCase): + def test_basic(self): y1 = [0,0,1,0] y2 = [0,0,0,0] y3 = [1,0,1,0] @@ -17,14 +16,14 @@ class TestAny(NumpyTestCase): assert(any(y3)) assert(not any(y2)) - def check_nd(self): + def test_nd(self): y1 = [[0,0,0],[0,1,0],[1,1,0]] assert(any(y1)) assert_array_equal(sometrue(y1,axis=0),[1,1,0]) assert_array_equal(sometrue(y1,axis=1),[0,1,1]) -class TestAll(NumpyTestCase): - def check_basic(self): +class TestAll(TestCase): + def test_basic(self): y1 = [0,1,1,0] y2 = [0,0,0,0] y3 = [1,1,1,1] @@ -33,14 +32,14 @@ class TestAll(NumpyTestCase): assert(not all(y2)) assert(all(~array(y2))) - def check_nd(self): + def test_nd(self): y1 = [[0,0,1],[0,1,1],[1,1,1]] assert(not all(y1)) assert_array_equal(alltrue(y1,axis=0),[0,0,1]) assert_array_equal(alltrue(y1,axis=1),[0,0,1]) -class TestAverage(NumpyTestCase): - def check_basic(self): +class TestAverage(TestCase): + def test_basic(self): y1 = array([1,2,3]) assert(average(y1,axis=0) == 2.) y2 = array([1.,2.,3.]) @@ -61,7 +60,7 @@ class TestAverage(NumpyTestCase): y6 = matrix(rand(5,5)) assert_array_equal(y6.mean(0), average(y6,0)) - def check_weights(self): + def test_weights(self): y = arange(10) w = arange(10) assert_almost_equal(average(y, weights=w), (arange(10)**2).sum()*1./arange(10).sum()) @@ -89,7 +88,7 @@ class TestAverage(NumpyTestCase): assert_equal(average(y1, weights=w2), 5.) - def check_returned(self): + def test_returned(self): y = array([[1,2,3],[4,5,6]]) # No weights @@ -116,14 +115,14 @@ class TestAverage(NumpyTestCase): assert_array_equal(scl, array([1.,6.])) -class TestSelect(NumpyTestCase): +class TestSelect(TestCase): def _select(self,cond,values,default=0): output = [] for m in range(len(cond)): output += [V[m] for V,C in zip(values,cond) if C[m]] or [default] return output - def check_basic(self): + def test_basic(self): choices = [array([1,2,3]), array([4,5,6]), array([7,8,9])] @@ -136,8 +135,8 @@ class TestSelect(NumpyTestCase): assert_equal(len(choices),3) assert_equal(len(conditions),3) -class TestLogspace(NumpyTestCase): - def check_basic(self): +class TestLogspace(TestCase): + def test_basic(self): y = logspace(0,6) assert(len(y)==50) y = logspace(0,6,num=100) @@ -147,8 +146,8 @@ class TestLogspace(NumpyTestCase): y = logspace(0,6,num=7) assert_array_equal(y,[1,10,100,1e3,1e4,1e5,1e6]) -class TestLinspace(NumpyTestCase): - def check_basic(self): +class TestLinspace(TestCase): + def test_basic(self): y = linspace(0,10) assert(len(y)==50) y = linspace(2,10,num=100) @@ -159,28 +158,28 @@ class TestLinspace(NumpyTestCase): assert_almost_equal(st,8/49.0) assert_array_almost_equal(y,mgrid[2:10:50j],13) - def check_corner(self): + def test_corner(self): y = list(linspace(0,1,1)) assert y == [0.0], y y = list(linspace(0,1,2.5)) assert y == [0.0, 1.0] - def check_type(self): + def test_type(self): t1 = linspace(0,1,0).dtype t2 = linspace(0,1,1).dtype t3 = linspace(0,1,2).dtype assert_equal(t1, t2) assert_equal(t2, t3) -class TestInsert(NumpyTestCase): - def check_basic(self): +class TestInsert(TestCase): + def test_basic(self): a = [1,2,3] assert_equal(insert(a,0,1), [1,1,2,3]) assert_equal(insert(a,3,1), [1,2,3,1]) assert_equal(insert(a,[1,1,1],[1,2,3]), [1,1,2,3,2,3]) -class TestAmax(NumpyTestCase): - def check_basic(self): +class TestAmax(TestCase): + def test_basic(self): a = [3,4,5,10,-3,-5,6.0] assert_equal(amax(a),10.0) b = [[3,6.0, 9.0], @@ -189,8 +188,8 @@ class TestAmax(NumpyTestCase): assert_equal(amax(b,axis=0),[8.0,10.0,9.0]) assert_equal(amax(b,axis=1),[9.0,10.0,8.0]) -class TestAmin(NumpyTestCase): - def check_basic(self): +class TestAmin(TestCase): + def test_basic(self): a = [3,4,5,10,-3,-5,6.0] assert_equal(amin(a),-5.0) b = [[3,6.0, 9.0], @@ -199,8 +198,8 @@ class TestAmin(NumpyTestCase): assert_equal(amin(b,axis=0),[3.0,3.0,2.0]) assert_equal(amin(b,axis=1),[3.0,4.0,2.0]) -class TestPtp(NumpyTestCase): - def check_basic(self): +class TestPtp(TestCase): + def test_basic(self): a = [3,4,5,10,-3,-5,6.0] assert_equal(ptp(a,axis=0),15.0) b = [[3,6.0, 9.0], @@ -209,8 +208,8 @@ class TestPtp(NumpyTestCase): assert_equal(ptp(b,axis=0),[5.0,7.0,7.0]) assert_equal(ptp(b,axis=-1),[6.0,6.0,6.0]) -class TestCumsum(NumpyTestCase): - def check_basic(self): +class TestCumsum(TestCase): + def test_basic(self): ba = [1,2,10,11,6,5,4] ba2 = [[1,2,3,4],[5,6,7,9],[10,3,4,5]] for ctype in [int8,uint8,int16,uint16,int32,uint32, @@ -225,8 +224,8 @@ class TestCumsum(NumpyTestCase): [5,11,18,27], [10,13,17,22]],ctype)) -class TestProd(NumpyTestCase): - def check_basic(self): +class TestProd(TestCase): + def test_basic(self): ba = [1,2,10,11,6,5,4] ba2 = [[1,2,3,4],[5,6,7,9],[10,3,4,5]] for ctype in [int16,uint16,int32,uint32, @@ -243,8 +242,8 @@ class TestProd(NumpyTestCase): array([50,36,84,180],ctype)) assert_array_equal(prod(a2,axis=-1),array([24, 1890, 600],ctype)) -class TestCumprod(NumpyTestCase): - def check_basic(self): +class TestCumprod(TestCase): + def test_basic(self): ba = [1,2,10,11,6,5,4] ba2 = [[1,2,3,4],[5,6,7,9],[10,3,4,5]] for ctype in [int16,uint16,int32,uint32, @@ -268,8 +267,8 @@ class TestCumprod(NumpyTestCase): [ 5, 30, 210, 1890], [10, 30, 120, 600]],ctype)) -class TestDiff(NumpyTestCase): - def check_basic(self): +class TestDiff(TestCase): + def test_basic(self): x = [1,4,6,7,12] out = array([3,2,1,5]) out2 = array([-1,-1,4]) @@ -278,7 +277,7 @@ class TestDiff(NumpyTestCase): assert_array_equal(diff(x,n=2),out2) assert_array_equal(diff(x,n=3),out3) - def check_nd(self): + def test_nd(self): x = 20*rand(10,20,30) out1 = x[:,:,1:] - x[:,:,:-1] out2 = out1[:,:,1:] - out1[:,:,:-1] @@ -289,8 +288,8 @@ class TestDiff(NumpyTestCase): assert_array_equal(diff(x,axis=0),out3) assert_array_equal(diff(x,n=2,axis=0),out4) -class TestAngle(NumpyTestCase): - def check_basic(self): +class TestAngle(TestCase): + def test_basic(self): x = [1+3j,sqrt(2)/2.0+1j*sqrt(2)/2,1,1j,-1,-1j,1-3j,-1+3j] y = angle(x) yo = [arctan(3.0/1.0),arctan(1.0),0,pi/2,pi,-pi/2.0, @@ -300,33 +299,33 @@ class TestAngle(NumpyTestCase): assert_array_almost_equal(y,yo,11) assert_array_almost_equal(z,zo,11) -class TestTrimZeros(NumpyTestCase): +class TestTrimZeros(TestCase): """ only testing for integer splits. """ - def check_basic(self): + def test_basic(self): a= array([0,0,1,2,3,4,0]) res = trim_zeros(a) assert_array_equal(res,array([1,2,3,4])) - def check_leading_skip(self): + def test_leading_skip(self): a= array([0,0,1,0,2,3,4,0]) res = trim_zeros(a) assert_array_equal(res,array([1,0,2,3,4])) - def check_trailing_skip(self): + def test_trailing_skip(self): a= array([0,0,1,0,2,3,0,4,0]) res = trim_zeros(a) assert_array_equal(res,array([1,0,2,3,0,4])) -class TestExtins(NumpyTestCase): - def check_basic(self): +class TestExtins(TestCase): + def test_basic(self): a = array([1,3,2,1,2,3,3]) b = extract(a>1,a) assert_array_equal(b,[3,2,2,3,3]) - def check_place(self): + def test_place(self): a = array([1,4,3,2,5,8,7]) place(a,[0,1,0,1,0,1,0],[2,4,6]) assert_array_equal(a,[1,2,3,4,5,6,7]) - def check_both(self): + def test_both(self): a = rand(10) mask = a > 0.5 ac = a.copy() @@ -335,8 +334,8 @@ class TestExtins(NumpyTestCase): place(a,mask,c) assert_array_equal(a,ac) -class TestVectorize(NumpyTestCase): - def check_simple(self): +class TestVectorize(TestCase): + def test_simple(self): def addsubtract(a,b): if a > b: return a - b @@ -345,7 +344,7 @@ class TestVectorize(NumpyTestCase): f = vectorize(addsubtract) r = f([0,3,6,9],[1,3,5,7]) assert_array_equal(r,[1,6,1,2]) - def check_scalar(self): + def test_scalar(self): def addsubtract(a,b): if a > b: return a - b @@ -354,59 +353,59 @@ class TestVectorize(NumpyTestCase): f = vectorize(addsubtract) r = f([0,3,6,9],5) assert_array_equal(r,[5,8,1,4]) - def check_large(self): + def test_large(self): x = linspace(-3,2,10000) f = vectorize(lambda x: x) y = f(x) assert_array_equal(y, x) -class TestDigitize(NumpyTestCase): - def check_forward(self): +class TestDigitize(TestCase): + def test_forward(self): x = arange(-6,5) bins = arange(-5,5) assert_array_equal(digitize(x,bins),arange(11)) - def check_reverse(self): + def test_reverse(self): x = arange(5,-6,-1) bins = arange(5,-5,-1) assert_array_equal(digitize(x,bins),arange(11)) - def check_random(self): + def test_random(self): x = rand(10) bin = linspace(x.min(), x.max(), 10) assert all(digitize(x,bin) != 0) -class TestUnwrap(NumpyTestCase): - def check_simple(self): +class TestUnwrap(TestCase): + def test_simple(self): #check that unwrap removes jumps greather that 2*pi assert_array_equal(unwrap([1,1+2*pi]),[1,1]) #check that unwrap maintans continuity assert(all(diff(unwrap(rand(10)*100))<pi)) -class TestFilterwindows(NumpyTestCase): - def check_hanning(self): +class TestFilterwindows(TestCase): + def test_hanning(self): #check symmetry w=hanning(10) assert_array_almost_equal(w,flipud(w),7) #check known value assert_almost_equal(sum(w,axis=0),4.500,4) - def check_hamming(self): + def test_hamming(self): #check symmetry w=hamming(10) assert_array_almost_equal(w,flipud(w),7) #check known value assert_almost_equal(sum(w,axis=0),4.9400,4) - def check_bartlett(self): + def test_bartlett(self): #check symmetry w=bartlett(10) assert_array_almost_equal(w,flipud(w),7) #check known value assert_almost_equal(sum(w,axis=0),4.4444,4) - def check_blackman(self): + def test_blackman(self): #check symmetry w=blackman(10) assert_array_almost_equal(w,flipud(w),7) @@ -414,23 +413,23 @@ class TestFilterwindows(NumpyTestCase): assert_almost_equal(sum(w,axis=0),3.7800,4) -class TestTrapz(NumpyTestCase): - def check_simple(self): +class TestTrapz(TestCase): + def test_simple(self): r=trapz(exp(-1.0/2*(arange(-10,10,.1))**2)/sqrt(2*pi),dx=0.1) #check integral of normal equals 1 assert_almost_equal(sum(r,axis=0),1,7) -class TestSinc(NumpyTestCase): - def check_simple(self): +class TestSinc(TestCase): + def test_simple(self): assert(sinc(0)==1) w=sinc(linspace(-1,1,100)) #check symmetry assert_array_almost_equal(w,flipud(w),7) -class TestHistogram(NumpyTestCase): +class TestHistogram(TestCase): import warnings warnings.simplefilter('ignore', FutureWarning) - def check_simple(self): + def test_simple(self): n=100 v=rand(n) (a,b)=histogram(v) @@ -441,7 +440,7 @@ class TestHistogram(NumpyTestCase): (a,b)=histogram(linspace(0,10,100)) assert_array_equal(a, 10) - def check_simple_new(self): + def test_simple_new(self): n=100 v=rand(n) (a,b)=histogram(v, new=True) @@ -452,7 +451,7 @@ class TestHistogram(NumpyTestCase): (a,b)=histogram(linspace(0,10,100), new=True) assert_array_equal(a, 10) - def check_normed_new(self): + def test_normed_new(self): # Check that the integral of the density equals 1. n = 100 v = rand(n) @@ -468,7 +467,7 @@ class TestHistogram(NumpyTestCase): assert_almost_equal(area, 1) - def check_outliers_new(self): + def test_outliers_new(self): # Check that outliers are not tallied a = arange(10)+.5 @@ -493,7 +492,7 @@ class TestHistogram(NumpyTestCase): assert_equal(h, w[1:-1]) - def check_type_new(self): + def test_type_new(self): # Check the type of the returned histogram a = arange(10)+.5 h,b = histogram(a, new=True) @@ -509,7 +508,7 @@ class TestHistogram(NumpyTestCase): assert(issubdtype(h.dtype, float)) - def check_weights_new(self): + def test_weights_new(self): v = rand(100) w = ones(100)*5 a,b = histogram(v,new=True) @@ -531,8 +530,8 @@ class TestHistogram(NumpyTestCase): wa, wb = histogram([1,2,2,4], bins=4, weights=[4,3,2,1], normed=True, new=True) assert_array_equal(wa, array([4,5,0,1])/10./3.*4) -class TestHistogramdd(NumpyTestCase): - def check_simple(self): +class TestHistogramdd(TestCase): + def test_simple(self): x = array([[-.5, .5, 1.5], [-.5, 1.5, 2.5], [-.5, 2.5, .5], \ [.5, .5, 1.5], [.5, 1.5, 2.5], [.5, 2.5, 2.5]]) H, edges = histogramdd(x, (2,3,3), range = [[-1,1], [0,3], [0,3]]) @@ -564,7 +563,7 @@ class TestHistogramdd(NumpyTestCase): H,edges = histogramdd([arange(5), arange(5), arange(5)], 5) assert_array_equal(H, Z) - def check_shape_3d(self): + def test_shape_3d(self): # All possible permutations for bins of different lengths in 3D. bins = ((5, 4, 6), (6, 4, 5), (5, 6, 4), (4, 6, 5), (6, 5, 4), (4, 5, 6)) @@ -573,7 +572,7 @@ class TestHistogramdd(NumpyTestCase): H, edges = histogramdd(r, b) assert(H.shape == b) - def check_shape_4d(self): + def test_shape_4d(self): # All possible permutations for bins of different lengths in 4D. bins = ((7, 4, 5, 6), (4, 5, 7, 6), (5, 6, 4, 7), (7, 6, 5, 4), (5, 7, 6, 4), (4, 6, 7, 5), (6, 5, 7, 4), (7, 5, 4, 6), @@ -587,7 +586,7 @@ class TestHistogramdd(NumpyTestCase): H, edges = histogramdd(r, b) assert(H.shape == b) - def check_weights(self): + def test_weights(self): v = rand(100,2) hist, edges = histogramdd(v) n_hist, edges = histogramdd(v, normed=True) @@ -598,13 +597,13 @@ class TestHistogramdd(NumpyTestCase): w_hist, edges = histogramdd(v, weights=ones(100, int)*2) assert_array_equal(w_hist, 2*hist) - def check_identical_samples(self): + def test_identical_samples(self): x = zeros((10,2),int) hist, edges = histogramdd(x, bins=2) assert_array_equal(edges[0],array([-0.5, 0. , 0.5])) -class TestUnique(NumpyTestCase): - def check_simple(self): +class TestUnique(TestCase): + def test_simple(self): x = array([4,3,2,1,1,2,3,4, 0]) assert(all(unique(x) == [0,1,2,3,4])) assert(unique(array([1,1,1,1,1])) == array([1])) @@ -618,4 +617,4 @@ def compare_results(res,desired): assert_array_equal(res[i],desired[i]) if __name__ == "__main__": - NumpyTest().run() + nose.run(argv=['', __file__]) |