3 # 2009-01-16, Xavier Delacour <xavier.delacour@gmail.com>
7 from numpy.linalg import *;
11 from adaptors import *;
13 def planted_neighbors(query_points, R = .4):
14 n,d = query_points.shape
15 data = zeros(query_points.shape)
18 a = random.rand()*R*a/sqrt(sum(a**2))
19 data[i] = query_points[i] + a
22 class feature_tree_test(unittest.TestCase):
24 def test_kdtree_basic(self):
27 query_points = random.rand(n,d)*2-1;
28 data = planted_neighbors(query_points)
30 tr = cvCreateKDTree(data);
31 indices,dist = cvFindFeatures(tr, query_points, 1, 100);
33 correct = sum([i == j for j,i in enumerate(indices)])
34 assert(correct >= n * .75);
36 def test_spilltree_basic(self):
39 query_points = random.rand(n,d)*2-1;
40 data = planted_neighbors(query_points)
42 tr = cvCreateSpillTree(data);
43 indices,dist = cvFindFeatures(tr, query_points, 1, 100);
45 correct = sum([i == j for j,i in enumerate(indices)])
46 assert(correct >= n * .75);
49 return unittest.TestLoader().loadTestsFromTestCase(feature_tree_test)
51 if __name__ == '__main__':
53 unittest.TextTestRunner(verbosity=2).run(suite)