GCC Code Coverage Report


Directory: ./
File: tasks/boltenkov_s_gaussian_kernel/seq/src/ops_seq.cpp
Date: 2026-04-02 17:12:27
Exec Total Coverage
Lines: 34 34 100.0%
Functions: 5 5 100.0%
Branches: 24 44 54.5%

Line Branch Exec Source
1 #include "boltenkov_s_gaussian_kernel/seq/include/ops_seq.hpp"
2
3 #include <algorithm>
4 #include <cstddef>
5 #include <vector>
6
7 #include "boltenkov_s_gaussian_kernel/common/include/common.hpp"
8
9 namespace boltenkov_s_gaussian_kernel {
10
11
1/2
✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
16 BoltenkovSGaussianKernelSEQ::BoltenkovSGaussianKernelSEQ(const InType &in)
12
5/12
✗ Branch 1 not taken.
✓ Branch 2 taken 16 times.
✓ Branch 3 taken 48 times.
✓ Branch 4 taken 16 times.
✓ Branch 5 taken 48 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 16 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
64 : kernel_{{{1, 2, 1}, {2, 4, 2}, {1, 2, 1}}} {
13 SetTypeOfTask(GetStaticTypeOfTask());
14 GetInput() = in;
15 16 GetOutput() = std::vector<std::vector<int>>();
16
3/10
✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 16 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 16 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
32 }
17
18 16 bool BoltenkovSGaussianKernelSEQ::ValidationImpl() {
19 16 std::size_t n = std::get<0>(GetInput());
20
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 16 times.
16 std::size_t m = std::get<1>(GetInput());
21
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 16 times.
16 if (std::get<2>(GetInput()).size() != n) {
22 return false;
23 }
24
2/2
✓ Branch 0 taken 440 times.
✓ Branch 1 taken 16 times.
456 for (std::size_t i = 0; i < n; i++) {
25
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 440 times.
440 if (std::get<2>(GetInput())[i].size() != m) {
26 return false;
27 }
28 }
29 return true;
30 }
31
32 16 bool BoltenkovSGaussianKernelSEQ::PreProcessingImpl() {
33 16 GetOutput().resize(std::get<0>(GetInput()));
34
2/2
✓ Branch 0 taken 440 times.
✓ Branch 1 taken 16 times.
456 for (std::size_t i = 0; i < std::get<0>(GetInput()); i++) {
35 440 GetOutput()[i].resize(std::get<1>(GetInput()));
36 }
37 16 return true;
38 }
39
40 16 bool BoltenkovSGaussianKernelSEQ::RunImpl() {
41 16 std::size_t n = std::get<0>(GetInput());
42 16 std::size_t m = std::get<1>(GetInput());
43
44 16 std::vector<std::vector<int>> data = std::get<2>(GetInput());
45
2/4
✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 16 times.
✗ Branch 5 not taken.
16 std::vector<std::vector<int>> tmp_data(n + 2, std::vector<int>(m + 2, 0));
46 std::vector<std::vector<int>> &res = GetOutput();
47
48
2/2
✓ Branch 0 taken 440 times.
✓ Branch 1 taken 16 times.
456 for (std::size_t i = 1; i <= n; i++) {
49 440 std::copy(data[i - 1].begin(), data[i - 1].end(), tmp_data[i].begin() + 1);
50 }
51
52
2/2
✓ Branch 0 taken 440 times.
✓ Branch 1 taken 16 times.
456 for (std::size_t i = 1; i <= n; i++) {
53
2/2
✓ Branch 0 taken 28280 times.
✓ Branch 1 taken 440 times.
28720 for (std::size_t j = 1; j <= m; j++) {
54 28280 res[i - 1][j - 1] = (tmp_data[i - 1][j - 1] * kernel_[0][0]) + (tmp_data[i - 1][j] * kernel_[0][1]) +
55 28280 (tmp_data[i - 1][j + 1] * kernel_[0][2]) + (tmp_data[i][j - 1] * kernel_[1][0]) +
56 28280 (tmp_data[i][j] * kernel_[1][1]) + (tmp_data[i][j + 1] * kernel_[1][2]) +
57 28280 (tmp_data[i + 1][j - 1] * kernel_[2][0]) + (tmp_data[i + 1][j] * kernel_[2][1]) +
58 28280 (tmp_data[i + 1][j + 1] * kernel_[2][2]);
59 28280 res[i - 1][j - 1] >>= shift_;
60 }
61 }
62
63 16 return true;
64 16 }
65
66 16 bool BoltenkovSGaussianKernelSEQ::PostProcessingImpl() {
67 16 return true;
68 }
69
70 } // namespace boltenkov_s_gaussian_kernel
71