Skip to content

Commit f73caa3

Browse files
committed
Copied code from issue into test.
1 parent 8f003be commit f73caa3

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

tests/float_overlap_tests.hpp

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
#pragma once
2+
3+
#include "test_utility.hpp"
4+
#include "../draw.hpp"
5+
6+
class OverlapFindTests
7+
: public ::testing::Test
8+
{
9+
public:
10+
using types = IntervalTypes <double>;
11+
protected:
12+
IntervalTypes <double>::tree_type tree;
13+
};
14+
15+
TEST_F(OverlapFindTests, FloatOverlapTest)
16+
{
17+
tree.insert(lib_interval_tree::make_safe_interval<double>(-1.483529864195180e+00, -1.296053859335657e+00));
18+
tree.insert(lib_interval_tree::make_safe_interval<double>(-1.308996938995747e+00, -1.127801743538376e+00));
19+
tree.insert(lib_interval_tree::make_safe_interval<double>(-1.134464013796314e+00, -9.562870818388700e-01));
20+
tree.insert(lib_interval_tree::make_safe_interval<double>(-9.599310885968813e-01, -7.834918877708545e-01));
21+
tree.insert(lib_interval_tree::make_safe_interval<double>(-7.853981633974484e-01, -6.090750919515169e-01));
22+
tree.insert(lib_interval_tree::make_safe_interval<double>(-6.108652381980154e-01, -4.348738075675338e-01));
23+
tree.insert(lib_interval_tree::make_safe_interval<double>(-4.363323129985824e-01, -2.608478200480425e-01));
24+
tree.insert(lib_interval_tree::make_safe_interval<double>(-2.617993877991495e-01, -8.693606119038631e-02));
25+
tree.insert(lib_interval_tree::make_safe_interval<double>(-8.726646259971654e-02, 8.726646259971654e-02));
26+
tree.insert(lib_interval_tree::make_safe_interval<double>(8.693606119038631e-02, 2.617993877991493e-01));
27+
tree.insert(lib_interval_tree::make_safe_interval<double>(2.608478200480422e-01, 4.363323129985823e-01));
28+
tree.insert(lib_interval_tree::make_safe_interval<double>(4.348738075675337e-01, 6.108652381980154e-01));
29+
tree.insert(lib_interval_tree::make_safe_interval<double>(6.090750919515169e-01, 7.853981633974484e-01));
30+
tree.insert(lib_interval_tree::make_safe_interval<double>(7.834918877708545e-01, 9.599310885968813e-01));
31+
tree.insert(lib_interval_tree::make_safe_interval<double>(9.562870818388700e-01, 1.134464013796314e+00)); //
32+
tree.insert(lib_interval_tree::make_safe_interval<double>(1.127801743538376e+00, 1.308996938995747e+00)); //
33+
tree.insert(lib_interval_tree::make_safe_interval<double>(1.296053859335657e+00, 1.483529864195180e+00)); //
34+
35+
double lat0 = 1.040893537045970;
36+
double lat1 = 1.570796326794897;
37+
38+
std::vector <lib_interval_tree::interval<double>> vecOverlapsA;
39+
lib_interval_tree::interval <double> intSource({lat0, lat1});
40+
for (auto itTargetInterval : tree)
41+
{
42+
if (itTargetInterval.overlaps(intSource))
43+
{
44+
vecOverlapsA.push_back(itTargetInterval);
45+
}
46+
}
47+
48+
std::vector <lib_interval_tree::interval<double>> vecOverlapsB;
49+
tree.overlap_find_all
50+
(
51+
{lat0, lat1},
52+
[&vecOverlapsB](lib_interval_tree::interval_tree_t<double>::iterator ittarget)
53+
{
54+
vecOverlapsB.push_back(*ittarget);
55+
return true;
56+
},
57+
false
58+
);
59+
60+
for (auto const& i : vecOverlapsA)
61+
{
62+
std::cout << i.low() << ", " << i.high() << "\n";
63+
}
64+
std::cout << "\n";
65+
for (auto const& i : vecOverlapsB)
66+
{
67+
std::cout << i.low() << ", " << i.high() << "\n";
68+
}
69+
70+
lib_interval_tree::drawTree("here.png", tree);
71+
72+
ASSERT_EQ(vecOverlapsA, vecOverlapsB);
73+
}

0 commit comments

Comments
 (0)