| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include <cstdint> | ||
| 4 | #include <string> | ||
| 5 | #include <tuple> | ||
| 6 | #include <vector> | ||
| 7 | |||
| 8 | #include "task/include/task.hpp" | ||
| 9 | |||
| 10 | namespace tsibareva_e_matrix_column_max { | ||
| 11 | |||
| 12 | enum class MatrixType : std::uint8_t { | ||
| 13 | kSingleConstant, // 1x1 константная | ||
| 14 | kSingleRow, // 1x10 одна строка | ||
| 15 | kSingleCol, // 3x1 один столбец | ||
| 16 | kAllZeros, // 5x5 все нули | ||
| 17 | kConstant, // 5x5 константная | ||
| 18 | kMaxFirst, // 6x4 максимум в первой строке | ||
| 19 | kMaxLast, // 6x4 максимум в последней строке | ||
| 20 | kMaxMiddle, // 6x4 максимум в середине | ||
| 21 | kAscending, // 8x8 возрастающая | ||
| 22 | kDescending, // 8x8 убывающая | ||
| 23 | kDiagonalDominant, // 8x8 диагонально доминантная | ||
| 24 | kSparse, // 8x8 разреженная | ||
| 25 | kNegative, // 8x8 отрицательная | ||
| 26 | kSquareSmall, // 2x2 маленькая квадратная | ||
| 27 | kVertical, // 10x4 вертикальная | ||
| 28 | kHorizontal, // 5x10 горизонтальная | ||
| 29 | kCheckerboard, // 7x7 шахматная | ||
| 30 | kEmpty, // Пустая матрица | ||
| 31 | kZeroColumns, // Матрица с нулевыми столбцами | ||
| 32 | kNonRectangular // Непрямоугольная матрица | ||
| 33 | }; | ||
| 34 | |||
| 35 | using InType = std::vector<std::vector<int>>; | ||
| 36 | using OutType = std::vector<int>; | ||
| 37 | using TestType = std::tuple<MatrixType, std::string>; | ||
| 38 | using BaseTask = ppc::task::Task<InType, OutType>; | ||
| 39 | |||
| 40 | 10 | inline std::vector<std::vector<int>> GenerateSingleConstantMatrix() { | |
| 41 |
4/10✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 10 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 10 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
20 | return {{30}}; |
| 42 | 20 | } | |
| 43 | inline std::vector<int> GenerateSingleConstantExpected() { | ||
| 44 | 10 | return {30}; | |
| 45 | } | ||
| 46 | |||
| 47 | 10 | inline std::vector<std::vector<int>> GenerateSingleRowMatrix() { | |
| 48 |
4/10✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 10 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 10 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
20 | return {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}; |
| 49 | 10 | } | |
| 50 | inline std::vector<int> GenerateSingleRowExpected() { | ||
| 51 | 10 | return {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; | |
| 52 | } | ||
| 53 | |||
| 54 | 10 | inline std::vector<std::vector<int>> GenerateSingleColMatrix() { | |
| 55 |
4/10✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 30 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
40 | return {{1}, {2}, {3}}; |
| 56 |
3/10✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
|
20 | } |
| 57 | inline std::vector<int> GenerateSingleColExpected() { | ||
| 58 | 10 | return {3}; | |
| 59 | } | ||
| 60 | |||
| 61 | 14 | inline std::vector<std::vector<int>> GenerateAllZerosMatrix() { | |
| 62 |
4/10✗ Branch 1 not taken.
✓ Branch 2 taken 14 times.
✓ Branch 3 taken 70 times.
✓ Branch 4 taken 14 times.
✓ Branch 5 taken 70 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
84 | return {{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}}; |
| 63 |
5/14✓ Branch 1 taken 14 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 14 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 14 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 14 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 14 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
28 | } |
| 64 | 14 | inline std::vector<int> GenerateAllZerosExpected() { | |
| 65 | 14 | return {0, 0, 0, 0, 0}; | |
| 66 | } | ||
| 67 | |||
| 68 | 10 | inline std::vector<std::vector<int>> GenerateConstantMatrix() { | |
| 69 |
4/10✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 50 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 50 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
60 | return {{30, 30, 30, 30, 30}, {30, 30, 30, 30, 30}, {30, 30, 30, 30, 30}, {30, 30, 30, 30, 30}, {30, 30, 30, 30, 30}}; |
| 70 |
5/14✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
10 | } |
| 71 | inline std::vector<int> GenerateConstantExpected() { | ||
| 72 | 10 | return {30, 30, 30, 30, 30}; | |
| 73 | } | ||
| 74 | |||
| 75 | 10 | inline std::vector<std::vector<int>> GenerateMaxFirstMatrix() { | |
| 76 |
4/10✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 60 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 60 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
70 | return {{1000, 1001, 1002, 1003}, {1, 2, 3, 4}, {2, 3, 4, 5}, {3, 4, 5, 6}, {4, 5, 6, 7}, {5, 6, 7, 8}}; |
| 77 |
6/16✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 10 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
10 | } |
| 78 | inline std::vector<int> GenerateMaxFirstExpected() { | ||
| 79 | 10 | return {1000, 1001, 1002, 1003}; | |
| 80 | } | ||
| 81 | |||
| 82 | 10 | inline std::vector<std::vector<int>> GenerateMaxLastMatrix() { | |
| 83 |
4/10✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 60 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 60 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
70 | return {{1, 2, 3, 4}, {2, 3, 4, 5}, {3, 4, 5, 6}, {4, 5, 6, 7}, {5, 6, 7, 8}, {1000, 1001, 1002, 1003}}; |
| 84 |
6/16✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 10 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
10 | } |
| 85 | inline std::vector<int> GenerateMaxLastExpected() { | ||
| 86 | 10 | return {1000, 1001, 1002, 1003}; | |
| 87 | } | ||
| 88 | |||
| 89 | 10 | inline std::vector<std::vector<int>> GenerateMaxMiddleMatrix() { | |
| 90 |
4/10✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 60 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 60 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
70 | return {{1, 2, 3, 4}, {2, 3, 4, 5}, {1000, 1001, 1002, 1003}, {4, 5, 6, 7}, {5, 6, 7, 8}, {6, 7, 8, 9}}; |
| 91 |
6/16✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 10 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
10 | } |
| 92 | inline std::vector<int> GenerateMaxMiddleExpected() { | ||
| 93 | 10 | return {1000, 1001, 1002, 1003}; | |
| 94 | } | ||
| 95 | |||
| 96 | 10 | inline std::vector<std::vector<int>> GenerateAscendingMatrix() { | |
| 97 | return {{1, 2, 3, 4, 5, 6, 7, 8}, {9, 10, 11, 12, 13, 14, 15, 16}, {17, 18, 19, 20, 21, 22, 23, 24}, | ||
| 98 | {25, 26, 27, 28, 29, 30, 31, 32}, {33, 34, 35, 36, 37, 38, 39, 40}, {41, 42, 43, 44, 45, 46, 47, 48}, | ||
| 99 |
4/10✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 80 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 80 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
90 | {49, 50, 51, 52, 53, 54, 55, 56}, {57, 58, 59, 60, 61, 62, 63, 64}}; |
| 100 |
8/20✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 10 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 10 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 10 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
10 | } |
| 101 | inline std::vector<int> GenerateAscendingExpected() { | ||
| 102 | 10 | return {57, 58, 59, 60, 61, 62, 63, 64}; | |
| 103 | } | ||
| 104 | |||
| 105 | 10 | inline std::vector<std::vector<int>> GenerateDescendingMatrix() { | |
| 106 | return {{64, 63, 62, 61, 60, 59, 58, 57}, {56, 55, 54, 53, 52, 51, 50, 49}, {48, 47, 46, 45, 44, 43, 42, 41}, | ||
| 107 | {40, 39, 38, 37, 36, 35, 34, 33}, {32, 31, 30, 29, 28, 27, 26, 25}, {24, 23, 22, 21, 20, 19, 18, 17}, | ||
| 108 |
4/10✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 80 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 80 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
90 | {16, 15, 14, 13, 12, 11, 10, 9}, {8, 7, 6, 5, 4, 3, 2, 1}}; |
| 109 |
8/20✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 10 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 10 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 10 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
10 | } |
| 110 | inline std::vector<int> GenerateDescendingExpected() { | ||
| 111 | 10 | return {64, 63, 62, 61, 60, 59, 58, 57}; | |
| 112 | } | ||
| 113 | |||
| 114 | 10 | inline std::vector<std::vector<int>> GenerateDiagonalDominantMatrix() { | |
| 115 | return {{1000, 1, 2, 3, 4, 5, 6, 7}, {1, 1100, 3, 4, 5, 6, 7, 8}, {2, 3, 1200, 5, 6, 7, 8, 9}, | ||
| 116 | {3, 4, 5, 1300, 7, 8, 9, 10}, {4, 5, 6, 7, 1400, 9, 10, 11}, {5, 6, 7, 8, 9, 1500, 11, 12}, | ||
| 117 |
4/10✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 80 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 80 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
90 | {6, 7, 8, 9, 10, 11, 1600, 14}, {7, 8, 9, 10, 11, 12, 14, 1700}}; |
| 118 |
8/20✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 10 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 10 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 10 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
10 | } |
| 119 | inline std::vector<int> GenerateDiagonalDominantExpected() { | ||
| 120 | 10 | return {1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700}; | |
| 121 | } | ||
| 122 | |||
| 123 | 10 | inline std::vector<std::vector<int>> GenerateSparseMatrix() { | |
| 124 | return {{8, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 61, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 72, 0}, | ||
| 125 |
4/10✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 80 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 80 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
90 | {0, 0, 0, 0, 0, 0, 0, 0}, {0, 9, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}; |
| 126 |
8/20✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 10 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 10 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 10 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
20 | } |
| 127 | inline std::vector<int> GenerateSparseExpected() { | ||
| 128 | 10 | return {8, 9, 0, 61, 0, 0, 72, 0}; | |
| 129 | } | ||
| 130 | |||
| 131 | 10 | inline std::vector<std::vector<int>> GenerateNegativeMatrix() { | |
| 132 | return {{-30, -31, -32, -33, -34, -35, -36, -37}, {-40, -41, -42, -43, -44, -45, -46, -47}, | ||
| 133 | {-50, -51, -52, -53, -54, -55, -56, -57}, {-60, -61, -62, -63, -64, -65, -66, -67}, | ||
| 134 | {-70, -71, -72, -73, -74, -75, -76, -77}, {-80, -81, -82, -83, -84, -85, -86, -87}, | ||
| 135 |
4/10✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 80 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 80 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
90 | {-90, -91, -92, -93, -94, -95, -96, -97}, {-100, -101, -102, -103, -104, -105, -106, -107}}; |
| 136 |
8/20✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 10 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 10 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 10 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
10 | } |
| 137 | inline std::vector<int> GenerateNegativeExpected() { | ||
| 138 | 10 | return {-30, -31, -32, -33, -34, -35, -36, -37}; | |
| 139 | } | ||
| 140 | |||
| 141 | 10 | inline std::vector<std::vector<int>> GenerateSquareSmallMatrix() { | |
| 142 |
4/10✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 20 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 20 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
30 | return {{1, 2}, {3, 4}}; |
| 143 |
2/8✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
|
10 | } |
| 144 | inline std::vector<int> GenerateSquareSmallExpected() { | ||
| 145 | 10 | return {3, 4}; | |
| 146 | } | ||
| 147 | |||
| 148 | 10 | inline std::vector<std::vector<int>> GenerateVerticalMatrix() { | |
| 149 | return {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}, {17, 18, 19, 20}, | ||
| 150 |
4/10✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 100 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 100 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
110 | {21, 22, 23, 24}, {25, 26, 27, 28}, {29, 30, 31, 32}, {33, 34, 35, 36}, {37, 38, 39, 40}}; |
| 151 |
10/24✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 10 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 10 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 10 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 10 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 10 times.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
|
10 | } |
| 152 | inline std::vector<int> GenerateVerticalExpected() { | ||
| 153 | 10 | return {37, 38, 39, 40}; | |
| 154 | } | ||
| 155 | |||
| 156 | 10 | inline std::vector<std::vector<int>> GenerateHorizontalMatrix() { | |
| 157 | return {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, | ||
| 158 | {11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, | ||
| 159 | {21, 22, 23, 24, 25, 26, 27, 28, 29, 30}, | ||
| 160 | {31, 32, 33, 34, 35, 36, 37, 38, 39, 40}, | ||
| 161 |
4/10✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 50 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 50 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
60 | {41, 42, 43, 44, 45, 46, 47, 48, 49, 50}}; |
| 162 |
5/14✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
10 | } |
| 163 | inline std::vector<int> GenerateHorizontalExpected() { | ||
| 164 | 10 | return {41, 42, 43, 44, 45, 46, 47, 48, 49, 50}; | |
| 165 | } | ||
| 166 | |||
| 167 | 10 | inline std::vector<std::vector<int>> GenerateCheckerboardMatrix() { | |
| 168 | return {{1, -1, 1, -1, 1, -1, 1}, {-1, 1, -1, 1, -1, 1, -1}, {1, -1, 1, -1, 1, -1, 1}, {-1, 1, -1, 1, -1, 1, -1}, | ||
| 169 |
4/10✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 70 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 70 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
80 | {1, -1, 1, -1, 1, -1, 1}, {-1, 1, -1, 1, -1, 1, -1}, {1, -1, 1, -1, 1, -1, 1}}; |
| 170 |
7/18✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 10 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 10 times.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
10 | } |
| 171 | inline std::vector<int> GenerateCheckerboardExpected() { | ||
| 172 | 10 | return {1, 1, 1, 1, 1, 1, 1}; | |
| 173 | } | ||
| 174 | |||
| 175 | inline std::vector<std::vector<int>> GenerateEmptyMatrix() { | ||
| 176 | 10 | return {}; | |
| 177 | } | ||
| 178 | inline std::vector<std::vector<int>> GenerateZeroColumnsMatrix() { | ||
| 179 | 10 | return std::vector<std::vector<int>>(5, std::vector<int>()); | |
| 180 | } | ||
| 181 | 10 | inline std::vector<std::vector<int>> GenerateNonRectangularMatrix() { | |
| 182 |
4/10✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 30 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
40 | return {{1, 2, 3}, {4, 5}, {6, 7, 8}}; |
| 183 |
3/10✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
|
10 | } |
| 184 | inline std::vector<int> GenerateEmptyExpected() { | ||
| 185 | 30 | return {}; | |
| 186 | } | ||
| 187 | |||
| 188 | 204 | inline std::vector<std::vector<int>> GenerateMatrixFunc(MatrixType type) { | |
| 189 |
20/21✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 14 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 10 times.
✓ Branch 6 taken 10 times.
✓ Branch 7 taken 10 times.
✓ Branch 8 taken 10 times.
✓ Branch 9 taken 10 times.
✓ Branch 10 taken 10 times.
✓ Branch 11 taken 10 times.
✓ Branch 12 taken 10 times.
✓ Branch 13 taken 10 times.
✓ Branch 14 taken 10 times.
✓ Branch 15 taken 10 times.
✓ Branch 16 taken 10 times.
✓ Branch 17 taken 10 times.
✓ Branch 18 taken 10 times.
✓ Branch 19 taken 10 times.
✗ Branch 20 not taken.
|
204 | switch (type) { |
| 190 | 10 | case MatrixType::kSingleConstant: | |
| 191 | 10 | return GenerateSingleConstantMatrix(); | |
| 192 | 10 | case MatrixType::kSingleRow: | |
| 193 | 10 | return GenerateSingleRowMatrix(); | |
| 194 | 10 | case MatrixType::kSingleCol: | |
| 195 | 10 | return GenerateSingleColMatrix(); | |
| 196 | 14 | case MatrixType::kAllZeros: | |
| 197 | 14 | return GenerateAllZerosMatrix(); | |
| 198 | 10 | case MatrixType::kConstant: | |
| 199 | 10 | return GenerateConstantMatrix(); | |
| 200 | 10 | case MatrixType::kMaxFirst: | |
| 201 | 10 | return GenerateMaxFirstMatrix(); | |
| 202 | 10 | case MatrixType::kMaxLast: | |
| 203 | 10 | return GenerateMaxLastMatrix(); | |
| 204 | 10 | case MatrixType::kMaxMiddle: | |
| 205 | 10 | return GenerateMaxMiddleMatrix(); | |
| 206 | 10 | case MatrixType::kAscending: | |
| 207 | 10 | return GenerateAscendingMatrix(); | |
| 208 | 10 | case MatrixType::kDescending: | |
| 209 | 10 | return GenerateDescendingMatrix(); | |
| 210 | 10 | case MatrixType::kDiagonalDominant: | |
| 211 | 10 | return GenerateDiagonalDominantMatrix(); | |
| 212 | 10 | case MatrixType::kSparse: | |
| 213 | 10 | return GenerateSparseMatrix(); | |
| 214 | 10 | case MatrixType::kNegative: | |
| 215 | 10 | return GenerateNegativeMatrix(); | |
| 216 | 10 | case MatrixType::kSquareSmall: | |
| 217 | 10 | return GenerateSquareSmallMatrix(); | |
| 218 | 10 | case MatrixType::kVertical: | |
| 219 | 10 | return GenerateVerticalMatrix(); | |
| 220 | 10 | case MatrixType::kHorizontal: | |
| 221 | 10 | return GenerateHorizontalMatrix(); | |
| 222 | 10 | case MatrixType::kCheckerboard: | |
| 223 | 10 | return GenerateCheckerboardMatrix(); | |
| 224 | 10 | case MatrixType::kEmpty: | |
| 225 | return GenerateEmptyMatrix(); | ||
| 226 | 10 | case MatrixType::kZeroColumns: | |
| 227 | return GenerateZeroColumnsMatrix(); | ||
| 228 | 10 | case MatrixType::kNonRectangular: | |
| 229 | 10 | return GenerateNonRectangularMatrix(); | |
| 230 | } | ||
| 231 | ✗ | return GenerateSingleConstantMatrix(); | |
| 232 | } | ||
| 233 | |||
| 234 | 204 | inline std::vector<int> GenerateExpectedOutput(MatrixType type) { | |
| 235 |
18/19✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 14 times.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 10 times.
✓ Branch 6 taken 10 times.
✓ Branch 7 taken 10 times.
✓ Branch 8 taken 10 times.
✓ Branch 9 taken 10 times.
✓ Branch 10 taken 10 times.
✓ Branch 11 taken 10 times.
✓ Branch 12 taken 10 times.
✓ Branch 13 taken 10 times.
✓ Branch 14 taken 10 times.
✓ Branch 15 taken 10 times.
✓ Branch 16 taken 10 times.
✓ Branch 17 taken 30 times.
✗ Branch 18 not taken.
|
204 | switch (type) { |
| 236 | 10 | case MatrixType::kSingleConstant: | |
| 237 | return GenerateSingleConstantExpected(); | ||
| 238 | 10 | case MatrixType::kSingleRow: | |
| 239 | return GenerateSingleRowExpected(); | ||
| 240 | 10 | case MatrixType::kSingleCol: | |
| 241 | return GenerateSingleColExpected(); | ||
| 242 | 14 | case MatrixType::kAllZeros: | |
| 243 | 14 | return GenerateAllZerosExpected(); | |
| 244 | 10 | case MatrixType::kConstant: | |
| 245 | return GenerateConstantExpected(); | ||
| 246 | 10 | case MatrixType::kMaxFirst: | |
| 247 | return GenerateMaxFirstExpected(); | ||
| 248 | 10 | case MatrixType::kMaxLast: | |
| 249 | return GenerateMaxLastExpected(); | ||
| 250 | 10 | case MatrixType::kMaxMiddle: | |
| 251 | return GenerateMaxMiddleExpected(); | ||
| 252 | 10 | case MatrixType::kAscending: | |
| 253 | return GenerateAscendingExpected(); | ||
| 254 | 10 | case MatrixType::kDescending: | |
| 255 | return GenerateDescendingExpected(); | ||
| 256 | 10 | case MatrixType::kDiagonalDominant: | |
| 257 | return GenerateDiagonalDominantExpected(); | ||
| 258 | 10 | case MatrixType::kSparse: | |
| 259 | return GenerateSparseExpected(); | ||
| 260 | 10 | case MatrixType::kNegative: | |
| 261 | return GenerateNegativeExpected(); | ||
| 262 | 10 | case MatrixType::kSquareSmall: | |
| 263 | return GenerateSquareSmallExpected(); | ||
| 264 | 10 | case MatrixType::kVertical: | |
| 265 | return GenerateVerticalExpected(); | ||
| 266 | 10 | case MatrixType::kHorizontal: | |
| 267 | return GenerateHorizontalExpected(); | ||
| 268 | 10 | case MatrixType::kCheckerboard: | |
| 269 | return GenerateCheckerboardExpected(); | ||
| 270 | 30 | case MatrixType::kEmpty: | |
| 271 | case MatrixType::kZeroColumns: | ||
| 272 | case MatrixType::kNonRectangular: | ||
| 273 | return GenerateEmptyExpected(); | ||
| 274 | } | ||
| 275 | return GenerateSingleConstantExpected(); | ||
| 276 | } | ||
| 277 | |||
| 278 | } // namespace tsibareva_e_matrix_column_max | ||
| 279 |