55import numpy as np
66from sklearn .datasets import load_digits
77
8+ from tdamapper ._common import profile
89from tdamapper .utils .metrics import euclidean
910from tdamapper .utils .vptree_flat import VPTree as FVPT
1011from tdamapper .utils .vptree_hier import VPTree as HVPT
@@ -21,6 +22,10 @@ def dataset(dim=10, num=1000):
2122 return [np .random .rand (dim ) for _ in range (num )]
2223
2324
25+ def dist_proj (x , y ):
26+ return dist (x [1 :], x [1 :])
27+
28+
2429class TestVpSettings (unittest .TestCase ):
2530
2631 setup_logging ()
@@ -39,11 +44,12 @@ def cover(self, vpt, X, r):
3944 def run_bench (self , X , r , dist , vp , ** kwargs ):
4045 XX = np .array ([[i ] + [xi for xi in x ] for i , x in enumerate (X )])
4146 t0 = time .time ()
42- vpt = vp (XX , metric = lambda x , y : dist ( x [ 1 :], y [ 1 :]) , ** kwargs )
47+ vpt = vp (XX , metric = dist_proj , ** kwargs )
4348 list (self .cover (vpt , XX , r ))
4449 t1 = time .time ()
4550 self .logger .info (f"time: { t1 - t0 } " )
4651
52+ @profile (n_lines = 20 )
4753 def test_cover_random (self ):
4854 for r in [1.0 , 10.0 , 100.0 ]:
4955 for n in [100 , 1000 , 10000 ]:
@@ -61,6 +67,7 @@ def test_cover_random(self):
6167 self .run_bench (X , r , dist , SkBallTree , leaf_radius = r )
6268 self .logger .info ("" )
6369
70+ @profile (n_lines = 20 )
6471 def test_cover_digits (self ):
6572 X , _ = load_digits (return_X_y = True )
6673 # X = PCA(n_components=3).fit_transform(X)
0 commit comments