11import numpy as np
22
33from tdamapper .core import TrivialCover
4- from tdamapper .cover import BallCover , CubicalCover , KNNCover
4+ from tdamapper .cover import (
5+ BallCover ,
6+ KNNCover ,
7+ ProximityCubicalCover ,
8+ StandardCubicalCover ,
9+ )
510
611
712def test_trivial_cover_empty ():
@@ -13,7 +18,14 @@ def test_trivial_cover_empty():
1318
1419
1520def test_trivial_cover_ok ():
16- data = np .array ([[0.0 , 1.0 ], [1.0 , 0.0 ], [0.0 , 0.0 ], [1.0 , 1.0 ]])
21+ data = np .array (
22+ [
23+ [0.0 , 1.0 ],
24+ [1.0 , 0.0 ],
25+ [0.0 , 0.0 ],
26+ [1.0 , 1.0 ],
27+ ]
28+ )
1729 cover = TrivialCover ()
1830 cover .fit (data )
1931 charts = list (cover .transform (data ))
@@ -29,17 +41,24 @@ def test_ball_cover_empty():
2941
3042
3143def test_ball_cover_ok ():
32- data = [
33- np .array ([0.0 , 1.0 ]),
34- np .array ([1.0 , 0.0 ]),
35- np .array ([0.0 , 0.0 ]),
36- np .array ([1.0 , 1.0 ]),
37- ]
44+ data = np .array (
45+ [
46+ [0.0 , 1.0 ],
47+ [1.0 , 0.0 ],
48+ [0.0 , 0.0 ],
49+ [1.0 , 1.0 ],
50+ ]
51+ )
3852 cover = BallCover (radius = 1.1 , metric = "euclidean" )
3953 cover .fit (data )
4054 charts = list (cover .transform (data ))
4155 assert 2 == len (charts )
4256
57+ data_extra = np .array ([[1.25 , 1.25 ], [1.7 , 1.7 ]])
58+ charts = list (cover .transform (data_extra ))
59+ assert 1 == len (charts )
60+ assert 2 == len (charts [0 ])
61+
4362
4463def test_ball_cover_params ():
4564 cover = BallCover (radius = 1.0 , metric = "euclidean" )
@@ -57,17 +76,24 @@ def test_knn_cover_empty():
5776
5877
5978def test_knn_cover_ok ():
60- data = [
61- np .array ([0.0 , 1.0 ]),
62- np .array ([1.1 , 0.0 ]),
63- np .array ([0.0 , 0.0 ]),
64- np .array ([1.1 , 1.0 ]),
65- ]
79+ data = np .array (
80+ [
81+ [0.0 , 1.0 ],
82+ [1.1 , 0.0 ],
83+ [0.0 , 0.0 ],
84+ [1.1 , 1.0 ],
85+ ]
86+ )
6687 cover = KNNCover (neighbors = 2 , metric = "euclidean" )
6788 cover .fit (data )
6889 charts = list (cover .transform (data ))
6990 assert 2 == len (charts )
7091
92+ data_extra = np .array ([[1.25 , 1.25 ], [1.7 , 1.7 ]])
93+ charts = list (cover .transform (data_extra ))
94+ assert 1 == len (charts )
95+ assert 2 == len (charts [0 ])
96+
7197
7298def test_knn_cover_params ():
7399 cover = KNNCover (neighbors = 2 , metric = "euclidean" )
@@ -76,37 +102,44 @@ def test_knn_cover_params():
76102 assert "euclidean" == params ["metric" ]
77103
78104
79- def test_cubical_cover_empty ():
105+ def test_proximity_cubical_cover_empty ():
80106 data = []
81- cover = CubicalCover (n_intervals = 2 , overlap_frac = 0.5 )
107+ cover = ProximityCubicalCover (n_intervals = 2 , overlap_frac = 0.5 )
82108 cover .fit (data )
83109 charts = list (cover .transform (data ))
84110 assert 0 == len (charts )
85111
86112
87- def test_cubical_cover_ok ():
88- data = [
89- np .array ([0.0 , 1.0 ]),
90- np .array ([1.1 , 0.0 ]),
91- np .array ([0.0 , 0.0 ]),
92- np .array ([1.1 , 1.0 ]),
93- ]
94- cover = CubicalCover (n_intervals = 2 , overlap_frac = 0.5 )
113+ def test_proximity_cubical_cover_ok ():
114+ data = np .array (
115+ [
116+ [0.0 , 1.0 ],
117+ [1.1 , 0.0 ],
118+ [0.0 , 0.0 ],
119+ [1.1 , 1.0 ],
120+ ]
121+ )
122+ cover = ProximityCubicalCover (n_intervals = 2 , overlap_frac = 0.5 )
95123 cover .fit (data )
96124 charts = list (cover .transform (data ))
97125 assert 4 == len (charts )
98126
127+ data_extra = np .array ([[1.25 , 1.25 ], [1.26 , 1.26 ]])
128+ charts = list (cover .transform (data_extra ))
129+ assert 1 == len (charts )
130+ assert 2 == len (charts [0 ])
99131
100- def test_cubical_cover_params ():
101- cover = CubicalCover (n_intervals = 2 , overlap_frac = 0.5 )
132+
133+ def test_proximity_cubical_cover_params ():
134+ cover = ProximityCubicalCover (n_intervals = 2 , overlap_frac = 0.5 )
102135 params = cover .get_params (deep = True )
103136 assert 2 == params ["n_intervals" ]
104137 assert 0.5 == params ["overlap_frac" ]
105138
106139
107140def test_standard_cover_empty ():
108141 data = []
109- cover = CubicalCover (
142+ cover = StandardCubicalCover (
110143 n_intervals = 2 ,
111144 overlap_frac = 0.5 ,
112145 )
@@ -116,29 +149,28 @@ def test_standard_cover_empty():
116149
117150
118151def test_standard_cover_ok ():
119- data = [
120- np .array ([0.0 , 1.0 ]),
121- np .array ([1.1 , 0.0 ]),
122- np .array ([0.0 , 0.0 ]),
123- np .array ([1.1 , 1.0 ]),
124- ]
125- cover = CubicalCover (
152+ data = np .array (
153+ [
154+ [0.0 , 1.0 ],
155+ [1.1 , 0.0 ],
156+ [0.0 , 0.0 ],
157+ [1.1 , 1.0 ],
158+ ]
159+ )
160+ cover = StandardCubicalCover (
126161 n_intervals = 2 ,
127162 overlap_frac = 0.5 ,
128- algorithm = "standard" ,
129163 )
130164 cover .fit (data )
131165 charts = list (cover .transform (data ))
132166 assert 4 == len (charts )
133167
134168
135169def test_standard_cover_params ():
136- cover = CubicalCover (
170+ cover = StandardCubicalCover (
137171 n_intervals = 2 ,
138172 overlap_frac = 0.5 ,
139- algorithm = "standard" ,
140173 )
141174 params = cover .get_params (deep = True )
142175 assert 2 == params ["n_intervals" ]
143176 assert 0.5 == params ["overlap_frac" ]
144- assert "standard" == params ["algorithm" ]
0 commit comments