Skip to content

Commit 77a03e6

Browse files
committed
Added test
1 parent e5495d2 commit 77a03e6

File tree

3 files changed

+54
-0
lines changed

3 files changed

+54
-0
lines changed

test/flann_hierarchical_test.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,13 @@ TEST_F(HierarchicalIndex_Brief100K, TestSearch)
6363
query, indices, dists, k_nn_, flann::SearchParams(2000), 0.9, gt_indices, gt_dists);
6464
}
6565

66+
TEST_F(HierarchicalIndex_Brief100K, TestSearch2)
67+
{
68+
TestSearch2<Distance>(data, flann::HierarchicalClusteringIndexParams(),
69+
query, indices, dists, k_nn_, flann::SearchParams(2000), 0.9, gt_indices, gt_dists);
70+
}
71+
72+
6673
TEST_F(HierarchicalIndex_Brief100K, TestAddIncremental)
6774
{
6875
TestAddIncremental<Distance>(data, flann::HierarchicalClusteringIndexParams(),
@@ -101,6 +108,9 @@ TEST_F(HierarchicalIndex_Brief100K, TestCopy2)
101108
}
102109

103110

111+
112+
113+
104114
int main(int argc, char** argv)
105115
{
106116
testing::InitGoogleTest(&argc, argv);

test/flann_kdtree_test.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,13 @@ TEST_F(KDTree_SIFT10K, TestSearch)
2222
dists, knn, flann::SearchParams(256), 0.75, gt_indices);
2323
}
2424

25+
TEST_F(KDTree_SIFT10K, TestSearch2)
26+
{
27+
TestSearch2<flann::L2<float> >(data, flann::KDTreeIndexParams(4), query, indices,
28+
dists, knn, flann::SearchParams(256), 0.75, gt_indices);
29+
}
30+
31+
2532
TEST_F(KDTree_SIFT10K, TestAddIncremental)
2633
{
2734
TestAddIncremental<flann::L2<float> >(data, flann::KDTreeIndexParams(4), query, indices,

test/flann_tests.h

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,43 @@ class FLANNTestFixture : public ::testing::Test {
164164
printf("Precision: %g\n", precision);
165165
}
166166

167+
168+
template<typename Distance>
169+
void TestSearch2(const flann::Matrix<typename Distance::ElementType>& data,
170+
const flann::IndexParams& index_params,
171+
const flann::Matrix<typename Distance::ElementType>& query,
172+
flann::Matrix<size_t>& indices,
173+
flann::Matrix<typename Distance::ResultType>& dists,
174+
size_t knn,
175+
const flann::SearchParams& search_params,
176+
float expected_precision,
177+
const flann::Matrix<size_t>& gt_indices,
178+
const flann::Matrix<typename Distance::ResultType>& gt_dists = flann::Matrix<typename Distance::ResultType>())
179+
{
180+
flann::seed_random(0);
181+
Index<Distance> index(index_params);
182+
char message[256];
183+
const char* index_name = index_type_to_name(index.getType());
184+
sprintf(message, "Building %s index... ", index_name);
185+
start_timer( message );
186+
index.buildIndex(data);
187+
printf("done (%g seconds)\n", stop_timer());
188+
189+
start_timer("Searching KNN...");
190+
index.knnSearch(query, indices, dists, knn, search_params );
191+
printf("done (%g seconds)\n", stop_timer());
192+
193+
float precision;
194+
if (gt_dists.ptr()==NULL) {
195+
precision = compute_precision(gt_indices, indices);
196+
}
197+
else {
198+
precision = computePrecisionDiscrete(gt_dists, dists);
199+
}
200+
EXPECT_GE(precision, expected_precision);
201+
printf("Precision: %g\n", precision);
202+
}
203+
167204
template<typename Distance>
168205
void TestAddIncremental(const flann::Matrix<typename Distance::ElementType>& data,
169206
const flann::IndexParams& index_params,

0 commit comments

Comments
 (0)