Skip to content

Commit 776e53b

Browse files
committed
skip unstable tests on 32bit platform
1 parent ca88f91 commit 776e53b

File tree

6 files changed

+27
-3
lines changed

6 files changed

+27
-3
lines changed

sklearn/ensemble/tests/test_forest.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
from sklearn.utils.testing import assert_raises
3030
from sklearn.utils.testing import assert_warns
3131
from sklearn.utils.testing import ignore_warnings
32+
from sklearn.utils.testing import skip_if_32bit
3233

3334
from sklearn import datasets
3435
from sklearn.decomposition import TruncatedSVD
@@ -233,6 +234,7 @@ def check_importances(name, criterion, X, y):
233234
assert_less(np.abs(importances - importances_bis).mean(), 0.001)
234235

235236

237+
@skip_if_32bit
236238
def test_importances():
237239
X, y = datasets.make_classification(n_samples=500, n_features=10,
238240
n_informative=3, n_redundant=0,

sklearn/ensemble/tests/test_gradient_boosting.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from sklearn.utils.testing import assert_raises
2727
from sklearn.utils.testing import assert_true
2828
from sklearn.utils.testing import assert_warns
29+
from sklearn.utils.testing import skip_if_32bit
2930
from sklearn.exceptions import DataConversionWarning
3031
from sklearn.exceptions import NotFittedError
3132

@@ -1030,6 +1031,7 @@ def test_non_uniform_weights_toy_edge_case_clf():
10301031
gb.fit(X, y, sample_weight=sample_weight)
10311032
assert_array_equal(gb.predict([[1, 0]]), [1])
10321033

1034+
10331035
def check_sparse_input(EstimatorClass, X, X_sparse, y):
10341036
dense = EstimatorClass(n_estimators=10, random_state=0,
10351037
max_depth=2).fit(X, y)
@@ -1060,6 +1062,7 @@ def check_sparse_input(EstimatorClass, X, X_sparse, y):
10601062
auto.predict_log_proba(X))
10611063

10621064

1065+
@skip_if_32bit
10631066
def test_sparse_input():
10641067
ests = (GradientBoostingClassifier, GradientBoostingRegressor)
10651068
sparse_matrices = (csr_matrix, csc_matrix, coo_matrix)

sklearn/feature_selection/tests/test_from_model.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55

66
from sklearn.utils.testing import assert_less
77
from sklearn.utils.testing import assert_greater
8-
from sklearn.utils.testing import assert_equal
98
from sklearn.utils.testing import assert_array_almost_equal
109
from sklearn.utils.testing import assert_array_equal
1110
from sklearn.utils.testing import assert_almost_equal
1211
from sklearn.utils.testing import assert_warns
12+
from sklearn.utils.testing import skip_if_32bit
1313

1414
from sklearn import datasets
1515
from sklearn.linear_model import LogisticRegression, SGDClassifier, Lasso
@@ -22,6 +22,7 @@
2222
data, y = iris.data, iris.target
2323
rng = np.random.RandomState(0)
2424

25+
2526
def test_transform_linear_model():
2627
for clf in (LogisticRegression(C=0.1),
2728
LinearSVC(C=0.01, dual=False),
@@ -62,6 +63,7 @@ def test_input_estimator_unchanged():
6263
assert_true(transformer.estimator is est)
6364

6465

66+
@skip_if_32bit
6567
def test_feature_importances():
6668
X, y = datasets.make_classification(
6769
n_samples=1000, n_features=10, n_informative=3, n_redundant=0,
@@ -88,7 +90,7 @@ def test_feature_importances():
8890
transformer = SelectFromModel(estimator=est)
8991
transformer.fit(X, y, sample_weight=sample_weight)
9092
importances = transformer.estimator_.feature_importances_
91-
transformer.fit(X, y, sample_weight=3*sample_weight)
93+
transformer.fit(X, y, sample_weight=3 * sample_weight)
9294
importances_bis = transformer.estimator_.feature_importances_
9395
assert_almost_equal(importances, importances_bis)
9496

sklearn/preprocessing/tests/test_data.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
from sklearn.utils.testing import assert_no_warnings
3030
from sklearn.utils.testing import ignore_warnings
3131
from sklearn.utils.testing import assert_allclose
32+
from sklearn.utils.testing import skip_if_32bit
3233

3334
from sklearn.utils.sparsefuncs import mean_variance_axis
3435
from sklearn.preprocessing.data import _transform_selected
@@ -171,6 +172,7 @@ def test_scale_1d():
171172
assert_array_equal(scale(X, with_mean=False, with_std=False), X)
172173

173174

175+
@skip_if_32bit
174176
def test_standard_scaler_numerical_stability():
175177
"""Test numerical stability of scaling"""
176178
# np.log(1e-5) is taken because of its floating point representation
@@ -436,7 +438,7 @@ def test_standard_scaler_trasform_with_partial_fit():
436438
scaler_incr = StandardScaler()
437439
for i, batch in enumerate(gen_batches(X.shape[0], 1)):
438440

439-
X_sofar = X[:(i+1), :]
441+
X_sofar = X[:(i + 1), :]
440442
chunks_copy = X_sofar.copy()
441443
scaled_batch = StandardScaler().fit_transform(X_sofar)
442444

sklearn/utils/testing.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import sys
1717
import re
1818
import platform
19+
import struct
1920

2021
import scipy as sp
2122
import scipy.io
@@ -686,6 +687,18 @@ def run_test(*args, **kwargs):
686687
return run_test
687688

688689

690+
def skip_if_32bit(func):
691+
"""Test decorator that skips tests on 32bit platforms."""
692+
@wraps(func)
693+
def run_test(*args, **kwargs):
694+
bits = 8 * struct.calcsize("P")
695+
if bits == 32:
696+
raise SkipTest('Test skipped on 32bit platforms.')
697+
else:
698+
return func(*args, **kwargs)
699+
return run_test
700+
701+
689702
def if_not_mac_os(versions=('10.7', '10.8', '10.9'),
690703
message='Multi-process bug in Mac OS X >= 10.7 '
691704
'(see issue #636)'):

sklearn/utils/tests/test_extmath.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from sklearn.utils.testing import assert_true
1717
from sklearn.utils.testing import assert_greater
1818
from sklearn.utils.testing import assert_raises
19+
from sklearn.utils.testing import skip_if_32bit
1920

2021
from sklearn.utils.extmath import density
2122
from sklearn.utils.extmath import logsumexp
@@ -467,6 +468,7 @@ def test_incremental_variance_update_formulas():
467468
assert_almost_equal(final_count, A.shape[0])
468469

469470

471+
@skip_if_32bit
470472
def test_incremental_variance_numerical_stability():
471473
# Test Youngs and Cramer incremental variance formulas.
472474

0 commit comments

Comments
 (0)