32 #define TEST_NAME "base/scene_clustering"
43 const std::vector<std::pair<image_t, image_t>> image_pairs;
44 const std::vector<int> num_inliers;
51 scene_clustering.
Partition(image_pairs, num_inliers);
59 const std::vector<std::pair<image_t, image_t>> image_pairs = {{0, 1}};
60 const std::vector<int> num_inliers = {10};
67 scene_clustering.
Partition(image_pairs, num_inliers);
79 const std::vector<std::pair<image_t, image_t>> image_pairs = {{0, 1}};
80 const std::vector<int> num_inliers = {10};
87 scene_clustering.
Partition(image_pairs, num_inliers);
94 BOOST_CHECK_EQUAL(scene_clustering.
GetLeafClusters()[0]->image_ids[0], 1);
95 BOOST_CHECK_EQUAL(scene_clustering.
GetLeafClusters()[1]->image_ids[0], 0);
99 const std::vector<std::pair<image_t, image_t>> image_pairs = {{0, 1}, {0, 2}};
100 const std::vector<int> num_inliers = {10, 11};
107 scene_clustering.
Partition(image_pairs, num_inliers);
113 std::set<int> image_ids;
117 BOOST_CHECK_EQUAL(image_ids.size(), 3);
118 BOOST_CHECK(image_ids.count(0));
119 BOOST_CHECK(image_ids.count(1));
120 BOOST_CHECK(image_ids.count(2));
124 const std::vector<std::pair<image_t, image_t>> image_pairs = {{0, 1}, {0, 2}};
125 const std::vector<int> num_inliers = {10, 11};
132 scene_clustering.
Partition(image_pairs, num_inliers);
138 BOOST_CHECK_EQUAL(scene_clustering.
GetLeafClusters()[0]->image_ids.size(), 1);
139 BOOST_CHECK_EQUAL(scene_clustering.
GetLeafClusters()[1]->image_ids.size(), 2);
140 std::set<int> image_ids;
144 BOOST_CHECK_EQUAL(image_ids.size(), 3);
145 BOOST_CHECK(image_ids.count(0));
146 BOOST_CHECK(image_ids.count(1));
147 BOOST_CHECK(image_ids.count(2));
151 const std::vector<std::pair<image_t, image_t>> image_pairs = {
152 {0, 1}, {0, 2}, {1, 2}, {0, 3}, {1, 3}, {2, 3}};
153 const std::vector<int> num_inliers = {10, 11, 12, 13, 14, 15};
160 scene_clustering.
Partition(image_pairs, num_inliers);
167 BOOST_CHECK_EQUAL(scene_clustering.
GetLeafClusters()[0]->image_ids.size(), 3);
168 const std::set<image_t> image_ids0(
171 BOOST_CHECK(image_ids0.count(0));
172 BOOST_CHECK(image_ids0.count(1) || image_ids0.count(2));
173 BOOST_CHECK(image_ids0.count(3));
174 BOOST_CHECK_EQUAL(scene_clustering.
GetLeafClusters()[1]->image_ids.size(), 3);
175 const std::set<image_t> image_ids1(
178 BOOST_CHECK(image_ids1.count(1));
179 BOOST_CHECK(image_ids0.count(0) || image_ids0.count(2));
180 BOOST_CHECK(image_ids1.count(3));
184 const std::vector<std::pair<image_t, image_t>> image_pairs = {
185 {0, 1}, {0, 2}, {1, 2}, {0, 3}, {1, 3}, {2, 3}};
186 const std::vector<int> num_inliers = {10, 11, 12, 13, 14, 15};
193 scene_clustering.
Partition(image_pairs, num_inliers);
200 BOOST_CHECK_EQUAL(scene_clustering.
GetLeafClusters()[0]->image_ids.size(), 4);
201 const std::set<image_t> image_ids0(
204 BOOST_CHECK(image_ids0.count(0));
205 BOOST_CHECK(image_ids0.count(1));
206 BOOST_CHECK(image_ids0.count(2));
207 BOOST_CHECK(image_ids0.count(3));
208 BOOST_CHECK_EQUAL(scene_clustering.
GetLeafClusters()[1]->image_ids.size(), 4);
209 const std::set<image_t> image_ids1(
212 BOOST_CHECK(image_ids1.count(0));
213 BOOST_CHECK(image_ids1.count(1));
214 BOOST_CHECK(image_ids1.count(2));
215 BOOST_CHECK(image_ids1.count(3));
219 const std::vector<std::pair<image_t, image_t>> image_pairs = {
220 {0, 1}, {2, 3}, {4, 5}, {1, 2}, {3, 4}, {5, 0}, {0, 3}, {2, 5}, {4, 1}};
221 const std::vector<int> num_inliers = {100, 100, 100, 10, 10, 10, 1, 1, 1};
229 scene_clustering.
Partition(image_pairs, num_inliers);
238 BOOST_CHECK_EQUAL(scene_clustering.
GetLeafClusters()[0]->image_ids.size(), 2);
239 const std::set<image_t> image_ids0(
242 BOOST_CHECK(image_ids0.count(0));
243 BOOST_CHECK(image_ids0.count(1));
244 BOOST_CHECK_EQUAL(scene_clustering.
GetLeafClusters()[1]->image_ids.size(), 2);
245 const std::set<image_t> image_ids1(
248 BOOST_CHECK(image_ids1.count(2));
249 BOOST_CHECK(image_ids1.count(3));
250 BOOST_CHECK_EQUAL(scene_clustering.
GetLeafClusters()[2]->image_ids.size(), 2);
251 const std::set<image_t> image_ids2(
254 BOOST_CHECK(image_ids2.count(4));
255 BOOST_CHECK(image_ids2.count(5));
259 const std::vector<std::pair<image_t, image_t>> image_pairs = {
260 {0, 1}, {2, 3}, {4, 5}, {1, 2}, {3, 4}, {5, 0}, {0, 3}, {2, 5}, {4, 1}};
261 const std::vector<int> num_inliers = {100, 100, 100, 10, 10, 10, 1, 1, 1};
269 scene_clustering.
Partition(image_pairs, num_inliers);
278 BOOST_CHECK_EQUAL(scene_clustering.
GetLeafClusters()[0]->image_ids.size(), 4);
279 const std::set<image_t> image_ids0(
282 BOOST_CHECK(image_ids0.count(0));
283 BOOST_CHECK(image_ids0.count(1));
284 BOOST_CHECK(image_ids0.count(2));
285 BOOST_CHECK(image_ids0.count(5));
286 BOOST_CHECK_EQUAL(scene_clustering.
GetLeafClusters()[1]->image_ids.size(), 4);
287 const std::set<image_t> image_ids1(
290 BOOST_CHECK(image_ids1.count(1));
291 BOOST_CHECK(image_ids1.count(2));
292 BOOST_CHECK(image_ids1.count(3));
293 BOOST_CHECK(image_ids1.count(4));
294 BOOST_CHECK_EQUAL(scene_clustering.
GetLeafClusters()[2]->image_ids.size(), 4);
295 const std::set<image_t> image_ids2(
298 BOOST_CHECK(image_ids2.count(0));
299 BOOST_CHECK(image_ids2.count(3));
300 BOOST_CHECK(image_ids2.count(4));
301 BOOST_CHECK(image_ids2.count(5));
const Cluster * GetRootCluster() const
void Partition(const std::vector< std::pair< image_t, image_t >> &image_pairs, const std::vector< int > &num_inliers)
std::vector< const Cluster * > GetLeafClusters() const
BOOST_AUTO_TEST_CASE(TestEmpty)
std::vector< image_t > image_ids
std::vector< Cluster > child_clusters