Skip to content

Commit 3bd92d7

Browse files
committed
[ntuple] Add test for TDirectory-based reading
1 parent b7054b7 commit 3bd92d7

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
@@ -53,6 +53,37 @@ TEST(RNTupleProcessor, TMemFile)
5353
EXPECT_EQ(nEntries, proc->GetNEntriesProcessed());
5454
}
5555

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

0 commit comments

Comments
 (0)