@@ -28,6 +28,14 @@ TEST_F(OverlapFindTests, WillFindOverlapWithRoot)
2828 EXPECT_EQ (tree.overlap_find ({2 , 7 }), std::begin (tree));
2929}
3030
31+ TEST_F (OverlapFindTests, WillFindOverlapWithRootOnConstTree)
32+ {
33+ tree.insert ({2 , 4 });
34+ [](auto const & tree) {
35+ EXPECT_EQ (tree.overlap_find ({2 , 7 }), std::begin (tree));
36+ }(tree);
37+ }
38+
3139TEST_F (OverlapFindTests, WillFindOverlapWithRootIfMatchingExactly)
3240{
3341 tree.insert ({2 , 7 });
@@ -149,4 +157,24 @@ TEST_F(OverlapFindTests, WillFindSingleOverlapInBiggerTree)
149157 EXPECT_NE (iter, std::end (tree));
150158 EXPECT_EQ (iter->low (), 1000 );
151159 EXPECT_EQ (iter->high (), 2000 );
152- }
160+ }
161+
162+ TEST_F (FindTests, CanOverlapFindAllOnConstTree)
163+ {
164+ const auto targetInterval = lib_interval_tree::make_safe_interval (16 , 21 );
165+ tree.insert (targetInterval);
166+ tree.insert ({8 , 9 });
167+ tree.insert ({25 , 30 });
168+ std::vector <decltype (tree)::interval_type> intervals;
169+ auto findWithConstTree = [&intervals, &targetInterval](auto const & tree)
170+ {
171+ tree.overlap_find_all (targetInterval, [&intervals](auto const & iter) {
172+ intervals.emplace_back (*iter);
173+ return true ;
174+ });
175+ };
176+ findWithConstTree (tree);
177+
178+ ASSERT_EQ (intervals.size (), 1 );
179+ EXPECT_EQ (intervals[0 ], targetInterval);
180+ }
0 commit comments