Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
cmake_minimum_required(VERSION 3.5)

project(example)
project(MyFibonacci)

file(DOWNLOAD https://github.com/cpm-cmake/CPM.cmake/releases/download/v0.38.7/CPM.cmake
${CMAKE_BINARY_DIR}/_deps/CPM.cmake
EXPECTED_MD5 14ea07dfb484cad5db4ee1c75fd6a911)
${CMAKE_BINARY_DIR}/_deps/CPM.cmake EXPECTED_MD5 14ea07dfb484cad5db4ee1c75fd6a911)
include(${CMAKE_BINARY_DIR}/_deps/CPM.cmake)
cpmusepackagelock(package-lock)

cpmgetpackage(CheckWarning.cmake)

add_library(example src/example.cpp)
target_include_directories(example PUBLIC include)
target_check_warning(example)
add_library(my_fibonacci src/sequence.cpp)
target_include_directories(my_fibonacci PUBLIC include)
set_property(TARGET my_fibonacci PROPERTY CXX_STANDARD 11)
target_check_warning(my_fibonacci)

if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
cpmgetpackage(Format.cmake)
Expand All @@ -25,9 +25,9 @@ if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage -fPIC -O0")

add_executable(example_test test/example_test.cpp)
target_link_libraries(example_test PRIVATE example Catch2::Catch2WithMain)
target_check_warning(example_test)
catch_discover_tests(example_test)
add_executable(my_fibonacci_test test/sequence_test.cpp)
target_link_libraries(my_fibonacci_test PRIVATE my_fibonacci Catch2::Catch2WithMain)
target_check_warning(my_fibonacci_test)
catch_discover_tests(my_fibonacci_test)
endif()
endif()
7 changes: 0 additions & 7 deletions include/example/example.hpp

This file was deleted.

9 changes: 9 additions & 0 deletions include/my_fibonacci/sequence.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#pragma once

#include <vector>

namespace my_fibonacci {

std::vector<int> fibonacci_sequence(int n);

} // namespace my_fibonacci
7 changes: 0 additions & 7 deletions src/example.cpp

This file was deleted.

20 changes: 20 additions & 0 deletions src/sequence.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#include <my_fibonacci/sequence.hpp>

namespace my_fibonacci {

std::vector<int> fibonacci_sequence(int n) {
if (n <= 0) return {};
if (n == 1) return {1};

std::vector<int> sequence(n);
sequence[0] = 1;
sequence[1] = 1;

for (int i = 2; i < n; ++i) {
sequence[i] = sequence[i - 2] + sequence[i - 1];
}

return sequence;
}

} // namespace my_fibonacci
7 changes: 0 additions & 7 deletions test/example_test.cpp

This file was deleted.

10 changes: 10 additions & 0 deletions test/sequence_test.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#include <catch2/catch_test_macros.hpp>
#include <my_fibonacci/sequence.hpp>

TEST_CASE("test fibonacci sequence") {
CHECK(my_fibonacci::fibonacci_sequence(-1) == std::vector<int>{});
CHECK(my_fibonacci::fibonacci_sequence(0) == std::vector<int>{});
CHECK(my_fibonacci::fibonacci_sequence(1) == std::vector<int>{1});
CHECK(my_fibonacci::fibonacci_sequence(2) == std::vector<int>{1, 1});
CHECK(my_fibonacci::fibonacci_sequence(5) == std::vector<int>{1, 1, 2, 3, 5});
}