def test_precomputed(self): mapper = KeplerMapper() X = np.random.rand(100, 2) X_pdist = distance.squareform(distance.pdist(X, metric="euclidean")) lens = mapper.fit_transform(X_pdist) graph = mapper.map( lens, X=X_pdist, cover=Cover(n_cubes=10, perc_overlap=0.8), clusterer=cluster.DBSCAN(metric="precomputed", min_samples=3), precomputed=True, ) graph2 = mapper.map( lens, X=X, cover=Cover(n_cubes=10, perc_overlap=0.8), clusterer=cluster.DBSCAN(metric="euclidean", min_samples=3), ) assert graph["links"] == graph2["links"] assert graph["nodes"] == graph2["nodes"] assert graph["simplices"] == graph2["simplices"]
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]
def test_simplices(self): mapper = KeplerMapper() X = np.random.rand(100, 2) lens = mapper.fit_transform(X) graph = mapper.map( lens, X=X, cover=Cover(n_cubes=3, perc_overlap=0.75), clusterer=cluster.DBSCAN(metric="euclidean", min_samples=3), ) assert max([len(s) for s in graph["simplices"]]) <= 2 nodes = [n for n in graph["simplices"] if len(n) == 1] edges = [n for n in graph["simplices"] if len(n) == 2] assert len(nodes) == 3 assert len(edges) == 3