@@ -75,6 +75,24 @@ def test_wrong_id(self):
7575 mems = mapper .data_from_cluster_id ("new node" , graph , data )
7676 np .testing .assert_array_equal (mems , np .array ([]))
7777
78+ def test_clusters_from_cover (self ):
79+ mapper = KeplerMapper (verbose = 1 )
80+ data = np .random .rand (100 , 2 )
81+
82+ graph = mapper .map (data )
83+ cube_ids = mapper .cover .find (data [0 ])
84+ mems = mapper .clusters_from_cover (cube_ids , graph )
85+ assert len (mems ) > 0
86+ for cluster_id , cluster_members in mems .items ():
87+ np .testing .assert_array_equal (cluster_members , graph ["nodes" ][cluster_id ])
88+
89+ def test_no_clusters_from_cover (self ):
90+ mapper = KeplerMapper (verbose = 1 )
91+ data = np .random .rand (100 , 2 )
92+
93+ graph = mapper .map (data )
94+ mems = mapper .clusters_from_cover ([999 ], graph )
95+ assert len (mems ) == 0
7896
7997class TestMap :
8098 def test_simplices (self ):
@@ -95,6 +113,22 @@ def test_simplices(self):
95113 assert len (nodes ) == 3
96114 assert len (edges ) == 3
97115
116+ def test_nodes (self ):
117+ mapper = KeplerMapper ()
118+
119+ X = np .random .rand (100 , 2 )
120+ lens = mapper .fit_transform (X )
121+ graph = mapper .map (
122+ lens ,
123+ X = X ,
124+ cover = Cover (n_cubes = 3 , perc_overlap = 0.75 ),
125+ clusterer = cluster .DBSCAN (metric = "euclidean" , min_samples = 3 ),
126+ )
127+ assert len (graph ["nodes" ]) == 3
128+ for i , cluster_id in enumerate (graph ["nodes" ]):
129+ # verify cluster ID format
130+ assert cluster_id == "cube{}_cluster0" .format (i )
131+
98132 def test_precomputed (self ):
99133 mapper = KeplerMapper ()
100134
0 commit comments