diff --git a/doc/datasets/labeled_faces_fixture.py b/doc/datasets/labeled_faces_fixture.py index 0d13c8ddd80a903f720cc685886ecae647126f3b..45d9d4dfc672e171c3eb59459a3659bee27f8d97 100644 --- a/doc/datasets/labeled_faces_fixture.py +++ b/doc/datasets/labeled_faces_fixture.py @@ -5,8 +5,8 @@ and cached in the past. """ from os.path import exists from os.path import join -from nose import SkipTest from sklearn.datasets import get_data_home +from sklearn.utils.testing import SkipTest def setup_module(module): diff --git a/doc/datasets/twenty_newsgroups_fixture.py b/doc/datasets/twenty_newsgroups_fixture.py index 0c84b530674084ea4679bc99a862590c3ad7ffa1..09e95d621d021f2c5fa9f49cf4f6e246d398887b 100644 --- a/doc/datasets/twenty_newsgroups_fixture.py +++ b/doc/datasets/twenty_newsgroups_fixture.py @@ -5,8 +5,9 @@ and cached in the past. """ from os.path import exists from os.path import join -from nose import SkipTest + from sklearn.datasets import get_data_home +from sklearn.utils.testing import SkipTest def setup_module(module): diff --git a/sklearn/cross_decomposition/tests/test_pls.py b/sklearn/cross_decomposition/tests/test_pls.py index 0a27c9cd983195f18edb67da2e8fd47365da3383..c476b2724792f9fe0bf41149a8232f0aba540817 100644 --- a/sklearn/cross_decomposition/tests/test_pls.py +++ b/sklearn/cross_decomposition/tests/test_pls.py @@ -1,10 +1,9 @@ import numpy as np -from sklearn.utils.testing import (assert_array_almost_equal, +from sklearn.utils.testing import (assert_equal, assert_array_almost_equal, assert_array_equal, assert_true, assert_raise_message) from sklearn.datasets import load_linnerud from sklearn.cross_decomposition import pls_, CCA -from nose.tools import assert_equal def test_pls(): diff --git a/sklearn/datasets/mldata.py b/sklearn/datasets/mldata.py index c15e12cc7db6353e8b5966c75535109280661c12..82ae9858e9df620d39d6ff869e1c5ac2a5778726 100644 --- a/sklearn/datasets/mldata.py +++ b/sklearn/datasets/mldata.py @@ -215,7 +215,7 @@ def fetch_mldata(dataname, target_name='label', data_name='data', return Bunch(**dataset) -# The following is used by nosetests to setup the docstring tests fixture +# The following is used by test runners to setup the docstring tests fixture def setup_module(module): # setup mock urllib2 module to avoid downloading from mldata.org diff --git a/sklearn/datasets/tests/test_base.py b/sklearn/datasets/tests/test_base.py index 39a9b2ad89500d0e424641c6c716b210dcd39931..92fe96fa106568f0c4124d301e004b08bee4d969 100644 --- a/sklearn/datasets/tests/test_base.py +++ b/sklearn/datasets/tests/test_base.py @@ -2,7 +2,6 @@ import os import shutil import tempfile import warnings -import nose import numpy from pickle import loads from pickle import dumps @@ -27,6 +26,7 @@ from sklearn.utils.testing import assert_true from sklearn.utils.testing import assert_equal from sklearn.utils.testing import assert_raises from sklearn.utils.testing import assert_array_equal +from sklearn.utils.testing import with_setup DATA_HOME = tempfile.mkdtemp(prefix="scikit_learn_data_home_test_") @@ -84,7 +84,7 @@ def test_default_empty_load_files(): assert_equal(res.DESCR, None) -@nose.tools.with_setup(setup_load_files, teardown_load_files) +@with_setup(setup_load_files, teardown_load_files) def test_default_load_files(): res = load_files(LOAD_FILES_ROOT) assert_equal(len(res.filenames), 1) @@ -93,7 +93,7 @@ def test_default_load_files(): assert_equal(res.data, [b("Hello World!\n")]) -@nose.tools.with_setup(setup_load_files, teardown_load_files) +@with_setup(setup_load_files, teardown_load_files) def test_load_files_w_categories_desc_and_encoding(): category = os.path.abspath(TEST_CATEGORY_DIR1).split('/').pop() res = load_files(LOAD_FILES_ROOT, description="test", @@ -104,7 +104,7 @@ def test_load_files_w_categories_desc_and_encoding(): assert_equal(res.data, [u("Hello World!\n")]) -@nose.tools.with_setup(setup_load_files, teardown_load_files) +@with_setup(setup_load_files, teardown_load_files) def test_load_files_wo_load_content(): res = load_files(LOAD_FILES_ROOT, load_content=False) assert_equal(len(res.filenames), 1) diff --git a/sklearn/decomposition/tests/test_fastica.py b/sklearn/decomposition/tests/test_fastica.py index e47489e51488822e99da30f9831e97efa03d7e9b..d268cdc4e604734ac6eb96609b802d7678f5b18a 100644 --- a/sklearn/decomposition/tests/test_fastica.py +++ b/sklearn/decomposition/tests/test_fastica.py @@ -7,14 +7,13 @@ import warnings import numpy as np from scipy import stats -from nose.tools import assert_raises - from sklearn.utils.testing import assert_almost_equal from sklearn.utils.testing import assert_array_almost_equal from sklearn.utils.testing import assert_true from sklearn.utils.testing import assert_less from sklearn.utils.testing import assert_equal from sklearn.utils.testing import assert_warns +from sklearn.utils.testing import assert_raises from sklearn.decomposition import FastICA, fastica, PCA from sklearn.decomposition.fastica_ import _gs_decorrelation diff --git a/sklearn/ensemble/tests/test_base.py b/sklearn/ensemble/tests/test_base.py index 948f94c76f7646533c08eb0ebee63396727d86b9..8484283fcc0a068f1446a59e072fec4d305c3184 100644 --- a/sklearn/ensemble/tests/test_base.py +++ b/sklearn/ensemble/tests/test_base.py @@ -7,10 +7,11 @@ Testing for the base module (sklearn.ensemble.base). import numpy as np from numpy.testing import assert_equal -from nose.tools import assert_true from sklearn.utils.testing import assert_raise_message from sklearn.utils.testing import assert_not_equal +from sklearn.utils.testing import assert_true + from sklearn.datasets import load_iris from sklearn.ensemble import BaggingClassifier from sklearn.ensemble.base import _set_random_states diff --git a/sklearn/ensemble/tests/test_gradient_boosting_loss_functions.py b/sklearn/ensemble/tests/test_gradient_boosting_loss_functions.py index 8bef99c6ce0129923c700c270a09200c3cdcf5f7..ead2c29b561eb8188287904f1699723d0b2b2cd9 100644 --- a/sklearn/ensemble/tests/test_gradient_boosting_loss_functions.py +++ b/sklearn/ensemble/tests/test_gradient_boosting_loss_functions.py @@ -7,9 +7,8 @@ from numpy.testing import assert_array_equal from numpy.testing import assert_almost_equal from numpy.testing import assert_equal -from nose.tools import assert_raises - from sklearn.utils import check_random_state +from sklearn.utils.testing import assert_raises from sklearn.ensemble.gradient_boosting import BinomialDeviance from sklearn.ensemble.gradient_boosting import LogOddsEstimator from sklearn.ensemble.gradient_boosting import LeastSquaresError diff --git a/sklearn/feature_extraction/tests/test_feature_hasher.py b/sklearn/feature_extraction/tests/test_feature_hasher.py index 34024d59bb1ba82e9a2552e4cd0c02a7e665ba21..c4905b9101ce26e3282b9e527ffcaf0a16a628b8 100644 --- a/sklearn/feature_extraction/tests/test_feature_hasher.py +++ b/sklearn/feature_extraction/tests/test_feature_hasher.py @@ -1,11 +1,10 @@ from __future__ import unicode_literals import numpy as np +from numpy.testing import assert_array_equal from sklearn.feature_extraction import FeatureHasher - -from nose.tools import assert_raises, assert_true -from numpy.testing import assert_array_equal, assert_equal +from sklearn.utils.testing import assert_raises, assert_true, assert_equal def test_feature_hasher_dicts(): @@ -71,7 +70,7 @@ def test_feature_hasher_pairs_with_string_values(): x2_nz = np.abs(x2[x2 != 0]) assert_equal([1], x1_nz) assert_equal([1], x2_nz) - assert_equal(x1, x2) + assert_array_equal(x1, x2) def test_hash_empty_input(): diff --git a/sklearn/feature_extraction/tests/test_image.py b/sklearn/feature_extraction/tests/test_image.py index 1051f99b1a8fa463eb2d6e3c0b6c112bd28ab438..6c57788efe9046502482838ef044ff4a318e4273 100644 --- a/sklearn/feature_extraction/tests/test_image.py +++ b/sklearn/feature_extraction/tests/test_image.py @@ -6,14 +6,13 @@ import numpy as np import scipy as sp from scipy import ndimage -from nose.tools import assert_equal, assert_true from numpy.testing import assert_raises from sklearn.feature_extraction.image import ( img_to_graph, grid_to_graph, extract_patches_2d, reconstruct_from_patches_2d, PatchExtractor, extract_patches) from sklearn.utils.graph import connected_components -from sklearn.utils.testing import SkipTest +from sklearn.utils.testing import SkipTest, assert_equal, assert_true from sklearn.utils.fixes import sp_version if sp_version < (0, 12): diff --git a/sklearn/feature_extraction/tests/test_text.py b/sklearn/feature_extraction/tests/test_text.py index 6f67f7f416bd2c73096eec477ac5902e91973d86..88382f7d13c0b857b5d0ec646ac47be2ed17ae87 100644 --- a/sklearn/feature_extraction/tests/test_text.py +++ b/sklearn/feature_extraction/tests/test_text.py @@ -21,19 +21,15 @@ from sklearn.svm import LinearSVC from sklearn.base import clone import numpy as np -from nose import SkipTest -from nose.tools import assert_equal -from nose.tools import assert_false -from nose.tools import assert_not_equal -from nose.tools import assert_true -from nose.tools import assert_almost_equal from numpy.testing import assert_array_almost_equal from numpy.testing import assert_array_equal from numpy.testing import assert_raises from sklearn.utils.random import choice -from sklearn.utils.testing import (assert_in, assert_less, assert_greater, +from sklearn.utils.testing import (assert_equal, assert_false, assert_true, + assert_not_equal, assert_almost_equal, + assert_in, assert_less, assert_greater, assert_warns_message, assert_raise_message, - clean_warning_registry) + clean_warning_registry, SkipTest) from collections import defaultdict, Mapping from functools import partial diff --git a/sklearn/feature_selection/tests/test_base.py b/sklearn/feature_selection/tests/test_base.py index 8374c61ca8ff6811541bb9208846b54310772843..e11b7d94fcebea8c7f010ee3441ea2e60a81a6d8 100644 --- a/sklearn/feature_selection/tests/test_base.py +++ b/sklearn/feature_selection/tests/test_base.py @@ -1,12 +1,12 @@ import numpy as np from scipy import sparse as sp -from nose.tools import assert_raises, assert_equal from numpy.testing import assert_array_equal from sklearn.base import BaseEstimator from sklearn.feature_selection.base import SelectorMixin from sklearn.utils import check_array +from sklearn.utils.testing import assert_raises, assert_equal class StepSelector(SelectorMixin, BaseEstimator): diff --git a/sklearn/feature_selection/tests/test_from_model.py b/sklearn/feature_selection/tests/test_from_model.py index 06dc3d7f425c2815c9de1da207f843a0c49c5eb8..fe170f09ad80c3abc159ec1087beee38a2a8e937 100644 --- a/sklearn/feature_selection/tests/test_from_model.py +++ b/sklearn/feature_selection/tests/test_from_model.py @@ -1,13 +1,13 @@ import numpy as np import scipy.sparse as sp -from nose.tools import assert_raises, assert_true - +from sklearn.utils.testing import assert_true from sklearn.utils.testing import assert_less from sklearn.utils.testing import assert_greater from sklearn.utils.testing import assert_array_almost_equal from sklearn.utils.testing import assert_array_equal from sklearn.utils.testing import assert_almost_equal +from sklearn.utils.testing import assert_raises from sklearn.utils.testing import assert_warns from sklearn.utils.testing import skip_if_32bit diff --git a/sklearn/feature_selection/tests/test_rfe.py b/sklearn/feature_selection/tests/test_rfe.py index 4daa2c3b282dd509efbede18aed46a8e4bb3435c..95b29ec3cbd650c9c6b3170332fd4478890a577b 100644 --- a/sklearn/feature_selection/tests/test_rfe.py +++ b/sklearn/feature_selection/tests/test_rfe.py @@ -3,7 +3,6 @@ Testing Recursive feature elimination """ import numpy as np from numpy.testing import assert_array_almost_equal, assert_array_equal -from nose.tools import assert_equal, assert_true from scipy import sparse from sklearn.feature_selection.rfe import RFE, RFECV @@ -15,7 +14,7 @@ from sklearn.model_selection import cross_val_score from sklearn.utils import check_random_state from sklearn.utils.testing import ignore_warnings -from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater, assert_equal, assert_true from sklearn.metrics import make_scorer from sklearn.metrics import get_scorer diff --git a/sklearn/gaussian_process/tests/test_gaussian_process.py b/sklearn/gaussian_process/tests/test_gaussian_process.py index 3de37865c340dbbe6594a464fdc2b5be61972871..916507416ceb09fe1117377f1bc0d719f5f55597 100644 --- a/sklearn/gaussian_process/tests/test_gaussian_process.py +++ b/sklearn/gaussian_process/tests/test_gaussian_process.py @@ -5,16 +5,13 @@ Testing for Gaussian Process module (sklearn.gaussian_process) # Author: Vincent Dubourg <vincent.dubourg@gmail.com> # License: BSD 3 clause -from nose.tools import raises -from nose.tools import assert_true - import numpy as np from sklearn.gaussian_process import GaussianProcess from sklearn.gaussian_process import regression_models as regression from sklearn.gaussian_process import correlation_models as correlation from sklearn.datasets import make_regression -from sklearn.utils.testing import assert_greater +from sklearn.utils.testing import assert_greater, assert_true, raises f = lambda x: x * np.sin(x) diff --git a/sklearn/linear_model/tests/test_least_angle.py b/sklearn/linear_model/tests/test_least_angle.py index 0607a143ccd4bd627762a26836e1cb6cb21920dd..9ebb12c82d19f63981ca15d4709544f6757376e1 100644 --- a/sklearn/linear_model/tests/test_least_angle.py +++ b/sklearn/linear_model/tests/test_least_angle.py @@ -1,9 +1,8 @@ -from nose.tools import assert_equal - import numpy as np from scipy import linalg from sklearn.model_selection import train_test_split +from sklearn.utils.testing import assert_equal from sklearn.utils.testing import assert_array_almost_equal from sklearn.utils.testing import assert_true from sklearn.utils.testing import assert_less diff --git a/sklearn/linear_model/tests/test_theil_sen.py b/sklearn/linear_model/tests/test_theil_sen.py index 808650cde66d5d06e7aca34661beacb4a727ea25..279beb8014e9525222adf8417617b0ee133eabef 100644 --- a/sklearn/linear_model/tests/test_theil_sen.py +++ b/sklearn/linear_model/tests/test_theil_sen.py @@ -15,12 +15,13 @@ from numpy.testing import assert_array_equal, assert_array_less from numpy.testing import assert_array_almost_equal, assert_warns from scipy.linalg import norm from scipy.optimize import fmin_bfgs -from nose.tools import raises, assert_almost_equal from sklearn.exceptions import ConvergenceWarning from sklearn.linear_model import LinearRegression, TheilSenRegressor from sklearn.linear_model.theil_sen import _spatial_median, _breakdown_point from sklearn.linear_model.theil_sen import _modified_weiszfeld_step -from sklearn.utils.testing import assert_greater, assert_less +from sklearn.utils.testing import ( + assert_almost_equal, assert_greater, assert_less, raises, +) @contextmanager diff --git a/sklearn/manifold/tests/test_locally_linear.py b/sklearn/manifold/tests/test_locally_linear.py index d1052967bc881cfb5a2d1779b508eabdf8911ece..2b5b77d0f38ee6eaa9eff688ab18736e20fd5603 100644 --- a/sklearn/manifold/tests/test_locally_linear.py +++ b/sklearn/manifold/tests/test_locally_linear.py @@ -1,5 +1,4 @@ from itertools import product -from nose.tools import assert_true import numpy as np from numpy.testing import assert_almost_equal, assert_array_almost_equal @@ -10,6 +9,8 @@ from sklearn.manifold.locally_linear import barycenter_kneighbors_graph from sklearn.utils.testing import assert_less from sklearn.utils.testing import ignore_warnings from sklearn.utils.testing import assert_raise_message +from sklearn.utils.testing import assert_raises +from sklearn.utils.testing import assert_true eigen_solvers = ['dense', 'arpack'] @@ -129,7 +130,6 @@ def test_pipeline(): # Test the error raised when the weight matrix is singular def test_singular_matrix(): - from nose.tools import assert_raises M = np.ones((10, 3)) f = ignore_warnings assert_raises(ValueError, f(manifold.locally_linear_embedding), diff --git a/sklearn/manifold/tests/test_mds.py b/sklearn/manifold/tests/test_mds.py index a078afd8ca21a498a3571c6c8af21ab368c74f5d..7b432dea1370e22b8590a106c29161e9b1ee7eea 100644 --- a/sklearn/manifold/tests/test_mds.py +++ b/sklearn/manifold/tests/test_mds.py @@ -1,8 +1,8 @@ import numpy as np from numpy.testing import assert_array_almost_equal -from nose.tools import assert_raises from sklearn.manifold import mds +from sklearn.utils.testing import assert_raises def test_smacof(): diff --git a/sklearn/manifold/tests/test_spectral_embedding.py b/sklearn/manifold/tests/test_spectral_embedding.py index facefde56be8c520681447d71f1dc74e88729af5..1ebd753008c5d679c59f79be5ebe691acf59e802 100644 --- a/sklearn/manifold/tests/test_spectral_embedding.py +++ b/sklearn/manifold/tests/test_spectral_embedding.py @@ -1,6 +1,3 @@ -from nose.tools import assert_true -from nose.tools import assert_equal - from scipy.sparse import csr_matrix from scipy.sparse import csc_matrix from scipy.sparse import coo_matrix @@ -9,9 +6,6 @@ import numpy as np from numpy.testing import assert_array_almost_equal from numpy.testing import assert_array_equal -from nose.tools import assert_raises -from nose.plugins.skip import SkipTest - from sklearn.manifold.spectral_embedding_ import SpectralEmbedding from sklearn.manifold.spectral_embedding_ import _graph_is_connected from sklearn.manifold.spectral_embedding_ import _graph_connected_component @@ -22,6 +16,8 @@ from sklearn.cluster import KMeans from sklearn.datasets.samples_generator import make_blobs from sklearn.utils.graph import graph_laplacian from sklearn.utils.extmath import _deterministic_vector_sign_flip +from sklearn.utils.testing import assert_true, assert_equal, assert_raises +from sklearn.utils.testing import SkipTest # non centered, sparse centers to check the diff --git a/sklearn/metrics/cluster/tests/test_supervised.py b/sklearn/metrics/cluster/tests/test_supervised.py index b50f681fd148008edec1dffe55c16e5c6fdd912c..913c02d87749c1779ad59e12d68caf2756e12172 100644 --- a/sklearn/metrics/cluster/tests/test_supervised.py +++ b/sklearn/metrics/cluster/tests/test_supervised.py @@ -1,7 +1,4 @@ import numpy as np -from nose.tools import assert_almost_equal -from nose.tools import assert_equal -from numpy.testing import assert_array_almost_equal from sklearn.metrics.cluster import adjusted_mutual_info_score from sklearn.metrics.cluster import adjusted_rand_score @@ -15,7 +12,12 @@ from sklearn.metrics.cluster import homogeneity_score from sklearn.metrics.cluster import mutual_info_score from sklearn.metrics.cluster import normalized_mutual_info_score from sklearn.metrics.cluster import v_measure_score -from sklearn.utils.testing import assert_raise_message + +from sklearn.utils.testing import ( + assert_equal, assert_almost_equal, assert_raise_message, +) +from numpy.testing import assert_array_almost_equal + score_funcs = [ adjusted_rand_score, diff --git a/sklearn/mixture/tests/test_gmm.py b/sklearn/mixture/tests/test_gmm.py index 55f0dfb83f225eeb53ec4d9386f06f88ed6acb40..ccbe08906af0cbc69931c089fa9cfc5d589890ee 100644 --- a/sklearn/mixture/tests/test_gmm.py +++ b/sklearn/mixture/tests/test_gmm.py @@ -8,15 +8,15 @@ import unittest import copy import sys -from nose.tools import assert_true import numpy as np from numpy.testing import (assert_array_equal, assert_array_almost_equal, assert_raises) from scipy import stats from sklearn import mixture from sklearn.datasets.samples_generator import make_spd_matrix -from sklearn.utils.testing import (assert_greater, assert_raise_message, - assert_warns_message, ignore_warnings) +from sklearn.utils.testing import (assert_true, assert_greater, + assert_raise_message, assert_warns_message, + ignore_warnings) from sklearn.metrics.cluster import adjusted_rand_score from sklearn.externals.six.moves import cStringIO as StringIO diff --git a/sklearn/neighbors/tests/test_dist_metrics.py b/sklearn/neighbors/tests/test_dist_metrics.py index adb5c8e50c32453d79937fcd361b1c762449b78c..9544edbd3d619326f359f5d8ec826dc7402bedbe 100644 --- a/sklearn/neighbors/tests/test_dist_metrics.py +++ b/sklearn/neighbors/tests/test_dist_metrics.py @@ -7,7 +7,7 @@ from numpy.testing import assert_array_almost_equal import scipy from scipy.spatial.distance import cdist from sklearn.neighbors.dist_metrics import DistanceMetric -from nose import SkipTest +from sklearn.utils.testing import SkipTest def dist_func(x1, x2, p): diff --git a/sklearn/preprocessing/tests/test_function_transformer.py b/sklearn/preprocessing/tests/test_function_transformer.py index 6b50793e2dcaa31348f8caf6fb67fa4136f9b1c2..dbac7730d42fde907ad85e8da37c44a656c1f484 100644 --- a/sklearn/preprocessing/tests/test_function_transformer.py +++ b/sklearn/preprocessing/tests/test_function_transformer.py @@ -1,8 +1,8 @@ -from nose.tools import assert_equal import numpy as np from sklearn.utils import testing from sklearn.preprocessing import FunctionTransformer +from sklearn.utils.testing import assert_equal, assert_array_equal def _make_func(args_store, kwargs_store, func=lambda X, *a, **k: X): @@ -21,7 +21,7 @@ def test_delegate_to_func(): args_store = [] kwargs_store = {} X = np.arange(10).reshape((5, 2)) - testing.assert_array_equal( + assert_array_equal( FunctionTransformer(_make_func(args_store, kwargs_store)).transform(X), X, 'transform should have returned X unchanged', @@ -48,7 +48,7 @@ def test_delegate_to_func(): kwargs_store.clear() y = object() - testing.assert_array_equal( + assert_array_equal( FunctionTransformer( _make_func(args_store, kwargs_store), pass_y=True, @@ -78,7 +78,7 @@ def test_np_log(): X = np.arange(10).reshape((5, 2)) # Test that the numpy.log example still works. - testing.assert_array_equal( + assert_array_equal( FunctionTransformer(np.log1p).transform(X), np.log1p(X), ) @@ -90,8 +90,8 @@ def test_kw_arg(): F = FunctionTransformer(np.around, kw_args=dict(decimals=3)) # Test that rounding is correct - testing.assert_array_equal(F.transform(X), - np.around(X, decimals=3)) + assert_array_equal(F.transform(X), + np.around(X, decimals=3)) def test_kw_arg_update(): @@ -102,8 +102,7 @@ def test_kw_arg_update(): F.kw_args['decimals'] = 1 # Test that rounding is correct - testing.assert_array_equal(F.transform(X), - np.around(X, decimals=1)) + assert_array_equal(F.transform(X), np.around(X, decimals=1)) def test_kw_arg_reset(): @@ -114,8 +113,7 @@ def test_kw_arg_reset(): F.kw_args = dict(decimals=1) # Test that rounding is correct - testing.assert_array_equal(F.transform(X), - np.around(X, decimals=1)) + assert_array_equal(F.transform(X), np.around(X, decimals=1)) def test_inverse_transform(): @@ -123,8 +121,10 @@ def test_inverse_transform(): # Test that inverse_transform works correctly F = FunctionTransformer( - func=np.sqrt, - inverse_func=np.around, inv_kw_args=dict(decimals=3)) - testing.assert_array_equal( - F.inverse_transform(F.transform(X)), - np.around(np.sqrt(X), decimals=3)) + func=np.sqrt, + inverse_func=np.around, inv_kw_args=dict(decimals=3), + ) + assert_array_equal( + F.inverse_transform(F.transform(X)), + np.around(np.sqrt(X), decimals=3), + ) diff --git a/sklearn/semi_supervised/tests/test_label_propagation.py b/sklearn/semi_supervised/tests/test_label_propagation.py index 5a8c1dd80daf822a7e45d9bf9916edf70e9b3eff..81e7dd028bf5d56c8c5eed42e5410150ab22ebf8 100644 --- a/sklearn/semi_supervised/tests/test_label_propagation.py +++ b/sklearn/semi_supervised/tests/test_label_propagation.py @@ -1,8 +1,8 @@ """ test the label propagation module """ -import nose import numpy as np +from sklearn.utils.testing import assert_equal from sklearn.semi_supervised import label_propagation from sklearn.metrics.pairwise import rbf_kernel from numpy.testing import assert_array_almost_equal @@ -27,7 +27,7 @@ def test_fit_transduction(): labels = [0, 1, -1] for estimator, parameters in ESTIMATORS: clf = estimator(**parameters).fit(samples, labels) - nose.tools.assert_equal(clf.transduction_[2], 1) + assert_equal(clf.transduction_[2], 1) def test_distribution(): diff --git a/sklearn/svm/tests/test_bounds.py b/sklearn/svm/tests/test_bounds.py index ddfa79cf3d88f49450323f7e0450e98391333a9f..7a280d22a6a813a53e4bd286dbff495c5cbff794 100644 --- a/sklearn/svm/tests/test_bounds.py +++ b/sklearn/svm/tests/test_bounds.py @@ -1,7 +1,3 @@ -import nose -from nose.tools import assert_equal, assert_true -from sklearn.utils.testing import clean_warning_registry -from sklearn.utils.testing import assert_raise_message import warnings import numpy as np @@ -11,6 +7,9 @@ from sklearn.svm.bounds import l1_min_c from sklearn.svm import LinearSVC from sklearn.linear_model.logistic import LogisticRegression +from sklearn.utils.testing import assert_true, raises +from sklearn.utils.testing import assert_raise_message + dense_X = [[-1, 0], [0, 1], [1, 1], [1, 1]] sparse_X = sp.csr_matrix(dense_X) @@ -66,13 +65,13 @@ def check_l1_min_c(X, y, loss, fit_intercept=True, intercept_scaling=None): (np.asarray(clf.intercept_) != 0).any()) -@nose.tools.raises(ValueError) +@raises(ValueError) def test_ill_posed_min_c(): X = [[0, 0], [0, 0]] y = [0, 1] l1_min_c(X, y) -@nose.tools.raises(ValueError) +@raises(ValueError) def test_unsupported_loss(): l1_min_c(dense_X, Y1, 'l1') diff --git a/sklearn/svm/tests/test_sparse.py b/sklearn/svm/tests/test_sparse.py index 278e7b4e19ddc41548179e8ed4239768635fbc4c..f2c10ceddd0f10733d0d5029b69b57d923dec1c1 100644 --- a/sklearn/svm/tests/test_sparse.py +++ b/sklearn/svm/tests/test_sparse.py @@ -1,5 +1,3 @@ -from nose.tools import assert_raises, assert_true, assert_false - import numpy as np from scipy import sparse from numpy.testing import (assert_array_almost_equal, assert_array_equal, @@ -10,7 +8,8 @@ from sklearn.datasets import make_classification, load_digits, make_blobs from sklearn.svm.tests import test_svm from sklearn.exceptions import ConvergenceWarning from sklearn.utils.extmath import safe_sparse_dot -from sklearn.utils.testing import (assert_warns, assert_raise_message, +from sklearn.utils.testing import (assert_raises, assert_true, assert_false, + assert_warns, assert_raise_message, ignore_warnings) # test sample 1 diff --git a/sklearn/svm/tests/test_svm.py b/sklearn/svm/tests/test_svm.py index 5befd2331ff3e144a906e77af6ac41b5ce32b22a..33d0e0d6a7cfe836165075ede31bc620fde79b61 100644 --- a/sklearn/svm/tests/test_svm.py +++ b/sklearn/svm/tests/test_svm.py @@ -9,17 +9,17 @@ from numpy.testing import assert_array_equal, assert_array_almost_equal from numpy.testing import assert_almost_equal from numpy.testing import assert_allclose from scipy import sparse -from nose.tools import assert_raises, assert_true, assert_equal, assert_false from sklearn import svm, linear_model, datasets, metrics, base from sklearn.model_selection import train_test_split from sklearn.datasets import make_classification, make_blobs from sklearn.metrics import f1_score from sklearn.metrics.pairwise import rbf_kernel from sklearn.utils import check_random_state +from sklearn.utils.testing import assert_equal, assert_true, assert_false from sklearn.utils.testing import assert_greater, assert_in, assert_less from sklearn.utils.testing import assert_raises_regexp, assert_warns from sklearn.utils.testing import assert_warns_message, assert_raise_message -from sklearn.utils.testing import ignore_warnings +from sklearn.utils.testing import ignore_warnings, assert_raises from sklearn.exceptions import ChangedBehaviorWarning from sklearn.exceptions import ConvergenceWarning from sklearn.exceptions import NotFittedError diff --git a/sklearn/tests/test_discriminant_analysis.py b/sklearn/tests/test_discriminant_analysis.py index 2312da24402ce7df47ad7bb2b20fd4e129836474..24b7a1340526f4f06008726c3cc85319ee357f35 100644 --- a/sklearn/tests/test_discriminant_analysis.py +++ b/sklearn/tests/test_discriminant_analysis.py @@ -1,6 +1,5 @@ import sys import numpy as np -from nose import SkipTest from sklearn.utils.testing import assert_array_equal from sklearn.utils.testing import assert_array_almost_equal @@ -12,6 +11,7 @@ from sklearn.utils.testing import assert_raise_message from sklearn.utils.testing import assert_warns from sklearn.utils.testing import assert_greater from sklearn.utils.testing import ignore_warnings +from sklearn.utils.testing import SkipTest from sklearn.datasets import make_blobs from sklearn.discriminant_analysis import LinearDiscriminantAnalysis diff --git a/sklearn/tree/tests/test_export.py b/sklearn/tree/tests/test_export.py index e35c3fd88931e4b487042db944e400d914fe3ddf..1379a7703f31fca005ae0234bf903875034ad96b 100644 --- a/sklearn/tree/tests/test_export.py +++ b/sklearn/tree/tests/test_export.py @@ -4,14 +4,11 @@ Testing for export functions of decision trees (sklearn.tree.export). from re import finditer -from numpy.testing import assert_equal -from nose.tools import assert_raises - from sklearn.tree import DecisionTreeClassifier, DecisionTreeRegressor from sklearn.ensemble import GradientBoostingClassifier from sklearn.tree import export_graphviz from sklearn.externals.six import StringIO -from sklearn.utils.testing import assert_in +from sklearn.utils.testing import assert_in, assert_equal, assert_raises # toy sample X = [[-2, -1], [-1, -1], [-1, -2], [1, 1], [1, 2], [2, 1]] diff --git a/sklearn/utils/sparsetools/tests/test_traversal.py b/sklearn/utils/sparsetools/tests/test_traversal.py index 9b42a6211807375c9b74995802fec421d4de485c..6a0e96829b3b03a091e5894424031ce1f3bd81a7 100644 --- a/sklearn/utils/sparsetools/tests/test_traversal.py +++ b/sklearn/utils/sparsetools/tests/test_traversal.py @@ -1,9 +1,9 @@ from __future__ import division, print_function, absolute_import -from nose import SkipTest - import numpy as np from numpy.testing import assert_array_almost_equal +from sklearn.utils.testing import SkipTest + try: from scipy.sparse.csgraph import breadth_first_tree, depth_first_tree,\ csgraph_to_dense, csgraph_from_dense diff --git a/sklearn/utils/testing.py b/sklearn/utils/testing.py index b460f83eccd76fb76c0c916af6e5b5a740f642a4..1146b4f645048b1e6b1b00cea17535329c25fbb8 100644 --- a/sklearn/utils/testing.py +++ b/sklearn/utils/testing.py @@ -36,6 +36,7 @@ import tempfile import shutil import os.path as op import atexit +import unittest # WindowsError only exist on Windows try: @@ -47,19 +48,7 @@ import sklearn from sklearn.base import BaseEstimator from sklearn.externals import joblib -# Conveniently import all assertions in one place. -from nose.tools import assert_equal -from nose.tools import assert_not_equal -from nose.tools import assert_true -from nose.tools import assert_false -from nose.tools import assert_raises from nose.tools import raises -try: - from nose.tools import assert_dict_equal -except ImportError: - # Not in old versions of nose, but is only for formatting anyway - assert_dict_equal = assert_equal -from nose import SkipTest from nose import with_setup from numpy.testing import assert_almost_equal @@ -79,13 +68,31 @@ __all__ = ["assert_equal", "assert_not_equal", "assert_raises", "assert_array_almost_equal", "assert_array_less", "assert_less", "assert_less_equal", "assert_greater", "assert_greater_equal", - "assert_approx_equal"] + "assert_approx_equal", "SkipTest"] + +_dummy = unittest.TestCase('__init__') +assert_equal = _dummy.assertEqual +assert_not_equal = _dummy.assertNotEqual +assert_true = _dummy.assertTrue +assert_false = _dummy.assertFalse +assert_raises = _dummy.assertRaises try: - from nose.tools import assert_in, assert_not_in -except ImportError: - # Nose < 1.0.0 + SkipTest = unittest.case.SkipTest +except AttributeError: + # Python <= 2.6, we stil need nose here + from nose import SkipTest + + +try: + assert_dict_equal = _dummy.assertDictEqual + assert_in = _dummy.assertIn + assert_not_in = _dummy.assertNotIn +except AttributeError: + # Python <= 2.6 + + assert_dict_equal = assert_equal def assert_in(x, container): assert_true(x in container, msg="%r in %r" % (x, container)) @@ -94,9 +101,9 @@ except ImportError: assert_false(x in container, msg="%r in %r" % (x, container)) try: - from nose.tools import assert_raises_regex -except ImportError: - # for Python 2 + assert_raises_regex = _dummy.assertRaisesRegex +except AttributeError: + # for Python 2.6 def assert_raises_regex(expected_exception, expected_regexp, callable_obj=None, *args, **kwargs): """Helper function to check for message patterns in exceptions.""" @@ -378,13 +385,10 @@ class _IgnoreWarnings(object): try: - from nose.tools import assert_less -except ImportError: + assert_less = _dummy.assertLess + assert_greater = _dummy.assertGreater +except AttributeError: assert_less = _assert_less - -try: - from nose.tools import assert_greater -except ImportError: assert_greater = _assert_greater diff --git a/sklearn/utils/tests/test_bench.py b/sklearn/utils/tests/test_bench.py index 102d71d7abd51ab05956bd43bbb128f6c7d7fff5..c04ba4ad25eba755ec2638980951afd81bc86010 100644 --- a/sklearn/utils/tests/test_bench.py +++ b/sklearn/utils/tests/test_bench.py @@ -2,7 +2,7 @@ import datetime from sklearn.utils.bench import total_seconds -from nose.tools import assert_equal +from sklearn.utils.testing import assert_equal def test_total_seconds(): diff --git a/sklearn/utils/tests/test_fast_dict.py b/sklearn/utils/tests/test_fast_dict.py index 19923124e8827e9501931069ae9772589f5f8970..1b0b0fd68e0862a8b87000ac807b51522ce65527 100644 --- a/sklearn/utils/tests/test_fast_dict.py +++ b/sklearn/utils/tests/test_fast_dict.py @@ -1,11 +1,12 @@ """ Test fast_dict. """ import numpy as np -from nose.tools import assert_equal from sklearn.utils.fast_dict import IntFloatDict, argmin +from sklearn.utils.testing import assert_equal from sklearn.externals.six.moves import xrange + def test_int_float_dict(): rng = np.random.RandomState(0) keys = np.unique(rng.randint(100, size=10).astype(np.intp)) diff --git a/sklearn/utils/tests/test_fixes.py b/sklearn/utils/tests/test_fixes.py index 4494f87b5feb4c523cf352d46566c72f0817687e..f5817f246b908a5037daa8934549f95c7cc8ae73 100644 --- a/sklearn/utils/tests/test_fixes.py +++ b/sklearn/utils/tests/test_fixes.py @@ -5,14 +5,11 @@ import numpy as np -from nose.tools import assert_equal -from nose.tools import assert_false -from nose.tools import assert_true from numpy.testing import (assert_almost_equal, assert_array_almost_equal) - from sklearn.utils.fixes import divide, expit from sklearn.utils.fixes import astype +from sklearn.utils.testing import assert_equal, assert_false, assert_true def test_expit(): diff --git a/sklearn/utils/tests/test_metaestimators.py b/sklearn/utils/tests/test_metaestimators.py index d73c67d0d19832d26f3602c8d8c68a535bbd2a5d..2a016ebefa5651a7590987f1de21a0048ff08627 100644 --- a/sklearn/utils/tests/test_metaestimators.py +++ b/sklearn/utils/tests/test_metaestimators.py @@ -1,4 +1,4 @@ -from nose.tools import assert_true, assert_false +from sklearn.utils.testing import assert_true, assert_false from sklearn.utils.metaestimators import if_delegate_has_method diff --git a/sklearn/utils/tests/test_murmurhash.py b/sklearn/utils/tests/test_murmurhash.py index f92cb4a80bdb30481c90b1fba1351035026b7072..f51c5f7e26c3c2d0aa2a911594e95921796d0f4e 100644 --- a/sklearn/utils/tests/test_murmurhash.py +++ b/sklearn/utils/tests/test_murmurhash.py @@ -7,7 +7,7 @@ from sklearn.externals.six import b, u from sklearn.utils.murmurhash import murmurhash3_32 from numpy.testing import assert_array_almost_equal from numpy.testing import assert_array_equal -from nose.tools import assert_equal, assert_true +from sklearn.utils.testing import assert_equal, assert_true def test_mmhash3_int(): diff --git a/sklearn/utils/tests/test_seq_dataset.py b/sklearn/utils/tests/test_seq_dataset.py index fad7e3abcb546882c5751e3b4661a08d4904a118..aaa3e43fc9938919ff04778855bbc750407072ac 100644 --- a/sklearn/utils/tests/test_seq_dataset.py +++ b/sklearn/utils/tests/test_seq_dataset.py @@ -3,13 +3,13 @@ # License: BSD 3 clause import numpy as np +from numpy.testing import assert_array_equal import scipy.sparse as sp from sklearn.utils.seq_dataset import ArrayDataset, CSRDataset from sklearn.datasets import load_iris -from numpy.testing import assert_array_equal -from nose.tools import assert_equal +from sklearn.utils.testing import assert_equal iris = load_iris() X = iris.data.astype(np.float64) diff --git a/sklearn/utils/tests/test_testing.py b/sklearn/utils/tests/test_testing.py index ea76333a6eafcb2d9e1d359baeb75f7eaa5707b8..17e9209dbce851dd86bd99116e202ea8873d0ecd 100644 --- a/sklearn/utils/tests/test_testing.py +++ b/sklearn/utils/tests/test_testing.py @@ -2,9 +2,8 @@ import warnings import unittest import sys -from nose.tools import assert_raises - from sklearn.utils.testing import ( + assert_raises, _assert_less, _assert_greater, assert_less_equal, diff --git a/sklearn/utils/tests/test_validation.py b/sklearn/utils/tests/test_validation.py index a6268b08d1a818b10dfccd983957731420eefadd..9c57ab4e96de88dbd119f70726fd10e9c5363215 100644 --- a/sklearn/utils/tests/test_validation.py +++ b/sklearn/utils/tests/test_validation.py @@ -8,9 +8,9 @@ from itertools import product import numpy as np from numpy.testing import assert_array_equal import scipy.sparse as sp -from nose.tools import assert_raises, assert_true, assert_false, assert_equal -from sklearn.utils.testing import assert_raises_regexp +from sklearn.utils.testing import assert_true, assert_false, assert_equal +from sklearn.utils.testing import assert_raises, assert_raises_regexp from sklearn.utils.testing import assert_no_warnings from sklearn.utils.testing import assert_warns_message from sklearn.utils.testing import assert_warns