Skip to content

Commit 120f3d5

Browse files
committed
Added readme example to CI build.
1 parent 7783d85 commit 120f3d5

File tree

6 files changed

+64
-3
lines changed

6 files changed

+64
-3
lines changed

Diff for: .github/workflows/build_and_test.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
uses: actions/checkout@v2
4949

5050
- name: CMake Configure
51-
run: cmake -B ${{github.workspace}}/build -G"Ninja" -DINT_TREE_ENABLE_TESTS=on -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_CXX_COMPILER=${{ matrix.compiler.cxx }} -DCMAKE_CXX_STANDARD=${{ matrix.cxx_standard }}
51+
run: cmake -B ${{github.workspace}}/build -G"Ninja" -DINT_TREE_BUILD_EXAMPLES=on -DINT_TREE_ENABLE_TESTS=on -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_CXX_COMPILER=${{ matrix.compiler.cxx }} -DCMAKE_CXX_STANDARD=${{ matrix.cxx_standard }}
5252

5353
- name: Build
5454
run: cmake --build ${{github.workspace}}/build

Diff for: CMakeLists.txt

+3
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,7 @@ if(INT_TREE_DRAW_EXAMPLES)
1414
endif()
1515
if (INT_TREE_ENABLE_TESTS)
1616
add_subdirectory(tests)
17+
endif()
18+
if (INT_TREE_BUILD_EXAMPLES)
19+
add_subdirectory(example)
1720
endif()

Diff for: README.md

+13-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,13 @@ int main()
2222
{
2323
using namespace lib_interval_tree;
2424

25-
// interval_tree <interval <int>>;
26-
interval_tree_t <int> tree;
25+
// interval_tree<interval<int>>; // closed by default
26+
// interval_tree<interval<int, open>>;
27+
// interval_tree<interval<int, closed>>;
28+
// interval_tree<interval<int, left_open>>;
29+
// interval_tree<interval<int, right_open>>;
30+
// interval_tree<interval<int, closed_adjacent>>; // counts adjacent intervals as overlapping
31+
interval_tree_t<int> tree;
2732

2833
tree.insert(make_safe_interval<int>(21, 16)); // make_safe_interval swaps low and high if not in right order.
2934
tree.insert({8, 9});
@@ -42,6 +47,12 @@ int main()
4247
{
4348
std::cout << "[" << i.low() << ", " << i.high() << "]\n";
4449
}
50+
51+
using lib_interval_tree::open;
52+
// dynamic has some logic overhead.
53+
interval_tree<interval<int, dynamic>> dynamicIntervals;
54+
dynamicIntervals.insert({0, 1, closed, open});
55+
dynamicIntervals.insert({7, 5, open, closed_adjacent});
4556
}
4657
```
4758

Diff for: example/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
add_subdirectory(from_readme)

Diff for: example/from_readme/CMakeLists.txt

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
add_executable(from_readme main.cpp)
2+
target_link_libraries(from_readme interval-tree)
3+
4+
set_target_properties(from_readme
5+
PROPERTIES
6+
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/interval_tree/examples"
7+
)

Diff for: example/from_readme/main.cpp

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
// #include <interval-tree/draw.hpp> // to draw tree. this is not header only anymore.
2+
#include <interval-tree/interval_tree.hpp>
3+
4+
int main()
5+
{
6+
using namespace lib_interval_tree;
7+
8+
// interval_tree<interval<int>>; // closed by default
9+
// interval_tree<interval<int, open>>;
10+
// interval_tree<interval<int, closed>>;
11+
// interval_tree<interval<int, left_open>>;
12+
// interval_tree<interval<int, right_open>>;
13+
// interval_tree<interval<int, closed_adjacent>>; // counts adjacent intervals as overlapping
14+
interval_tree_t<int> tree;
15+
16+
tree.insert(make_safe_interval<int>(21, 16)); // make_safe_interval swaps low and high if not in right order.
17+
tree.insert({8, 9});
18+
tree.insert({25, 30});
19+
tree.insert({5, 8});
20+
tree.insert({15, 23});
21+
tree.insert({17, 19});
22+
tree.insert({26, 26});
23+
tree.insert({0, 3});
24+
tree.insert({6, 10});
25+
tree.insert({19, 20});
26+
27+
tree.deoverlap();
28+
29+
for (auto const& i : tree)
30+
{
31+
std::cout << "[" << i.low() << ", " << i.high() << "]\n";
32+
}
33+
34+
using lib_interval_tree::open;
35+
// dynamic has some logic overhead.
36+
interval_tree<interval<int, dynamic>> dynamicIntervals;
37+
dynamicIntervals.insert({0, 1, interval_border::closed, interval_border::open});
38+
dynamicIntervals.insert({7, 5, interval_border::open, interval_border::closed_adjacent});
39+
}

0 commit comments

Comments
 (0)