MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / TEST_P

Function TEST_P

tensorflow/core/framework/model_test.cc:30–100  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28 : public ::testing::TestWithParam<std::tuple<int64, double>> {};
29
30TEST_P(AsyncInterleaveManyTest, Model) {
31 const int64 parallelism = std::get<0>(GetParam());
32 const double input_time = std::get<1>(GetParam());
33 std::shared_ptr<Node> async_interleave_many =
34 model::MakeAsyncInterleaveManyNode(
35 {0, "async_interleave_many", nullptr},
36 {model::MakeParameter(
37 "parallelism",
38 std::make_shared<SharedState>(parallelism, nullptr, nullptr), 1,
39 parallelism)});
40 std::shared_ptr<Node> meta_source =
41 model::MakeSourceNode({1, "meta_source", async_interleave_many});
42 async_interleave_many->add_input(meta_source);
43 auto cleanup_meta = gtl::MakeCleanup([async_interleave_many, meta_source]() {
44 async_interleave_many->remove_input(meta_source);
45 });
46 std::shared_ptr<Node> source1 =
47 model::MakeSourceNode({1, "source1", async_interleave_many});
48 async_interleave_many->add_input(source1);
49 auto cleanup1 = gtl::MakeCleanup([async_interleave_many, source1]() {
50 async_interleave_many->remove_input(source1);
51 });
52 std::shared_ptr<Node> source2 =
53 model::MakeSourceNode({2, "source2", async_interleave_many});
54 async_interleave_many->add_input(source2);
55 auto cleanup2 = gtl::MakeCleanup([async_interleave_many, source2]() {
56 async_interleave_many->remove_input(source2);
57 });
58 std::vector<double> input_times(1, input_time);
59 EXPECT_EQ(async_interleave_many->TotalBufferedBytes(), 0);
60 EXPECT_EQ(async_interleave_many->TotalMaximumBufferedBytes(), 0);
61 async_interleave_many->record_buffer_event(110, 10);
62 EXPECT_EQ(async_interleave_many->TotalBufferedBytes(), 110);
63 EXPECT_EQ(async_interleave_many->TotalMaximumBufferedBytes(),
64 110 * parallelism / 10);
65 async_interleave_many->add_processing_time(100);
66 EXPECT_EQ(async_interleave_many->processing_time(), 100);
67 EXPECT_EQ(
68 async_interleave_many->TotalProcessingTime(/*processing_times=*/nullptr),
69 0);
70 EXPECT_EQ(async_interleave_many->OutputTime(&input_times, nullptr), 0);
71 async_interleave_many->record_element();
72 EXPECT_EQ(async_interleave_many->num_elements(), 1);
73 EXPECT_EQ(
74 async_interleave_many->TotalProcessingTime(/*processing_times=*/nullptr),
75 100);
76 EXPECT_LE(async_interleave_many->OutputTime(&input_times, nullptr), 100);
77 EXPECT_GE(async_interleave_many->OutputTime(&input_times, nullptr), 0);
78 source1->add_processing_time(200);
79 source2->add_processing_time(300);
80 EXPECT_EQ(
81 async_interleave_many->TotalProcessingTime(/*processing_times=*/nullptr),
82 100);
83 EXPECT_LE(async_interleave_many->OutputTime(&input_times, nullptr), 100);
84 EXPECT_GE(async_interleave_many->OutputTime(&input_times, nullptr), 0);
85 source1->record_element();
86 source2->record_element();
87 EXPECT_EQ(

Callers

nothing calls this directly

Calls 15

GetParamFunction · 0.85
MakeParameterFunction · 0.85
MakeSourceNodeFunction · 0.85
MakeAsyncKnownRatioNodeFunction · 0.85
MakeKnownRatioNodeFunction · 0.85
TotalBufferedBytesMethod · 0.80
processing_timeMethod · 0.80
TotalProcessingTimeMethod · 0.80
OutputTimeMethod · 0.80

Tested by

no test coverage detected