Skip to content

Commit 6501f60

Browse files
authored
feat: modify sample module to be MyFibonacci module (#60)
* feat: modify sample function to generate a Fibonacci sequence * build: rename the sample project to `MyFibonacci`
1 parent 5d343b7 commit 6501f60

File tree

7 files changed

+49
-31
lines changed

7 files changed

+49
-31
lines changed

CMakeLists.txt

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
cmake_minimum_required(VERSION 3.5)
22

3-
project(example)
3+
project(MyFibonacci)
44

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

1110
cpmgetpackage(CheckWarning.cmake)
1211

13-
add_library(example src/example.cpp)
14-
target_include_directories(example PUBLIC include)
15-
target_check_warning(example)
12+
add_library(my_fibonacci src/sequence.cpp)
13+
target_include_directories(my_fibonacci PUBLIC include)
14+
set_property(TARGET my_fibonacci PROPERTY CXX_STANDARD 11)
15+
target_check_warning(my_fibonacci)
1616

1717
if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
1818
cpmgetpackage(Format.cmake)
@@ -25,9 +25,9 @@ if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
2525

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

28-
add_executable(example_test test/example_test.cpp)
29-
target_link_libraries(example_test PRIVATE example Catch2::Catch2WithMain)
30-
target_check_warning(example_test)
31-
catch_discover_tests(example_test)
28+
add_executable(my_fibonacci_test test/sequence_test.cpp)
29+
target_link_libraries(my_fibonacci_test PRIVATE my_fibonacci Catch2::Catch2WithMain)
30+
target_check_warning(my_fibonacci_test)
31+
catch_discover_tests(my_fibonacci_test)
3232
endif()
3333
endif()

include/example/example.hpp

-7
This file was deleted.

include/my_fibonacci/sequence.hpp

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#pragma once
2+
3+
#include <vector>
4+
5+
namespace my_fibonacci {
6+
7+
std::vector<int> fibonacci_sequence(int n);
8+
9+
} // namespace my_fibonacci

src/example.cpp

-7
This file was deleted.

src/sequence.cpp

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#include <my_fibonacci/sequence.hpp>
2+
3+
namespace my_fibonacci {
4+
5+
std::vector<int> fibonacci_sequence(int n) {
6+
if (n <= 0) return {};
7+
if (n == 1) return {1};
8+
9+
std::vector<int> sequence(n);
10+
sequence[0] = 1;
11+
sequence[1] = 1;
12+
13+
for (int i = 2; i < n; ++i) {
14+
sequence[i] = sequence[i - 2] + sequence[i - 1];
15+
}
16+
17+
return sequence;
18+
}
19+
20+
} // namespace my_fibonacci

test/example_test.cpp

-7
This file was deleted.

test/sequence_test.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#include <catch2/catch_test_macros.hpp>
2+
#include <my_fibonacci/sequence.hpp>
3+
4+
TEST_CASE("test fibonacci sequence") {
5+
CHECK(my_fibonacci::fibonacci_sequence(-1) == std::vector<int>{});
6+
CHECK(my_fibonacci::fibonacci_sequence(0) == std::vector<int>{});
7+
CHECK(my_fibonacci::fibonacci_sequence(1) == std::vector<int>{1});
8+
CHECK(my_fibonacci::fibonacci_sequence(2) == std::vector<int>{1, 1});
9+
CHECK(my_fibonacci::fibonacci_sequence(5) == std::vector<int>{1, 1, 2, 3, 5});
10+
}

0 commit comments

Comments
 (0)