Skip to content

Commit a0e32eb

Browse files
committed
test2
1 parent d95e24a commit a0e32eb

File tree

5 files changed

+212
-1
lines changed

5 files changed

+212
-1
lines changed
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
#include <gtest/gtest.h>
2+
3+
#include <vector>
4+
5+
#include "seq/example1/include/ops_seq.hpp"
6+
7+
TEST(Sequential1, Test_Sum_10) {
8+
const int count = 10;
9+
10+
// Create data
11+
std::vector<int> in(1, count);
12+
std::vector<int> out(1, 0);
13+
14+
// Create TaskData
15+
auto task_data_seq = std::make_shared<ppc::core::TaskData>();
16+
task_data_seq->inputs.emplace_back(reinterpret_cast<uint8_t *>(in.data()));
17+
task_data_seq->inputs_count.emplace_back(in.size());
18+
task_data_seq->outputs.emplace_back(reinterpret_cast<uint8_t *>(out.data()));
19+
task_data_seq->outputs_count.emplace_back(out.size());
20+
21+
// Create Task
22+
nesterov_a_test_task_seq1::TestTaskSequential test_task_sequential(task_data_seq);
23+
ASSERT_EQ(test_task_sequential.validation(), true);
24+
test_task_sequential.pre_processing();
25+
test_task_sequential.run();
26+
test_task_sequential.post_processing();
27+
ASSERT_EQ(count, out[0]);
28+
}
29+
30+
TEST(Sequential1, Test_Sum_20) {
31+
const int count = 20;
32+
33+
// Create data
34+
std::vector<int> in(1, count);
35+
std::vector<int> out(1, 0);
36+
37+
// Create TaskData
38+
auto task_data_seq = std::make_shared<ppc::core::TaskData>();
39+
task_data_seq->inputs.emplace_back(reinterpret_cast<uint8_t *>(in.data()));
40+
task_data_seq->inputs_count.emplace_back(in.size());
41+
task_data_seq->outputs.emplace_back(reinterpret_cast<uint8_t *>(out.data()));
42+
task_data_seq->outputs_count.emplace_back(out.size());
43+
44+
// Create Task
45+
nesterov_a_test_task_seq1::TestTaskSequential test_task_sequential(task_data_seq);
46+
ASSERT_EQ(test_task_sequential.validation(), true);
47+
test_task_sequential.pre_processing();
48+
test_task_sequential.run();
49+
test_task_sequential.post_processing();
50+
ASSERT_EQ(count, out[0]);
51+
}
52+
53+
TEST(Sequential1, Test_Sum_50) {
54+
const int count = 50;
55+
56+
// Create data
57+
std::vector<int> in(1, count);
58+
std::vector<int> out(1, 0);
59+
60+
// Create TaskData
61+
auto task_data_seq = std::make_shared<ppc::core::TaskData>();
62+
task_data_seq->inputs.emplace_back(reinterpret_cast<uint8_t *>(in.data()));
63+
task_data_seq->inputs_count.emplace_back(in.size());
64+
task_data_seq->outputs.emplace_back(reinterpret_cast<uint8_t *>(out.data()));
65+
task_data_seq->outputs_count.emplace_back(out.size());
66+
67+
// Create Task
68+
nesterov_a_test_task_seq1::TestTaskSequential test_task_sequential(task_data_seq);
69+
ASSERT_EQ(test_task_sequential.validation(), true);
70+
test_task_sequential.pre_processing();
71+
test_task_sequential.run();
72+
test_task_sequential.post_processing();
73+
ASSERT_EQ(count, out[0]);
74+
}
75+
76+
TEST(Sequential1, Test_Sum_70) {
77+
const int count = 70;
78+
79+
// Create data
80+
std::vector<int> in(1, count);
81+
std::vector<int> out(1, 0);
82+
83+
// Create TaskData
84+
auto task_data_seq = std::make_shared<ppc::core::TaskData>();
85+
task_data_seq->inputs.emplace_back(reinterpret_cast<uint8_t *>(in.data()));
86+
task_data_seq->inputs_count.emplace_back(in.size());
87+
task_data_seq->outputs.emplace_back(reinterpret_cast<uint8_t *>(out.data()));
88+
task_data_seq->outputs_count.emplace_back(out.size());
89+
90+
// Create Task
91+
nesterov_a_test_task_seq1::TestTaskSequential test_task_sequential(task_data_seq);
92+
ASSERT_EQ(test_task_sequential.validation(), true);
93+
test_task_sequential.pre_processing();
94+
test_task_sequential.run();
95+
test_task_sequential.post_processing();
96+
ASSERT_EQ(count, out[0]);
97+
}
98+
99+
TEST(Sequential1, Test_Sum_100) {
100+
const int count = 100;
101+
102+
// Create data
103+
std::vector<int> in(1, count);
104+
std::vector<int> out(1, 0);
105+
106+
// Create TaskData
107+
auto task_data_seq = std::make_shared<ppc::core::TaskData>();
108+
task_data_seq->inputs.emplace_back(reinterpret_cast<uint8_t *>(in.data()));
109+
task_data_seq->inputs_count.emplace_back(in.size());
110+
task_data_seq->outputs.emplace_back(reinterpret_cast<uint8_t *>(out.data()));
111+
task_data_seq->outputs_count.emplace_back(out.size());
112+
113+
// Create Task
114+
nesterov_a_test_task_seq1::TestTaskSequential test_task_sequential(task_data_seq);
115+
ASSERT_EQ(test_task_sequential.validation(), true);
116+
test_task_sequential.pre_processing();
117+
test_task_sequential.run();
118+
test_task_sequential.post_processing();
119+
ASSERT_EQ(count, out[0]);
120+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#pragma once
2+
3+
#include <string>
4+
#include <vector>
5+
6+
#include "core/task/include/task.hpp"
7+
8+
namespace nesterov_a_test_task_seq1 {
9+
10+
class TestTaskSequential : public ppc::core::Task {
11+
public:
12+
explicit TestTaskSequential(ppc::core::TaskDataPtr taskData_) : Task(std::move(taskData_)) {}
13+
bool pre_processing_impl() override;
14+
bool validation_impl() override;
15+
bool run_impl() override;
16+
bool post_processing_impl() override;
17+
18+
private:
19+
int input_{}, res{};
20+
};
21+
22+
} // namespace nesterov_a_test_task_seq
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#include <gtest/gtest.h>
2+
3+
#include <vector>
4+
5+
#include "core/perf/include/perf.hpp"
6+
#include "seq/example1/include/ops_seq.hpp"
7+
8+
TEST(sequential_example1_perf_test, test_pipeline_run) {
9+
const int count = 100;
10+
11+
// Create data
12+
std::vector<int> in(1, count);
13+
std::vector<int> out(1, 0);
14+
15+
// Create TaskData
16+
auto task_data_seq = std::make_shared<ppc::core::TaskData>();
17+
task_data_seq->inputs.emplace_back(reinterpret_cast<uint8_t *>(in.data()));
18+
task_data_seq->inputs_count.emplace_back(in.size());
19+
task_data_seq->outputs.emplace_back(reinterpret_cast<uint8_t *>(out.data()));
20+
task_data_seq->outputs_count.emplace_back(out.size());
21+
22+
// Create Task
23+
auto test_task_sequential = std::make_shared<nesterov_a_test_task_seq1::TestTaskSequential>(task_data_seq);
24+
25+
// Create Perf attributes
26+
auto perf_attr = std::make_shared<ppc::core::PerfAttr>();
27+
perf_attr->num_running = 10;
28+
const auto t0 = std::chrono::high_resolution_clock::now();
29+
perf_attr->current_timer = [&] {
30+
auto current_time_point = std::chrono::high_resolution_clock::now();
31+
auto duration = std::chrono::duration_cast<std::chrono::nanoseconds>(current_time_point - t0).count();
32+
return static_cast<double>(duration) * 1e-9;
33+
};
34+
35+
// Create and init perf results
36+
auto perf_results = std::make_shared<ppc::core::PerfResults>();
37+
38+
// Create Perf analyzer
39+
auto perf_analyzer = std::make_shared<ppc::core::Perf>(test_task_sequential);
40+
perf_analyzer->PipelineRun(perf_attr, perf_results);
41+
ppc::core::Perf::PrintPerfStatistic(perf_results);
42+
ASSERT_EQ(count, out[0]);
43+
}

tasks/seq/example1/src/ops_seq.cpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#include "seq/example1/include/ops_seq.hpp"
2+
3+
#include <thread>
4+
5+
bool nesterov_a_test_task_seq1::TestTaskSequential::pre_processing_impl() {
6+
// Init value for input and output
7+
input_ = reinterpret_cast<int*>(taskData->inputs[0])[0];
8+
res = 0;
9+
return true;
10+
}
11+
12+
bool nesterov_a_test_task_seq1::TestTaskSequential::validation_impl() {
13+
// Check count elements of output
14+
return taskData->inputs_count[0] == 1 && taskData->outputs_count[0] == 1;
15+
}
16+
17+
bool nesterov_a_test_task_seq1::TestTaskSequential::run_impl() {
18+
for (int i = 0; i < input_; i++) {
19+
res++;
20+
}
21+
return true;
22+
}
23+
24+
bool nesterov_a_test_task_seq1::TestTaskSequential::post_processing_impl() {
25+
reinterpret_cast<int*>(taskData->outputs[0])[0] = res;
26+
return true;
27+
}

tasks/tbb/example1/123.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)