def test_projection_without_pipeline(self): # accomodate scaling, values are in (0,1), but will be scaled slightly atol = 0.1 mapper = KeplerMapper(verbose=1) data = np.random.rand(100, 5) lens = mapper.project(data, projection=[0, 1]) np.testing.assert_allclose(lens, data[:, :2], atol=atol) lens = mapper.project(data, projection=[0]) np.testing.assert_allclose(lens, data[:, :1], atol=atol)
def test_logging_in_project(self, capsys): mapper = KeplerMapper(verbose=2) data = np.random.rand(100, 2) lens = mapper.project(data) captured = capsys.readouterr() assert "Projecting on" in captured[0]
def test_tuple_projection_fit(self): mapper = KeplerMapper() data = np.random.rand(100, 5) y = np.random.rand(100, 1) lens = mapper.project(data, projection=(Lasso(), data, y), scaler=None) # hard to test this, at least it doesn't fail assert lens.shape == (100, 1)
def test_project_sklearn_class(self): mapper = KeplerMapper() data = np.random.rand(100, 5) lens = mapper.project(data, projection=PCA(n_components=1), scaler=None) pca = PCA(n_components=1) lens_confirm = pca.fit_transform(data) assert lens.shape == (100, 1) np.testing.assert_array_equal(lens, lens_confirm)
def test_tuple_projection(self): mapper = KeplerMapper() data = np.random.rand(100, 5) y = np.random.rand(100, 1) lasso = Lasso() lasso.fit(data, y) lens = mapper.project(data, projection=(lasso, data), scaler=None) # hard to test this, at least it doesn't fail assert lens.shape == (100, 1) np.testing.assert_array_equal(lens, lasso.predict(data).reshape((100, 1)))
def test_knn_distance(self): mapper = KeplerMapper() data = np.random.rand(100, 5) lens = mapper.project(data, projection="knn_distance_4", scaler=None) nn = neighbors.NearestNeighbors(n_neighbors=4) nn.fit(data) lens_confirm = np.sum( nn.kneighbors(data, n_neighbors=4, return_distance=True)[0], axis=1 ).reshape((-1, 1)) assert lens.shape == (100, 1) np.testing.assert_array_equal(lens, lens_confirm)
def test_remove_duplicates_argument(self, capsys): mapper = KeplerMapper(verbose=1) X = np.random.rand(100, 5) lens = mapper.project(X) graph = mapper.map( lens, X=X, cover=Cover(n_cubes=2, perc_overlap=1), clusterer=cluster.DBSCAN(metric="euclidean", min_samples=3), remove_duplicate_nodes=True, ) captured = capsys.readouterr() assert "duplicate nodes" in captured[0]