@@ -1015,12 +1015,13 @@ TEST(RNTupleMerger, MergeLateModelExtension)
10151015 {
10161016 auto model = RNTupleModel::Create ();
10171017 auto fieldFoo = model->MakeField <std::unordered_map<std::string, int >>(" foo" );
1018- auto fieldVfoo = model->MakeField <std::vector<int >>(" vfoo" );
1018+ auto fieldVfoo = model->MakeField <std::vector<int >[ 3 ] >(" vfoo" );
10191019 auto fieldBar = model->MakeField <int >(" bar" );
10201020 auto ntuple = RNTupleWriter::Recreate (std::move (model), " ntuple" , fileGuard1.GetPath (), RNTupleWriteOptions ());
10211021 for (size_t i = 0 ; i < 10 ; ++i) {
10221022 fieldFoo->insert (std::make_pair (std::to_string (i), i * 123 ));
1023- *fieldVfoo = {(int )i * 123 };
1023+ fieldVfoo[0 ] = {(int )i * 123 };
1024+ fieldVfoo[2 ] = {(int )i * 345 };
10241025 *fieldBar = i * 321 ;
10251026 ntuple->Fill ();
10261027 }
@@ -1031,14 +1032,15 @@ TEST(RNTupleMerger, MergeLateModelExtension)
10311032 auto model = RNTupleModel::Create ();
10321033 auto fieldBaz = model->MakeField <int >(" baz" );
10331034 auto fieldFoo = model->MakeField <std::unordered_map<std::string, int >>(" foo" );
1034- auto fieldVfoo = model->MakeField <std::vector<int >>(" vfoo" );
1035+ auto fieldVfoo = model->MakeField <std::vector<int >[ 3 ] >(" vfoo" );
10351036 auto wopts = RNTupleWriteOptions ();
10361037 wopts.SetCompression (0 );
10371038 auto ntuple = RNTupleWriter::Recreate (std::move (model), " ntuple" , fileGuard2.GetPath (), wopts);
10381039 for (size_t i = 0 ; i < 10 ; ++i) {
10391040 *fieldBaz = i * 567 ;
10401041 fieldFoo->insert (std::make_pair (std::to_string (i), i * 765 ));
1041- *fieldVfoo = {(int )i * 765 };
1042+ fieldVfoo[0 ] = {(int )i * 765 };
1043+ fieldVfoo[2 ] = {(int )i * 987 };
10421044 ntuple->Fill ();
10431045 }
10441046 }
@@ -1072,21 +1074,25 @@ TEST(RNTupleMerger, MergeLateModelExtension)
10721074 auto ntuple = RNTupleReader::Open (" ntuple" , fileGuard3.GetPath ());
10731075 EXPECT_EQ (ntuple->GetNEntries (), 20 );
10741076 auto foo = ntuple->GetModel ().GetDefaultEntry ().GetPtr <std::unordered_map<std::string, int >>(" foo" );
1075- auto vfoo = ntuple->GetModel ().GetDefaultEntry ().GetPtr <std::vector<int >>(" vfoo" );
1077+ auto vfoo = ntuple->GetModel ().GetDefaultEntry ().GetPtr <std::vector<int >[ 3 ] >(" vfoo" );
10761078 auto bar = ntuple->GetModel ().GetDefaultEntry ().GetPtr <int >(" bar" );
10771079 auto baz = ntuple->GetModel ().GetDefaultEntry ().GetPtr <int >(" baz" );
10781080
10791081 for (int i = 0 ; i < 10 ; ++i) {
10801082 ntuple->LoadEntry (i);
10811083 ASSERT_EQ ((*foo)[std::to_string (i)], i * 123 );
1082- ASSERT_EQ ((*vfoo)[0 ], i * 123 );
1084+ ASSERT_EQ (vfoo[0 ][0 ], i * 123 );
1085+ ASSERT_EQ (vfoo[2 ][0 ], i * 345 );
1086+ ASSERT_TRUE (vfoo[1 ].empty ());
10831087 ASSERT_EQ (*bar, i * 321 );
10841088 ASSERT_EQ (*baz, 0 );
10851089 }
10861090 for (int i = 10 ; i < 20 ; ++i) {
10871091 ntuple->LoadEntry (i);
10881092 ASSERT_EQ ((*foo)[std::to_string (i - 10 )], (i - 10 ) * 765 );
1089- ASSERT_EQ ((*vfoo)[0 ], (i - 10 ) * 765 );
1093+ ASSERT_EQ (vfoo[0 ][0 ], (i - 10 ) * 765 );
1094+ ASSERT_EQ (vfoo[2 ][0 ], (i - 10 ) * 987 );
1095+ ASSERT_TRUE (vfoo[1 ].empty ());
10901096 ASSERT_EQ (*bar, 0 );
10911097 ASSERT_EQ (*baz, (i - 10 ) * 567 );
10921098 }
0 commit comments