Skip to content

Commit 186d603

Browse files
committed
[ntuple] extend late record extension test
1 parent efca20d commit 186d603

1 file changed

Lines changed: 36 additions & 4 deletions

File tree

tree/ntuple/test/ntuple_modelext.cxx

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -805,23 +805,53 @@ TEST(RNTuple, ModelExtensionRecordNested)
805805
auto ptrFloat = static_cast<float *>(entry->GetPtr<void>("r1").get());
806806
*ptrFloat = 1.0;
807807
writer->Fill(*entry);
808+
809+
modelUpdater->BeginUpdate();
810+
modelUpdater->AddField(std::make_unique<RField<double>>("ptHP"), "r1.r2.r3.r4");
811+
modelUpdater->CommitUpdate();
812+
813+
EXPECT_EQ(2 * sizeof(double), writer->GetModel().GetConstField("r1").GetValueSize());
814+
entry = writer->CreateEntry();
815+
struct FloatAndDouble {
816+
float pt;
817+
double ptHP;
818+
};
819+
820+
auto ptrFloatAndDouble = static_cast<FloatAndDouble *>(entry->GetPtr<void>("r1").get());
821+
ptrFloatAndDouble->pt = 2.0;
822+
ptrFloatAndDouble->ptHP = 3.0;
823+
writer->Fill(*entry);
808824
}
809825

810826
auto reader = RNTupleReader::Open("ntpl", fileGuard.GetPath());
811-
EXPECT_EQ(3u, reader->GetNEntries());
827+
EXPECT_EQ(4u, reader->GetNEntries());
812828

813829
std::ostringstream os;
814830
reader->Show(0, os);
815831
reader->Show(1, os);
816832
reader->Show(2, os);
833+
reader->Show(3, os);
817834
// clang-format off
818835
std::string expect{
819836
R"({
820837
"r1": {
821838
"r2": {
822839
"r3": {
823840
"r4": {
824-
"pt": 0
841+
"pt": 0,
842+
"ptHP": 0
843+
}
844+
}
845+
}
846+
}
847+
}
848+
{
849+
"r1": {
850+
"r2": {
851+
"r3": {
852+
"r4": {
853+
"pt": 0,
854+
"ptHP": 0
825855
}
826856
}
827857
}
@@ -832,7 +862,8 @@ R"({
832862
"r2": {
833863
"r3": {
834864
"r4": {
835-
"pt": 0
865+
"pt": 1,
866+
"ptHP": 0
836867
}
837868
}
838869
}
@@ -843,7 +874,8 @@ R"({
843874
"r2": {
844875
"r3": {
845876
"r4": {
846-
"pt": 1
877+
"pt": 2,
878+
"ptHP": 3
847879
}
848880
}
849881
}

0 commit comments

Comments
 (0)