GCC Code Coverage Report


Directory: ./
File: tasks/nalitov_d_matrix_min_by_columns/seq/src/ops_seq.cpp
Date: 2026-01-27 01:59:34
Exec Total Coverage
Lines: 25 25 100.0%
Functions: 5 5 100.0%
Branches: 13 22 59.1%

Line Branch Exec Source
1 #include "nalitov_d_matrix_min_by_columns/seq/include/ops_seq.hpp"
2
3 #include <algorithm>
4 #include <cstddef>
5 #include <cstdint>
6 #include <vector>
7
8 #include "nalitov_d_matrix_min_by_columns/common/include/common.hpp"
9
10 namespace nalitov_d_matrix_min_by_columns {
11
12 88 NalitovDMinMatrixSEQ::NalitovDMinMatrixSEQ(const InType &in) {
13 SetTypeOfTask(GetStaticTypeOfTask());
14 88 GetInput() = in;
15 GetOutput().clear();
16 88 }
17
18 88 bool NalitovDMinMatrixSEQ::ValidationImpl() {
19
2/4
✓ Branch 0 taken 88 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 88 times.
88 return (GetInput() > 0) && (GetOutput().empty());
20 }
21
22
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 88 times.
88 bool NalitovDMinMatrixSEQ::PreProcessingImpl() {
23 GetOutput().clear();
24 88 GetOutput().reserve(GetInput());
25 88 return true;
26 }
27
28 88 bool NalitovDMinMatrixSEQ::RunImpl() {
29 88 InType n = GetInput();
30
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 88 times.
88 if (n == 0) {
31 return false;
32 }
33
34 GetOutput().clear();
35 88 GetOutput().reserve(n);
36
37 auto generate = [](int64_t i, int64_t j) -> InType {
38 2946312 uint64_t seed = (i * 100000007ULL + j * 1000000009ULL) ^ 42ULL;
39
40 2946312 seed ^= seed >> 12;
41 2946312 seed ^= seed << 25;
42 2946312 seed ^= seed >> 27;
43 2946312 uint64_t value = seed * 0x2545F4914F6CDD1DULL;
44
45 2936816 return static_cast<InType>((value % 2000001) - 1000000);
46 };
47
48
2/2
✓ Branch 0 taken 9496 times.
✓ Branch 1 taken 88 times.
9584 for (InType j = 0; j < n; j++) {
49 9496 InType min_val = generate(static_cast<int64_t>(0), static_cast<int64_t>(j));
50
2/2
✓ Branch 0 taken 2936816 times.
✓ Branch 1 taken 9496 times.
2946312 for (InType i = 1; i < n; i++) {
51 InType val = generate(static_cast<int64_t>(i), static_cast<int64_t>(j));
52 2936816 min_val = std::min(min_val, val);
53 }
54
55 GetOutput().push_back(min_val);
56 }
57
58
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 88 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 88 times.
88 return !GetOutput().empty() && (GetOutput().size() == static_cast<size_t>(n));
59 }
60
61
1/2
✓ Branch 0 taken 88 times.
✗ Branch 1 not taken.
88 bool NalitovDMinMatrixSEQ::PostProcessingImpl() {
62
2/4
✓ Branch 0 taken 88 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 88 times.
88 return !GetOutput().empty() && (GetOutput().size() == static_cast<size_t>(GetInput()));
63 }
64
65 } // namespace nalitov_d_matrix_min_by_columns
66