| 188 | ::testing::Values(0, 1, 2, 4))); |
| 189 | |
| 190 | TEST(InterleaveManyTest, Model) { |
| 191 | std::shared_ptr<Node> interleave_many = |
| 192 | model::MakeInterleaveManyNode({0, "interleave_many", nullptr}); |
| 193 | std::shared_ptr<Node> meta_source = |
| 194 | model::MakeSourceNode({1, "meta_source", interleave_many}); |
| 195 | interleave_many->add_input(meta_source); |
| 196 | std::shared_ptr<Node> source1 = |
| 197 | model::MakeSourceNode({1, "source1", interleave_many}); |
| 198 | interleave_many->add_input(source1); |
| 199 | std::shared_ptr<Node> source2 = |
| 200 | model::MakeSourceNode({2, "source2", interleave_many}); |
| 201 | interleave_many->add_input(source2); |
| 202 | std::vector<double> input_times(1, 0); |
| 203 | interleave_many->add_processing_time(100); |
| 204 | EXPECT_EQ(interleave_many->processing_time(), 100); |
| 205 | EXPECT_EQ(interleave_many->TotalProcessingTime(/*processing_times=*/nullptr), |
| 206 | 0); |
| 207 | EXPECT_EQ(interleave_many->OutputTime(&input_times, nullptr), 0); |
| 208 | interleave_many->record_element(); |
| 209 | EXPECT_EQ(interleave_many->num_elements(), 1); |
| 210 | EXPECT_EQ(interleave_many->TotalProcessingTime(/*processing_times=*/nullptr), |
| 211 | 100); |
| 212 | EXPECT_EQ(interleave_many->OutputTime(&input_times, nullptr), 100); |
| 213 | source1->add_processing_time(200); |
| 214 | source2->add_processing_time(300); |
| 215 | EXPECT_EQ(interleave_many->TotalProcessingTime(/*processing_times=*/nullptr), |
| 216 | 100); |
| 217 | EXPECT_EQ(interleave_many->OutputTime(&input_times, nullptr), 100); |
| 218 | source1->record_element(); |
| 219 | source2->record_element(); |
| 220 | EXPECT_EQ(interleave_many->TotalProcessingTime(/*processing_times=*/nullptr), |
| 221 | 350); |
| 222 | EXPECT_EQ(interleave_many->OutputTime(&input_times, nullptr), 350); |
| 223 | interleave_many->record_element(); |
| 224 | EXPECT_EQ(interleave_many->TotalProcessingTime(/*processing_times=*/nullptr), |
| 225 | 300); |
| 226 | EXPECT_EQ(interleave_many->OutputTime(&input_times, nullptr), 300); |
| 227 | } |
| 228 | |
| 229 | class KnownRatioTest : public ::testing::TestWithParam<int64> {}; |
| 230 |
nothing calls this directly
no test coverage detected