Skip to content

Commit 1965191

Browse files
committed
[ntuple] Add test for bare models
1 parent d28d20b commit 1965191

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

tree/ntuple/v7/test/ntuple_processor_join.cxx

+47
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,53 @@ TEST_F(RNTupleJoinProcessorTest, WithModel)
285285
EXPECT_EQ(5, proc->GetNEntriesProcessed());
286286
}
287287

288+
TEST_F(RNTupleJoinProcessorTest, WithBareModel)
289+
{
290+
auto primaryModel = RNTupleModel::CreateBare();
291+
primaryModel->MakeField<int>("i");
292+
primaryModel->MakeField<float>("x");
293+
294+
std::vector<std::unique_ptr<RNTupleModel>> auxModels;
295+
296+
auxModels.push_back(RNTupleModel::CreateBare());
297+
auxModels.back()->MakeField<std::vector<float>>("y");
298+
299+
auxModels.push_back(RNTupleModel::CreateBare());
300+
auxModels.back()->MakeField<float>("z");
301+
302+
auto proc = RNTupleProcessor::CreateJoin({fNTupleNames[0], fFileNames[0]},
303+
{{fNTupleNames[1], fFileNames[1]}, {fNTupleNames[2], fFileNames[2]}}, {"i"},
304+
std::move(primaryModel), std::move(auxModels));
305+
306+
auto i = proc->GetEntry().GetPtr<int>("i");
307+
auto x = proc->GetEntry().GetPtr<float>("x");
308+
auto y = proc->GetEntry().GetPtr<std::vector<float>>("ntuple2.y");
309+
auto z = proc->GetEntry().GetPtr<float>("ntuple3.z");
310+
311+
int nEntries = 0;
312+
std::vector<float> yExpected;
313+
for (auto &entry : *proc) {
314+
EXPECT_EQ(proc->GetCurrentEntryNumber(), nEntries++);
315+
316+
EXPECT_EQ(proc->GetCurrentEntryNumber() * 2, *i);
317+
318+
EXPECT_FLOAT_EQ(*i * 0.5f, *x);
319+
320+
yExpected = {static_cast<float>(*i * 0.2), 3.14, static_cast<float>(*i * 1.3)};
321+
EXPECT_EQ(yExpected, *y);
322+
EXPECT_FLOAT_EQ(static_cast<float>(*i * 2.f), *z);
323+
324+
try {
325+
entry.GetPtr<float>("ntuple2.z");
326+
FAIL() << "should not be able to access values from fields not present in the provided models";
327+
} catch (const ROOT::RException &err) {
328+
EXPECT_THAT(err.what(), testing::HasSubstr("invalid field name: ntuple2.z"));
329+
}
330+
}
331+
332+
EXPECT_EQ(5, proc->GetNEntriesProcessed());
333+
}
334+
288335
TEST_F(RNTupleJoinProcessorTest, PartialModels)
289336
{
290337
{

0 commit comments

Comments
 (0)