Skip to content

Commit ef89a14

Browse files
grdloksolvents
authored andcommitted
re worked the tests in test_mlab to work with the modified GaussianKDE
1 parent 8761ed4 commit ef89a14

File tree

1 file changed

+20
-71
lines changed

1 file changed

+20
-71
lines changed

lib/matplotlib/tests/test_mlab.py

Lines changed: 20 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -2757,110 +2757,59 @@ def get_z(x, y):
27572757
np.testing.assert_array_equal(np.ma.getmask(zi),
27582758
np.ma.getmask(correct_zi_masked))
27592759

2760-
#-----------------------------------------------------------------
2761-
#-----------------------------------------------------------------
2760+
#*****************************************************************
2761+
#*****************************************************************
2762+
27622763

27632764
class ksdensity_test():
2765+
2766+
27642767
def test_kde_integer_input(self):
27652768
"""Regression test for #1181."""
27662769
x1 = np.arange(5)
2767-
kde = mlab.ksdensity(x1 + x1)
2770+
kde = mlab.GaussianKDE(x1)
27682771
y_expected = [0.13480721, 0.18222869, 0.19514935, 0.18222869, 0.13480721]
2769-
assert_array_almost_equal(kde["result"], y_expected, decimal=6)
2772+
assert_array_almost_equal(kde(x1), y_expected, decimal=6)
27702773

2771-
@knownfailureif(True)
27722774
def test_gaussian_kde_covariance_caching(self):
27732775
x1 = np.array([-7, -5, 1, 4, 5], dtype=np.float)
27742776
xs = np.linspace(-10, 10, num=5)
27752777
# These expected values are from scipy 0.10, before some changes to
27762778
# gaussian_kde. They were not compared with any external reference.
27772779
y_expected = [0.02463386, 0.04689208, 0.05395444, 0.05337754, 0.01664475]
27782780

2779-
# Set the bandwidth, then reset it to the default.
2780-
kde = mlab.ksdensity(x1, 0.5)
2781-
y2 = kde['result']
2782-
2783-
assert_array_almost_equal(y_expected, y2, decimal=7)
2784-
2785-
kde = mlab.ksdensity(xs, 'scott')
2786-
y2 = kde['result']
2781+
# set it to the default bandwidth.
2782+
kde2 = mlab.GaussianKDE(x1, 'scott')
2783+
y2 = kde2(xs)
27872784

27882785
assert_array_almost_equal(y_expected, y2, decimal=7)
27892786

2790-
@knownfailureif(True)
2791-
def test_gaussian_kde_subclassing(self):
2792-
x1 = np.array([-7, -5, 1, 4, 5], dtype=np.float)
2793-
xs = np.linspace(-10, 10, num=50)
2794-
2795-
# gaussian_kde itself
2796-
kde = mlab.ksdensity(xs)
2797-
ys = kde['result']
2798-
2799-
y_expected = [0.06292987, 0.06346938, 0.05860291, 0.08657652, 0.07904017]
2800-
2801-
assert_array_almost_equal(y_expected, ys, decimal=6)
2802-
2803-
2804-
@knownfailureif(True)
2805-
def test_kde_1d(self):
2806-
#some basic tests comparing to normal distribution
2807-
np.random.seed(8765678)
2808-
n_basesample = 500
2809-
xn = np.random.randn(n_basesample)
2810-
xnmean = xn.mean()
2811-
xnstd = xn.std(ddof=1)
2812-
2813-
xs = np.linspace(-7, 7, 501)
2814-
2815-
# get kde for original sample
2816-
gkde = mlab.ksdensity(xn)
2817-
2818-
# evaluate the density function for the kde for some points
2819-
kdepdf = gkde['result']
2820-
intervall = xs[1] - xs[0]
2821-
2822-
normpdf = np.random.normal(loc=xnmean, scale=xnstd)
2823-
2824-
assert_(np.sum((kdepdf - normpdf)**2)*intervall < 0.01)
2825-
prob1 = gkde.integrate_box_1d(xnmean, np.inf)
2826-
prob2 = gkde.integrate_box_1d(-np.inf, xnmean)
2827-
assert_almost_equal(prob1, 0.5, decimal=1)
2828-
assert_almost_equal(prob2, 0.5, decimal=1)
2829-
assert_almost_equal(gkde.integrate_box(xnmean, np.inf), prob1, decimal=13)
2830-
assert_almost_equal(gkde.integrate_box(-np.inf, xnmean), prob2, decimal=13)
2831-
2832-
assert_almost_equal(gkde.integrate_kde(gkde),
2833-
(kdepdf**2).sum()*intervall, decimal=2)
2834-
assert_almost_equal(gkde.integrate_gaussian(xnmean, xnstd**2),
2835-
(kdepdf*normpdf).sum()*intervall, decimal=2)
2836-
28372787
def test_kde_bandwidth_method(self):
28382788

28392789
np.random.seed(8765678)
28402790
n_basesample = 50
28412791
xn = np.random.randn(n_basesample)
28422792

28432793
# Default
2844-
gkde = mlab.ksdensity(xn)
2794+
gkde = mlab.GaussianKDE(xn)
28452795
# Supply a callable
2846-
gkde2 =mlab.ksdensity(xn, 'scott')
2847-
assert_almost_equal(gkde['result'].all(), gkde2['result'].all())
2796+
gkde2 = mlab.GaussianKDE(xn, 'scott')
28482797
# Supply a scalar
2849-
#gkde3 = mlab.ksdensity(xn, bw_method=gkde.factor)
2798+
gkde3 = mlab.GaussianKDE(xn, bw_method=gkde.factor)
28502799

28512800
xs = np.linspace(-7,7,51)
2852-
kdepdf = mlab.ksdensity(xs)
2853-
kdepdf2 = mlab.ksdensity(xs, 'scott')
2854-
#kdepdf3 = gkde3.evaluate(xs)
2855-
#assert_almost_equal(kdepdf, kdepdf3)
2801+
kdepdf = gkde.evaluate(xs)
2802+
kdepdf2 = gkde2.evaluate(xs)
2803+
assert_almost_equal(kdepdf.all(), kdepdf2.all())
2804+
kdepdf3 = gkde3.evaluate(xs)
2805+
assert_almost_equal(kdepdf.all(), kdepdf3.all())
28562806

2857-
assert_raises(ValueError, mlab.ksdensity, xn, bw_method='wrongstring')
28582807

28592808

2809+
#*****************************************************************
2810+
#*****************************************************************
28602811

28612812

2862-
#-----------------------------------------------------------------
2863-
#-----------------------------------------------------------------
28642813
if __name__ == '__main__':
28652814
import nose
28662815
import sys

0 commit comments

Comments
 (0)