Skip to content

Commit

Permalink
Added readme example to CI build.
Browse files Browse the repository at this point in the history
  • Loading branch information
5cript committed Aug 2, 2024
1 parent 7783d85 commit 9f9bad2
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build_and_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
uses: actions/checkout@v2

- name: CMake Configure
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 }}
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 }}

- name: Build
run: cmake --build ${{github.workspace}}/build
Expand Down
3 changes: 3 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,7 @@ if(INT_TREE_DRAW_EXAMPLES)
endif()
if (INT_TREE_ENABLE_TESTS)
add_subdirectory(tests)
endif()
if (INT_TREE_BUILD_EXAMPLES)
add_subdirectory(example)
endif()
15 changes: 13 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,13 @@ int main()
{
using namespace lib_interval_tree;

// interval_tree <interval <int>>;
interval_tree_t <int> tree;
// interval_tree<interval<int>>; // closed by default
// interval_tree<interval<int, open>>;
// interval_tree<interval<int, closed>>;
// interval_tree<interval<int, left_open>>;
// interval_tree<interval<int, right_open>>;
// interval_tree<interval<int, closed_adjacent>>; // counts adjacent intervals as overlapping
interval_tree_t<int> tree;

tree.insert(make_safe_interval<int>(21, 16)); // make_safe_interval swaps low and high if not in right order.
tree.insert({8, 9});
Expand All @@ -42,6 +47,12 @@ int main()
{
std::cout << "[" << i.low() << ", " << i.high() << "]\n";
}

using lib_interval_tree::open;
// dynamic has some logic overhead.
interval_tree<interval<int, dynamic>> dynamicIntervals;
dynamicIntervals.insert({0, 1, interval_border::closed, interval_border::open});
dynamicIntervals.insert({7, 5, interval_border::open, interval_border::closed_adjacent});
}
```

Expand Down
1 change: 1 addition & 0 deletions example/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
add_subdirectory(from_readme)
7 changes: 7 additions & 0 deletions example/from_readme/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
add_executable(from_readme main.cpp)
target_link_libraries(from_readme interval-tree)

set_target_properties(from_readme
PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/interval_tree/examples"
)
39 changes: 39 additions & 0 deletions example/from_readme/main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// #include <interval-tree/draw.hpp> // to draw tree. this is not header only anymore.
#include <interval-tree/interval_tree.hpp>

int main()
{
using namespace lib_interval_tree;

// interval_tree<interval<int>>; // closed by default
// interval_tree<interval<int, open>>;
// interval_tree<interval<int, closed>>;
// interval_tree<interval<int, left_open>>;
// interval_tree<interval<int, right_open>>;
// interval_tree<interval<int, closed_adjacent>>; // counts adjacent intervals as overlapping
interval_tree_t<int> tree;

tree.insert(make_safe_interval<int>(21, 16)); // make_safe_interval swaps low and high if not in right order.
tree.insert({8, 9});
tree.insert({25, 30});
tree.insert({5, 8});
tree.insert({15, 23});
tree.insert({17, 19});
tree.insert({26, 26});
tree.insert({0, 3});
tree.insert({6, 10});
tree.insert({19, 20});

tree.deoverlap();

for (auto const& i : tree)
{
std::cout << "[" << i.low() << ", " << i.high() << "]\n";
}

using lib_interval_tree::open;
// dynamic has some logic overhead.
interval_tree<interval<int, dynamic>> dynamicIntervals;
dynamicIntervals.insert({0, 1, interval_border::closed, interval_border::open});
dynamicIntervals.insert({7, 5, interval_border::open, interval_border::closed_adjacent});
}

0 comments on commit 9f9bad2

Please sign in to comment.