Skip to content

Commit ff4c343

Browse files
committed
[ntuple] Extend ChainedChain test
To make sure that fields of "second chains" are also added correctly to the processor.
1 parent 600ffef commit ff4c343

1 file changed

Lines changed: 33 additions & 13 deletions

File tree

tree/ntuple/test/ntuple_processor.cxx

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -291,33 +291,53 @@ TEST_F(RNTupleProcessorTest, ChainedChain)
291291
{
292292
std::vector<std::unique_ptr<RNTupleProcessor>> innerProcs;
293293
innerProcs.push_back(
294-
RNTupleProcessor::CreateChain({{fNTupleNames[0], fFileNames[0]}, {fNTupleNames[0], fFileNames[0]}}));
295-
innerProcs.push_back(RNTupleProcessor::Create({fNTupleNames[0], fFileNames[0]}));
294+
RNTupleProcessor::CreateChain({{fNTupleNames[1], fFileNames[1]}, {fNTupleNames[2], fFileNames[2]}}));
295+
innerProcs.push_back(
296+
RNTupleProcessor::CreateChain({{fNTupleNames[1], fFileNames[1]}, {fNTupleNames[2], fFileNames[2]}}));
296297

297298
auto proc = RNTupleProcessor::CreateChain(std::move(innerProcs));
298299

299300
auto i = proc->RequestField<int>("i");
300-
auto x = proc->RequestField<float>("x");
301+
auto z = proc->RequestField<float>("z");
302+
auto strct_a = proc->RequestField<float>("struct.a");
301303

302304
for (auto idx : *proc) {
303305
EXPECT_EQ(idx + 1, proc->GetNEntriesProcessed());
304306
EXPECT_EQ(idx, proc->GetCurrentEntryNumber());
305-
EXPECT_EQ(*i, proc->GetCurrentEntryNumber() % 5);
306-
EXPECT_EQ(static_cast<float>(*i), *x);
307+
if ((idx >= 5 && idx < 10) || idx >= 15) {
308+
EXPECT_EQ(*i, 4 - idx % 5);
309+
EXPECT_EQ(*z, (4 - idx % 5) * 3.f);
310+
} else {
311+
EXPECT_EQ(*i, idx % 5);
312+
EXPECT_EQ(*z, (idx % 5) * 2.f);
313+
}
314+
315+
EXPECT_EQ(*strct_a, *z);
307316
}
308-
EXPECT_EQ(15, proc->GetNEntriesProcessed());
317+
EXPECT_EQ(20, proc->GetNEntriesProcessed());
309318

310-
auto xPtr = std::make_shared<float>();
311-
x.BindRawPtr(xPtr.get());
319+
auto zPtr = std::make_shared<float>();
320+
z.BindRawPtr(zPtr.get());
321+
auto aPtr = std::make_shared<float>();
322+
strct_a.BindRawPtr(aPtr.get());
312323

313324
for (auto idx : *proc) {
314-
EXPECT_EQ(idx + 1 + 15, proc->GetNEntriesProcessed());
325+
EXPECT_EQ(idx + 1 + 20, proc->GetNEntriesProcessed());
315326
EXPECT_EQ(idx, proc->GetCurrentEntryNumber());
316-
EXPECT_EQ(*i, proc->GetCurrentEntryNumber() % 5);
317-
EXPECT_EQ(static_cast<float>(*i), *x);
318-
EXPECT_EQ(x.GetPtr().get(), xPtr.get());
327+
328+
if ((idx >= 5 && idx < 10) || idx >= 15) {
329+
EXPECT_EQ(*i, 4 - idx % 5);
330+
EXPECT_EQ(*z, (4 - idx % 5) * 3.f);
331+
} else {
332+
EXPECT_EQ(*i, idx % 5);
333+
EXPECT_EQ(*z, (idx % 5) * 2.f);
334+
}
335+
336+
EXPECT_EQ(*strct_a, *z);
337+
EXPECT_EQ(z.GetPtr().get(), zPtr.get());
338+
EXPECT_EQ(strct_a.GetPtr().get(), aPtr.get());
319339
}
320-
EXPECT_EQ(30, proc->GetNEntriesProcessed());
340+
EXPECT_EQ(40, proc->GetNEntriesProcessed());
321341
}
322342

323343
TEST_F(RNTupleProcessorTest, ChainedJoin)

0 commit comments

Comments
 (0)