From 180fa57aa700df6a8ca29efd13cb878827300cdb Mon Sep 17 00:00:00 2001 From: JohnyDepp228 Date: Sat, 13 Dec 2025 19:33:02 +0200 Subject: [PATCH 01/15] lab2 done --- trunk/ii02704/task_02/doc/README.md | 48 +++++++++++++++++++++++ trunk/ii02704/task_02/src/CMakeLists.txt | 10 +++++ trunk/ii02704/task_02/src/linear.cpp | 34 ++++++++++++++++ trunk/ii02704/task_02/src/linear.h | 10 +++++ trunk/ii02704/task_02/src/otis2.cpp | 23 +++++++++++ trunk/ii02704/task_02/test/CMakeLists.txt | 46 ++++++++++++++++++++++ trunk/ii02704/task_02/test/test.cpp | 40 +++++++++++++++++++ 7 files changed, 211 insertions(+) create mode 100644 trunk/ii02704/task_02/doc/README.md create mode 100644 trunk/ii02704/task_02/src/CMakeLists.txt create mode 100644 trunk/ii02704/task_02/src/linear.cpp create mode 100644 trunk/ii02704/task_02/src/linear.h create mode 100644 trunk/ii02704/task_02/src/otis2.cpp create mode 100644 trunk/ii02704/task_02/test/CMakeLists.txt create mode 100644 trunk/ii02704/task_02/test/test.cpp diff --git a/trunk/ii02704/task_02/doc/README.md b/trunk/ii02704/task_02/doc/README.md new file mode 100644 index 000000000..a8af3b081 --- /dev/null +++ b/trunk/ii02704/task_02/doc/README.md @@ -0,0 +1,48 @@ +

Министерство образования Республики Беларусь

+

Учреждение образования

+

“Брестский Государственный технический университет”

+

Кафедра ИИТ

+






+

Лабораторная работа №2

+

По дисциплине “Общая теория интеллектуальных систем”

+

Тема: “Написание модульных тестов для программы моделирования температуры”

+




+

Выполнил:

+

Студент 2 курса

+

Группы ИИ-27

+

Гридчин А.В.

+

Проверил:

+

Иванюк Д.С.

+




+

Брест 2025

+ +# Общее задание # +1. Использовать следующий фреймворк для модульного тестирования - [Google Test](https://google.github.io/googletest/). +2. Написать модульные тесты для основных функций программы. Разместить тесты в каталоге: **trunk\ii0xxyy\task_02\test**. +3. Исходный код модифицированной программы разместить в каталоге: **trunk\ii0xxyy\task_02\src**. +4. В файле `readme.md` отразить количество написанных тестов и процент покрытия кода тестами (использовать любой инструмент для анализа покрытия, например, [gcovr](https://gcovr.com/en/stable/)). + +## Задание 2.## +В ходе выполнения было написано три теста. Было написано три теста для функцииlinear. Покрытие программы составляет 67%. Замер производился с помощью программы OpenCppCoverage(https://github.com/OpenCppCoverage/OpenCppCoverage/releases). +[==========] Running 3 tests from 1 test suite. +[----------] Global test environment set-up. +[----------] 3 tests from Test +[ RUN ] Test.linearr +[ OK ] Test.linearr (0 ms) +[ RUN ] Test.linearr2 +[ OK ] Test.linearr2 (0 ms) +[ RUN ] Test.linearr3 +C:\Users\Boss\Desktop\task_02\test\test.cpp(39): error: The difference between res and 75 is 48.920000000000002, which exceeds 0.01, where +res evaluates to 123.92, +75 evaluates to 75, and +0.01 evaluates to 0.01. +[ FAILED ] Test.linearr3 (0 ms) +[----------] 3 tests from Test (2 ms total) + +[----------] Global test environment tear-down +[==========] 3 tests from 1 test suite ran. (4 ms total) +[ PASSED ] 2 tests. +[ FAILED ] 1 test, listed below: +[ FAILED ] Test.linearr3 + + 1 FAILED TEST \ No newline at end of file diff --git a/trunk/ii02704/task_02/src/CMakeLists.txt b/trunk/ii02704/task_02/src/CMakeLists.txt new file mode 100644 index 000000000..e1d9f1cfa --- /dev/null +++ b/trunk/ii02704/task_02/src/CMakeLists.txt @@ -0,0 +1,10 @@ +cmake_minimum_required (VERSION 3.5) +project (task_02_ii02704) + +add_library(linear + linear.cpp) + +add_executable (ii02704 + otis2.cpp) + +target_link_libraries(ii02704 PRIVATE linear) diff --git a/trunk/ii02704/task_02/src/linear.cpp b/trunk/ii02704/task_02/src/linear.cpp new file mode 100644 index 000000000..3daa260bf --- /dev/null +++ b/trunk/ii02704/task_02/src/linear.cpp @@ -0,0 +1,34 @@ +#include "linear.h" + +#include +#include + +using namespace std; + +void input(int& k, vector &u, vector &y, double& a, double& b) { + cout << "Enter amount of iterations: "; + cin >> k; + u.resize(k + 1, 0); + y.resize(k + 1, 0); + cout << "\nEnter temperature: "; + cin >> y.at(0); + for (auto& warm : u) { + cout << "\nEnter warm: "; + cin >> warm; + } + + cout << "Enter const a: "; + + cin >> a; + + cout << "Enter const b: "; + + cin >> b; + +} + +void linear(const int& place, const int& k, vector& y, const vector& u, const double& b, const double& a) { + if(k > 0){ + y.at(place + 1) = a * y.at(place) + b * u.at(place); + } +} diff --git a/trunk/ii02704/task_02/src/linear.h b/trunk/ii02704/task_02/src/linear.h new file mode 100644 index 000000000..e8708ffaa --- /dev/null +++ b/trunk/ii02704/task_02/src/linear.h @@ -0,0 +1,10 @@ +#ifndef LIN_H +#define LIN_H + +#include +#include + +void input(int& k, std::vector& u, std::vector& y, double& a, double& b); +void linear(const int& place, const int& k, std::vector& y, const std::vector& u, const double& b, const double& a); + +#endif diff --git a/trunk/ii02704/task_02/src/otis2.cpp b/trunk/ii02704/task_02/src/otis2.cpp new file mode 100644 index 000000000..9c0fdb9da --- /dev/null +++ b/trunk/ii02704/task_02/src/otis2.cpp @@ -0,0 +1,23 @@ +#include +#include +#include "linear.h" + +using namespace std; + + +int main() +{ + int k; + vector y; + vector u; + double a = 1; + double b = 1; + input(k, u, y, a, b); + for (int i = 0; i < k; i++) { + linear(i, k, y, u, b, a); + } + for (auto n : y) { + cout << n << endl; + } + return 0; +} \ No newline at end of file diff --git a/trunk/ii02704/task_02/test/CMakeLists.txt b/trunk/ii02704/task_02/test/CMakeLists.txt new file mode 100644 index 000000000..c1b9610fe --- /dev/null +++ b/trunk/ii02704/task_02/test/CMakeLists.txt @@ -0,0 +1,46 @@ +cmake_minimum_required(VERSION 3.14) +project(task_02_ii02704_test) + + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage") + + +include(FetchContent) +FetchContent_Declare( + googletest + URL https://github.com/google/googletest/archive/03597a01ee50ed33e9dfd640b249b4be3799d395.zip + DOWNLOAD_EXTRACT_TIMESTAMP TRUE +) +# For Windows: Prevent overriding the parent project's compiler/linker settings +set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +FetchContent_MakeAvailable(googletest) + +enable_testing() + + +add_executable( + ${CMAKE_PROJECT_NAME} + test.cpp + + ../src/linear.cpp + ../src/linear.h +) +target_link_libraries( + ${CMAKE_PROJECT_NAME} + PRIVATE + gtest + gtest_main + gmock +) + + +target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE --coverage -g -O0) +target_link_options(${CMAKE_PROJECT_NAME} PRIVATE --coverage) + + +include(GoogleTest) +gtest_discover_tests(${CMAKE_PROJECT_NAME}) diff --git a/trunk/ii02704/task_02/test/test.cpp b/trunk/ii02704/task_02/test/test.cpp new file mode 100644 index 000000000..49b8f6eb3 --- /dev/null +++ b/trunk/ii02704/task_02/test/test.cpp @@ -0,0 +1,40 @@ +#include "gtest/gtest.h" +#include "../src/linear.h" + +TEST(Test, linearr) { + double res; + vector y; + vector u; + y.resize(2, 0); + u.resize(2, 0); + y[0] = 13; + u[0] = 1.3; + linear(0,2, y, u, 2.3, 5.6); + res = y[1]; + EXPECT_NEAR(res, 75.79, 0.01); +} +TEST(Test, linearr2) { + double res; + vector y; + vector u; + y.resize(2, 0); + u.resize(2, 0); + y[0] = 2.6; + u[0] = 3.5; + linear(0,2, y, u, 14.7, 5.6); + res = y[1]; + EXPECT_NEAR(res, 66, 0.01); +} + +TEST(Test, linearr3) { + double res; + vector y; + vector u; + y.resize(2, 0); + u.resize(2, 0); + y[0] = 0.8; + u[0] = 9.6; + linear(0,2, y, u, 12.3, 7.3); + res = y[1]; + EXPECT_NEAR(res, 75, 0.01);//123.92 +} \ No newline at end of file From 43c17c824769dafe04992df613552a9221c77425 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B4=D1=87=D0=B8=D0=BD=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= Date: Sat, 13 Dec 2025 21:46:41 +0200 Subject: [PATCH 02/15] Update CMakeLists.txt --- trunk/ii02704/task_02/src/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/trunk/ii02704/task_02/src/CMakeLists.txt b/trunk/ii02704/task_02/src/CMakeLists.txt index e1d9f1cfa..aec733d12 100644 --- a/trunk/ii02704/task_02/src/CMakeLists.txt +++ b/trunk/ii02704/task_02/src/CMakeLists.txt @@ -4,7 +4,7 @@ project (task_02_ii02704) add_library(linear linear.cpp) -add_executable (ii02704 +add_executable (ii02704_task2 otis2.cpp) -target_link_libraries(ii02704 PRIVATE linear) +target_link_libraries(ii02704_task2 PRIVATE linear) From 1e8bd52b18a2ef61921739bf1ed299a751c39134 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B4=D1=87=D0=B8=D0=BD=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= Date: Sat, 13 Dec 2025 21:50:33 +0200 Subject: [PATCH 03/15] Update and rename linear.cpp to linear1.cpp --- trunk/ii02704/task_02/src/{linear.cpp => linear1.cpp} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename trunk/ii02704/task_02/src/{linear.cpp => linear1.cpp} (100%) diff --git a/trunk/ii02704/task_02/src/linear.cpp b/trunk/ii02704/task_02/src/linear1.cpp similarity index 100% rename from trunk/ii02704/task_02/src/linear.cpp rename to trunk/ii02704/task_02/src/linear1.cpp index 3daa260bf..5cf1d8b73 100644 --- a/trunk/ii02704/task_02/src/linear.cpp +++ b/trunk/ii02704/task_02/src/linear1.cpp @@ -1,10 +1,10 @@ #include "linear.h" - #include #include using namespace std; + void input(int& k, vector &u, vector &y, double& a, double& b) { cout << "Enter amount of iterations: "; cin >> k; From 142bf68a9c18d17568aeef6f6bf8492daafd55a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B4=D1=87=D0=B8=D0=BD=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= Date: Sat, 13 Dec 2025 21:50:49 +0200 Subject: [PATCH 04/15] Update CMakeLists.txt --- trunk/ii02704/task_02/src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trunk/ii02704/task_02/src/CMakeLists.txt b/trunk/ii02704/task_02/src/CMakeLists.txt index aec733d12..a3b531287 100644 --- a/trunk/ii02704/task_02/src/CMakeLists.txt +++ b/trunk/ii02704/task_02/src/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required (VERSION 3.5) project (task_02_ii02704) add_library(linear - linear.cpp) + linear1.cpp) add_executable (ii02704_task2 otis2.cpp) From 78855a1fd92e28564e0d1f4d8df7a95a1a3a87aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B4=D1=87=D0=B8=D0=BD=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= Date: Sat, 13 Dec 2025 21:51:11 +0200 Subject: [PATCH 05/15] Update CMakeLists.txt --- trunk/ii02704/task_02/test/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trunk/ii02704/task_02/test/CMakeLists.txt b/trunk/ii02704/task_02/test/CMakeLists.txt index c1b9610fe..9744de1ed 100644 --- a/trunk/ii02704/task_02/test/CMakeLists.txt +++ b/trunk/ii02704/task_02/test/CMakeLists.txt @@ -26,7 +26,7 @@ add_executable( ${CMAKE_PROJECT_NAME} test.cpp - ../src/linear.cpp + ../src/linear1.cpp ../src/linear.h ) target_link_libraries( From c5929b85eb2a510983845e6913eaa23591a2c828 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B4=D1=87=D0=B8=D0=BD=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= Date: Sat, 13 Dec 2025 21:51:29 +0200 Subject: [PATCH 06/15] Update CMakeLists.txt --- trunk/ii02704/task_02/test/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trunk/ii02704/task_02/test/CMakeLists.txt b/trunk/ii02704/task_02/test/CMakeLists.txt index 9744de1ed..264ea3149 100644 --- a/trunk/ii02704/task_02/test/CMakeLists.txt +++ b/trunk/ii02704/task_02/test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.14) +cmake_minimum_required(VERSION 3.5) project(task_02_ii02704_test) From 4d2d9af8afd6fe74b2b9fddfdaa3391652abfb97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B4=D1=87=D0=B8=D0=BD=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= Date: Sat, 13 Dec 2025 21:53:57 +0200 Subject: [PATCH 07/15] Update and rename linear.h to Linear.h --- trunk/ii02704/task_02/src/{linear.h => Linear.h} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename trunk/ii02704/task_02/src/{linear.h => Linear.h} (90%) diff --git a/trunk/ii02704/task_02/src/linear.h b/trunk/ii02704/task_02/src/Linear.h similarity index 90% rename from trunk/ii02704/task_02/src/linear.h rename to trunk/ii02704/task_02/src/Linear.h index e8708ffaa..78f779cd2 100644 --- a/trunk/ii02704/task_02/src/linear.h +++ b/trunk/ii02704/task_02/src/Linear.h @@ -1,5 +1,5 @@ -#ifndef LIN_H -#define LIN_H +#ifndef LINE_H +#define LINE_H #include #include From ce1a3d7c8a21990915e3489817ecf58b01f22360 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B4=D1=87=D0=B8=D0=BD=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= Date: Sat, 13 Dec 2025 21:54:22 +0200 Subject: [PATCH 08/15] Update linear1.cpp --- trunk/ii02704/task_02/src/linear1.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trunk/ii02704/task_02/src/linear1.cpp b/trunk/ii02704/task_02/src/linear1.cpp index 5cf1d8b73..6b710ffd5 100644 --- a/trunk/ii02704/task_02/src/linear1.cpp +++ b/trunk/ii02704/task_02/src/linear1.cpp @@ -1,4 +1,4 @@ -#include "linear.h" +#include "Linear.h" #include #include From e3024b51f26a11e1ad2f3729d394af39f4d998e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B4=D1=87=D0=B8=D0=BD=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= Date: Sat, 13 Dec 2025 21:54:39 +0200 Subject: [PATCH 09/15] Update otis2.cpp --- trunk/ii02704/task_02/src/otis2.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/trunk/ii02704/task_02/src/otis2.cpp b/trunk/ii02704/task_02/src/otis2.cpp index 9c0fdb9da..145601139 100644 --- a/trunk/ii02704/task_02/src/otis2.cpp +++ b/trunk/ii02704/task_02/src/otis2.cpp @@ -1,6 +1,6 @@ #include #include -#include "linear.h" +#include "Linear.h" using namespace std; @@ -20,4 +20,4 @@ int main() cout << n << endl; } return 0; -} \ No newline at end of file +} From d33873594745198547dde7728ada5d4e161dac2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B4=D1=87=D0=B8=D0=BD=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= Date: Sat, 13 Dec 2025 21:55:04 +0200 Subject: [PATCH 10/15] Update CMakeLists.txt --- trunk/ii02704/task_02/test/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trunk/ii02704/task_02/test/CMakeLists.txt b/trunk/ii02704/task_02/test/CMakeLists.txt index 264ea3149..50287834f 100644 --- a/trunk/ii02704/task_02/test/CMakeLists.txt +++ b/trunk/ii02704/task_02/test/CMakeLists.txt @@ -27,7 +27,7 @@ add_executable( test.cpp ../src/linear1.cpp - ../src/linear.h + ../src/Linear.h ) target_link_libraries( ${CMAKE_PROJECT_NAME} From 2fd7012911a7b25a925c6db66d9f4ffb2255f864 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B4=D1=87=D0=B8=D0=BD=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= Date: Sat, 13 Dec 2025 21:55:27 +0200 Subject: [PATCH 11/15] Update test.cpp --- trunk/ii02704/task_02/test/test.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/trunk/ii02704/task_02/test/test.cpp b/trunk/ii02704/task_02/test/test.cpp index 49b8f6eb3..b24cade71 100644 --- a/trunk/ii02704/task_02/test/test.cpp +++ b/trunk/ii02704/task_02/test/test.cpp @@ -1,5 +1,5 @@ #include "gtest/gtest.h" -#include "../src/linear.h" +#include "../src/Linear.h" TEST(Test, linearr) { double res; @@ -36,5 +36,5 @@ TEST(Test, linearr3) { u[0] = 9.6; linear(0,2, y, u, 12.3, 7.3); res = y[1]; - EXPECT_NEAR(res, 75, 0.01);//123.92 -} \ No newline at end of file + EXPECT_NEAR(res, 75, 0.01);//123.92 ïðàâèëüíûé +} From 0b751133723759efe5dc021f786fb234c4bcff4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B4=D1=87=D0=B8=D0=BD=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= Date: Sat, 13 Dec 2025 21:57:12 +0200 Subject: [PATCH 12/15] Update Linear.h --- trunk/ii02704/task_02/src/Linear.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trunk/ii02704/task_02/src/Linear.h b/trunk/ii02704/task_02/src/Linear.h index 78f779cd2..f49ff6bb1 100644 --- a/trunk/ii02704/task_02/src/Linear.h +++ b/trunk/ii02704/task_02/src/Linear.h @@ -5,6 +5,6 @@ #include void input(int& k, std::vector& u, std::vector& y, double& a, double& b); -void linear(const int& place, const int& k, std::vector& y, const std::vector& u, const double& b, const double& a); +void linear(const int& place, const int& k, std::vector& y, const std::vector& u, const double& a, const double& b); #endif From 99df10dd5b8fce51b5885d05063fe8decd6f7388 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B4=D1=87=D0=B8=D0=BD=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= Date: Sat, 13 Dec 2025 21:57:34 +0200 Subject: [PATCH 13/15] Update linear1.cpp --- trunk/ii02704/task_02/src/linear1.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trunk/ii02704/task_02/src/linear1.cpp b/trunk/ii02704/task_02/src/linear1.cpp index 6b710ffd5..8618cd377 100644 --- a/trunk/ii02704/task_02/src/linear1.cpp +++ b/trunk/ii02704/task_02/src/linear1.cpp @@ -27,7 +27,7 @@ void input(int& k, vector &u, vector &y, double& a, double& b) { } -void linear(const int& place, const int& k, vector& y, const vector& u, const double& b, const double& a) { +void linear(const int& place, const int& k, vector& y, const vector& u, const double& a, const double& b) { if(k > 0){ y.at(place + 1) = a * y.at(place) + b * u.at(place); } From 8a62189e1973d4bf88109b2bd85ef54058cd0425 Mon Sep 17 00:00:00 2001 From: Boss Date: Wed, 17 Dec 2025 18:37:01 +0300 Subject: [PATCH 14/15] changed code --- trunk/ii02704/task_02/doc/README.md | 16 ++----- trunk/ii02704/task_02/src/Linear.h | 14 ++++-- trunk/ii02704/task_02/src/linear1.cpp | 25 +++++------ trunk/ii02704/task_02/src/otis2.cpp | 14 +++--- trunk/ii02704/task_02/test/test.cpp | 61 +++++++++++++++------------ 5 files changed, 64 insertions(+), 66 deletions(-) diff --git a/trunk/ii02704/task_02/doc/README.md b/trunk/ii02704/task_02/doc/README.md index a8af3b081..f214b4e21 100644 --- a/trunk/ii02704/task_02/doc/README.md +++ b/trunk/ii02704/task_02/doc/README.md @@ -12,7 +12,7 @@

Группы ИИ-27

Гридчин А.В.

Проверил:

-

Иванюк Д.С.

+

Дворанинович Д.А.






Брест 2025

@@ -23,7 +23,7 @@ 4. В файле `readme.md` отразить количество написанных тестов и процент покрытия кода тестами (использовать любой инструмент для анализа покрытия, например, [gcovr](https://gcovr.com/en/stable/)). ## Задание 2.## -В ходе выполнения было написано три теста. Было написано три теста для функцииlinear. Покрытие программы составляет 67%. Замер производился с помощью программы OpenCppCoverage(https://github.com/OpenCppCoverage/OpenCppCoverage/releases). +В ходе выполнения было написано три теста. Было написано три теста для функции linear. Покрытие программы составляет 67%. Замер производился с помощью программы OpenCppCoverage(https://github.com/OpenCppCoverage/OpenCppCoverage/releases). [==========] Running 3 tests from 1 test suite. [----------] Global test environment set-up. [----------] 3 tests from Test @@ -32,17 +32,9 @@ [ RUN ] Test.linearr2 [ OK ] Test.linearr2 (0 ms) [ RUN ] Test.linearr3 -C:\Users\Boss\Desktop\task_02\test\test.cpp(39): error: The difference between res and 75 is 48.920000000000002, which exceeds 0.01, where -res evaluates to 123.92, -75 evaluates to 75, and -0.01 evaluates to 0.01. -[ FAILED ] Test.linearr3 (0 ms) +[ OK ] Test.linearr3 (0 ms) [----------] 3 tests from Test (2 ms total) [----------] Global test environment tear-down [==========] 3 tests from 1 test suite ran. (4 ms total) -[ PASSED ] 2 tests. -[ FAILED ] 1 test, listed below: -[ FAILED ] Test.linearr3 - - 1 FAILED TEST \ No newline at end of file +[ PASSED ] 3 tests. \ No newline at end of file diff --git a/trunk/ii02704/task_02/src/Linear.h b/trunk/ii02704/task_02/src/Linear.h index f49ff6bb1..3f0643210 100644 --- a/trunk/ii02704/task_02/src/Linear.h +++ b/trunk/ii02704/task_02/src/Linear.h @@ -1,10 +1,18 @@ #ifndef LINE_H #define LINE_H - #include #include -void input(int& k, std::vector& u, std::vector& y, double& a, double& b); -void linear(const int& place, const int& k, std::vector& y, const std::vector& u, const double& a, const double& b); +struct Params +{ + int k; + std::vector y; + std::vector u; + double a; + double b; +}; + +void input(Params &s); +void linear(Params &s, const int& place); #endif diff --git a/trunk/ii02704/task_02/src/linear1.cpp b/trunk/ii02704/task_02/src/linear1.cpp index 8618cd377..3a47f8943 100644 --- a/trunk/ii02704/task_02/src/linear1.cpp +++ b/trunk/ii02704/task_02/src/linear1.cpp @@ -1,34 +1,31 @@ #include "Linear.h" #include -#include using namespace std; - -void input(int& k, vector &u, vector &y, double& a, double& b) { +void input(Params &s) { cout << "Enter amount of iterations: "; - cin >> k; - u.resize(k + 1, 0); - y.resize(k + 1, 0); + cin >> s.k; + s.u.resize(s.k + 1, 0); + s.y.resize(s.k + 1, 0); cout << "\nEnter temperature: "; - cin >> y.at(0); - for (auto& warm : u) { + cin >> s.y.at(0); + for (auto& warm : s.u) { cout << "\nEnter warm: "; cin >> warm; } cout << "Enter const a: "; - cin >> a; + cin >> s.a; cout << "Enter const b: "; - cin >> b; + cin >> s.b; } - -void linear(const int& place, const int& k, vector& y, const vector& u, const double& a, const double& b) { - if(k > 0){ - y.at(place + 1) = a * y.at(place) + b * u.at(place); +void linear(Params &s, const int& place) { + if(s.k >= 0){ + s.y.at(place + 1) = s.a * s.y.at(place) + s.b * s.u.at(place); } } diff --git a/trunk/ii02704/task_02/src/otis2.cpp b/trunk/ii02704/task_02/src/otis2.cpp index 145601139..aaa07ae6a 100644 --- a/trunk/ii02704/task_02/src/otis2.cpp +++ b/trunk/ii02704/task_02/src/otis2.cpp @@ -7,16 +7,12 @@ using namespace std; int main() { - int k; - vector y; - vector u; - double a = 1; - double b = 1; - input(k, u, y, a, b); - for (int i = 0; i < k; i++) { - linear(i, k, y, u, b, a); + Params p; + input(p); + for (int i = 0; i < p.k; i++) { + linear(p,i); } - for (auto n : y) { + for (auto n : p.y) { cout << n << endl; } return 0; diff --git a/trunk/ii02704/task_02/test/test.cpp b/trunk/ii02704/task_02/test/test.cpp index b24cade71..f08aefc05 100644 --- a/trunk/ii02704/task_02/test/test.cpp +++ b/trunk/ii02704/task_02/test/test.cpp @@ -1,40 +1,45 @@ #include "gtest/gtest.h" #include "../src/Linear.h" - TEST(Test, linearr) { double res; - vector y; - vector u; - y.resize(2, 0); - u.resize(2, 0); - y[0] = 13; - u[0] = 1.3; - linear(0,2, y, u, 2.3, 5.6); - res = y[1]; - EXPECT_NEAR(res, 75.79, 0.01); + Params p; + p.y.resize(2, 0); + p.u.resize(2, 0); + p.k = 2; + p.y[0] = 13; + p.u[0] = 1.3; + p.a = 2.3; + p.b = 5.6; + linear(p,0); + res = p.y[1]; + EXPECT_NEAR(res, 37.18, 0.01); } TEST(Test, linearr2) { double res; - vector y; - vector u; - y.resize(2, 0); - u.resize(2, 0); - y[0] = 2.6; - u[0] = 3.5; - linear(0,2, y, u, 14.7, 5.6); - res = y[1]; - EXPECT_NEAR(res, 66, 0.01); + Params p; + p.y.resize(2, 0); + p.u.resize(2, 0); + p.k = 2; + p.y[0] = 2.6; + p.u[0] = 3.5; + p.a = 14.7; + p.b = 5.6; + linear(p,0); + res = p.y[1]; + EXPECT_NEAR(res, 57.82, 0.01); } TEST(Test, linearr3) { double res; - vector y; - vector u; - y.resize(2, 0); - u.resize(2, 0); - y[0] = 0.8; - u[0] = 9.6; - linear(0,2, y, u, 12.3, 7.3); - res = y[1]; - EXPECT_NEAR(res, 75, 0.01);//123.92 ïðàâèëüíûé + Params p; + p.y.resize(2, 0); + p.u.resize(2, 0); + p.k = 2; + p.y[0] = 0.8; + p.u[0] = 9.6; + p.a = 12.3; + p.b = 7.3; + linear(p,0); + res = p.y[1]; + EXPECT_NEAR(res, 79.92, 0.01); } From 91a08a11bfbf38dcb111b29f6d0e3cd4d27a701d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B4=D1=87=D0=B8=D0=BD=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80?= Date: Sun, 11 Jan 2026 14:34:16 +0300 Subject: [PATCH 15/15] Update CMakeLists.txt --- trunk/ii02704/task_02/src/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/trunk/ii02704/task_02/src/CMakeLists.txt b/trunk/ii02704/task_02/src/CMakeLists.txt index a3b531287..b50d6d032 100644 --- a/trunk/ii02704/task_02/src/CMakeLists.txt +++ b/trunk/ii02704/task_02/src/CMakeLists.txt @@ -1,10 +1,10 @@ cmake_minimum_required (VERSION 3.5) project (task_02_ii02704) -add_library(linear +add_library(linear_ii02704 linear1.cpp) add_executable (ii02704_task2 otis2.cpp) -target_link_libraries(ii02704_task2 PRIVATE linear) +target_link_libraries(ii02704_task2 PRIVATE linear_ii02704)