Skip to content

Commit 8629d5b

Browse files
committed
[ntuple] Add test for TDirectory-based reading
1 parent 63674ce commit 8629d5b

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

tree/ntuple/v7/test/ntuple_processor.cxx

+31
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,37 @@ TEST(RNTupleProcessor, TMemFile)
5252
EXPECT_EQ(nEntries, proc->GetNEntriesProcessed());
5353
}
5454

55+
TEST(RNTupleProcessor, TDirectory)
56+
{
57+
FileRaii fileGuard("test_ntuple_processor_tdirectoryfile.root");
58+
{
59+
auto file = std::unique_ptr<TFile>(TFile::Open(fileGuard.GetPath().c_str(), "RECREATE"));
60+
auto dir = std::unique_ptr<TDirectory>(file->mkdir("a/b"));
61+
auto model = RNTupleModel::Create();
62+
auto fldX = model->MakeField<float>("x");
63+
auto ntuple = RNTupleWriter::Append(std::move(model), "ntuple", *dir);
64+
65+
for (unsigned i = 0; i < 5; ++i) {
66+
*fldX = static_cast<float>(i);
67+
ntuple->Fill();
68+
}
69+
}
70+
71+
auto file = std::make_unique<TFile>(fileGuard.GetPath().c_str());
72+
auto proc = RNTupleProcessor::Create({"a/b/ntuple", file.get()});
73+
auto x = proc->GetEntry().GetPtr<float>("x");
74+
75+
int nEntries = 0;
76+
for ([[maybe_unused]] const auto &entry : *proc) {
77+
EXPECT_EQ(++nEntries, proc->GetNEntriesProcessed());
78+
EXPECT_EQ(nEntries - 1, proc->GetCurrentEntryNumber());
79+
80+
EXPECT_FLOAT_EQ(static_cast<float>(nEntries - 1), *x);
81+
}
82+
EXPECT_EQ(nEntries, 5);
83+
EXPECT_EQ(nEntries, proc->GetNEntriesProcessed());
84+
}
85+
5586
class RNTupleProcessorTest : public testing::Test {
5687
protected:
5788
const std::array<std::string, 3> fFileNames{"test_ntuple_processor1.root", "test_ntuple_processor2.root",

0 commit comments

Comments
 (0)