summaryrefslogtreecommitdiff
path: root/numpy/lib/tests/test_function_base.py
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/lib/tests/test_function_base.py')
-rw-r--r--numpy/lib/tests/test_function_base.py163
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__])