Skip to content

Commit 58c1466

Browse files
committed
refactor func tests in tasks
1 parent 7d9558a commit 58c1466

7 files changed

Lines changed: 169 additions & 205 deletions

File tree

tasks/all/example/func_tests/func_all.cpp

Lines changed: 0 additions & 60 deletions
This file was deleted.
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#include <gtest/gtest.h>
2+
3+
#include <cstddef>
4+
#include <cstdint>
5+
#include <memory>
6+
#include <stb_library.hpp>
7+
#include <string>
8+
#include <vector>
9+
10+
#include "all/example/include/ops_all.hpp"
11+
#include "core/task/include/task.hpp"
12+
#include "core/util/include/util.hpp"
13+
14+
class NesterovATestTaskAll : public ::testing::TestWithParam<int> {
15+
protected:
16+
void SetUp() override {
17+
width = height = channels = -1;
18+
std::string abs_path = ppc::util::GetAbsolutePath("all/example/data/pic_all.jpg");
19+
data = stbi_load(abs_path.c_str(), &width, &height, &channels, 0);
20+
ASSERT_TRUE(data != nullptr) << "Failed to load image: " << stbi_failure_reason();
21+
img = std::vector<uint8_t>(data, data + (width * height * channels));
22+
stbi_image_free(data);
23+
24+
ASSERT_EQ(width, height);
25+
}
26+
27+
int width = -1, height = -1, channels = -1;
28+
unsigned char* data = nullptr;
29+
std::vector<uint8_t> img;
30+
};
31+
32+
TEST_P(NesterovATestTaskAll, MatmulFromPic) {
33+
int divider = GetParam();
34+
const int k_count = (width + height) / divider;
35+
36+
std::vector<int> in(k_count * k_count, 0);
37+
for (int i = 0; i < k_count; i++) {
38+
in[(i * k_count) + i] = 1;
39+
}
40+
41+
nesterov_a_test_task_all::TestTaskALL test_task_all(in);
42+
ASSERT_TRUE(test_task_all.Validation());
43+
test_task_all.PreProcessing();
44+
test_task_all.Run();
45+
test_task_all.PostProcessing();
46+
EXPECT_EQ(in, test_task_all.Get());
47+
}
48+
49+
INSTANTIATE_TEST_SUITE_P(
50+
PicMatrixTests,
51+
NesterovATestTaskAll,
52+
::testing::Values(5, 10));

tasks/mpi/example/func_tests/main.cpp

Lines changed: 23 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -11,49 +11,42 @@
1111
#include "core/util/include/util.hpp"
1212
#include "mpi/example/include/ops_mpi.hpp"
1313

14-
TEST(nesterov_a_test_task_mpi, test_matmul_50) {
15-
constexpr size_t kCount = 50;
16-
17-
// Create data
18-
std::vector<int> in(kCount * kCount, 0);
19-
20-
for (size_t i = 0; i < kCount; i++) {
21-
in[(i * kCount) + i] = 1;
14+
class NesterovATestTaskMPI : public ::testing::TestWithParam<double> {
15+
protected:
16+
void SetUp() override {
17+
std::ifstream test_file(ppc::util::GetAbsolutePath("mpi/example/data/test.txt"));
18+
ASSERT_TRUE(test_file.is_open()) << "Failed to open input file";
19+
std::string line;
20+
std::getline(test_file, line);
21+
test_file.close();
22+
base_count = std::stoi(line);
2223
}
2324

24-
// Create Task
25-
nesterov_a_test_task_mpi::TestTaskMPI test_task_mpi(in);
26-
ASSERT_EQ(test_task_mpi.Validation(), true);
27-
test_task_mpi.PreProcessing();
28-
test_task_mpi.Run();
29-
test_task_mpi.PostProcessing();
30-
31-
EXPECT_EQ(in, test_task_mpi.Get());
32-
}
33-
34-
TEST(nesterov_a_test_task_mpi, test_matmul_100_from_file) {
35-
std::string line;
36-
std::ifstream test_file(ppc::util::GetAbsolutePath("mpi/example/data/test.txt"));
37-
if (test_file.is_open()) {
38-
getline(test_file, line);
25+
[[nodiscard]] size_t GetCount() const {
26+
return static_cast<size_t>(base_count * GetParam());
3927
}
40-
test_file.close();
4128

42-
const size_t count = std::stoi(line);
29+
int base_count = 0;
30+
};
4331

44-
// Create data
45-
std::vector<int> in(count * count, 0);
32+
TEST_P(NesterovATestTaskMPI, MatmulFromFile) {
33+
const size_t count = GetCount();
4634

47-
for (size_t i = 0; i < count; i++) {
35+
std::vector<int> in(count * count, 0);
36+
for (size_t i = 0; i < count; ++i) {
4837
in[(i * count) + i] = 1;
4938
}
5039

51-
// Create Task
5240
nesterov_a_test_task_mpi::TestTaskMPI test_task_mpi(in);
53-
ASSERT_EQ(test_task_mpi.Validation(), true);
41+
ASSERT_TRUE(test_task_mpi.Validation());
5442
test_task_mpi.PreProcessing();
5543
test_task_mpi.Run();
5644
test_task_mpi.PostProcessing();
5745

5846
EXPECT_EQ(in, test_task_mpi.Get());
5947
}
48+
49+
INSTANTIATE_TEST_SUITE_P(
50+
FileMatrixTestsMPI,
51+
NesterovATestTaskMPI,
52+
::testing::Values(0.5, 1.0));

tasks/omp/example/func_tests/main.cpp

Lines changed: 24 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -11,47 +11,42 @@
1111
#include "core/util/include/util.hpp"
1212
#include "omp/example/include/ops_omp.hpp"
1313

14-
TEST(nesterov_a_test_task_omp, test_matmul_50) {
15-
constexpr size_t kCount = 50;
16-
17-
// Create data
18-
std::vector<int> in(kCount * kCount, 0);
19-
20-
for (size_t i = 0; i < kCount; i++) {
21-
in[(i * kCount) + i] = 1;
14+
class NesterovATestTaskOMP : public ::testing::TestWithParam<double> {
15+
protected:
16+
void SetUp() override {
17+
std::ifstream test_file(ppc::util::GetAbsolutePath("omp/example/data/test.txt"));
18+
ASSERT_TRUE(test_file.is_open()) << "Failed to open input file";
19+
std::string line;
20+
std::getline(test_file, line);
21+
test_file.close();
22+
base_count = std::stoi(line);
2223
}
2324

24-
// Create Task
25-
nesterov_a_test_task_omp::TestTaskOpenMP test_task_omp(in);
26-
ASSERT_EQ(test_task_omp.Validation(), true);
27-
test_task_omp.PreProcessing();
28-
test_task_omp.Run();
29-
test_task_omp.PostProcessing();
30-
EXPECT_EQ(in, test_task_omp.Get());
31-
}
32-
33-
TEST(nesterov_a_test_task_omp, test_matmul_100_from_file) {
34-
std::string line;
35-
std::ifstream test_file(ppc::util::GetAbsolutePath("omp/example/data/test.txt"));
36-
if (test_file.is_open()) {
37-
getline(test_file, line);
25+
[[nodiscard]] size_t GetCount() const {
26+
return static_cast<size_t>(base_count * GetParam());
3827
}
39-
test_file.close();
4028

41-
const size_t count = std::stoi(line);
29+
int base_count = 0;
30+
};
4231

43-
// Create data
44-
std::vector<int> in(count * count, 0);
32+
TEST_P(NesterovATestTaskOMP, MatmulFromFile) {
33+
const size_t count = GetCount();
4534

46-
for (size_t i = 0; i < count; i++) {
35+
std::vector<int> in(count * count, 0);
36+
for (size_t i = 0; i < count; ++i) {
4737
in[(i * count) + i] = 1;
4838
}
4939

50-
// Create Task
5140
nesterov_a_test_task_omp::TestTaskOpenMP test_task_omp(in);
52-
ASSERT_EQ(test_task_omp.Validation(), true);
41+
ASSERT_TRUE(test_task_omp.Validation());
5342
test_task_omp.PreProcessing();
5443
test_task_omp.Run();
5544
test_task_omp.PostProcessing();
45+
5646
EXPECT_EQ(in, test_task_omp.Get());
5747
}
48+
49+
INSTANTIATE_TEST_SUITE_P(
50+
FileMatrixTestsOMP,
51+
NesterovATestTaskOMP,
52+
::testing::Values(0.5, 1.0));

tasks/seq/example/func_tests/main.cpp

Lines changed: 22 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -11,47 +11,41 @@
1111
#include "core/util/include/util.hpp"
1212
#include "seq/example/include/ops_seq.hpp"
1313

14-
TEST(nesterov_a_test_task_seq, test_matmul_50) {
15-
constexpr size_t kCount = 50;
16-
17-
// Create data
18-
std::vector<int> in(kCount * kCount, 0);
19-
20-
for (size_t i = 0; i < kCount; i++) {
21-
in[(i * kCount) + i] = 1;
14+
class NesterovATestTaskSeq : public ::testing::TestWithParam<double> {
15+
protected:
16+
void SetUp() override {
17+
std::ifstream test_file(ppc::util::GetAbsolutePath("seq/example/data/test.txt"));
18+
ASSERT_TRUE(test_file.is_open()) << "Failed to open input file";
19+
std::string line;
20+
std::getline(test_file, line);
21+
test_file.close();
22+
base_count = std::stoi(line);
2223
}
2324

24-
// Create Task
25-
nesterov_a_test_task_seq::TestTaskSequential test_task_sequential(in);
26-
ASSERT_EQ(test_task_sequential.Validation(), true);
27-
test_task_sequential.PreProcessing();
28-
test_task_sequential.Run();
29-
test_task_sequential.PostProcessing();
30-
EXPECT_EQ(in, test_task_sequential.Get());
31-
}
32-
33-
TEST(nesterov_a_test_task_seq, test_matmul_100_from_file) {
34-
std::string line;
35-
std::ifstream test_file(ppc::util::GetAbsolutePath("seq/example/data/test.txt"));
36-
if (test_file.is_open()) {
37-
getline(test_file, line);
25+
[[nodiscard]] size_t GetCount() const {
26+
return static_cast<size_t>(base_count * GetParam());
3827
}
39-
test_file.close();
4028

41-
const size_t count = std::stoi(line);
29+
int base_count = 0;
30+
};
4231

43-
// Create data
44-
std::vector<int> in(count * count, 0);
32+
TEST_P(NesterovATestTaskSeq, MatmulFromFile) {
33+
const size_t count = GetCount();
4534

35+
std::vector<int> in(count * count, 0);
4636
for (size_t i = 0; i < count; i++) {
4737
in[(i * count) + i] = 1;
4838
}
4939

50-
// Create Task
5140
nesterov_a_test_task_seq::TestTaskSequential test_task_sequential(in);
52-
ASSERT_EQ(test_task_sequential.Validation(), true);
41+
ASSERT_TRUE(test_task_sequential.Validation());
5342
test_task_sequential.PreProcessing();
5443
test_task_sequential.Run();
5544
test_task_sequential.PostProcessing();
5645
EXPECT_EQ(in, test_task_sequential.Get());
5746
}
47+
48+
INSTANTIATE_TEST_SUITE_P(
49+
FileMatrixTests,
50+
NesterovATestTaskSeq,
51+
::testing::Values(0.5, 1.0));

0 commit comments

Comments
 (0)