@@ -45,11 +45,25 @@ TEST(RNTuple, TypeNameNormalizationByName)
45
45
EXPECT_EQ (" std::vector<std::array<Double32_t,2>>" ,
46
46
RFieldBase::Create (" f" , " vector<Double32_t[2]>" ).Unwrap ()->GetTypeAlias ());
47
47
48
+ EXPECT_EQ (" std::array<std::vector<std::array<double,3>>,10>" ,
49
+ RFieldBase::Create (" f" , " std::vector<Double32_t[3] > [10 ] " ).Unwrap ()->GetTypeName ());
50
+ EXPECT_EQ (" std::array<std::vector<std::array<Double32_t,3>>,10>" ,
51
+ RFieldBase::Create (" f" , " std::vector<Double32_t[3] > [10 ] " ).Unwrap ()->GetTypeAlias ());
52
+
53
+ // We keep CV qualifiers only in template arguments of user-defined types
54
+ EXPECT_EQ (" std::unique_ptr<std::array<std::string,2>>" ,
55
+ RFieldBase::Create (" f" , " std::unique_ptr<const std::string[2]>" ).Unwrap ()->GetTypeName ());
48
56
const std::string innerCV = " class InnerCV<const int, const volatile int, volatile const int, volatile int>" ;
49
57
const std::string normInnerCV =
50
58
" InnerCV<const std::int32_t,const volatile std::int32_t,const volatile std::int32_t,volatile std::int32_t>" ;
51
59
EXPECT_EQ (normInnerCV, RFieldBase::Create (" f" , innerCV).Unwrap ()->GetTypeName ());
52
60
EXPECT_EQ (" " , RFieldBase::Create (" f" , innerCV).Unwrap ()->GetTypeAlias ());
61
+ EXPECT_EQ (
62
+ " InnerCV<const std::vector<std::array<std::string,2>>,std::int32_t,std::int32_t,std::int32_t>" ,
63
+ RFieldBase::Create (" f" , " InnerCV<const std::vector<std::string[2]>, int, int, int>" ).Unwrap ()->GetTypeName ());
64
+ EXPECT_EQ (
65
+ " " ,
66
+ RFieldBase::Create (" f" , " InnerCV<const std::vector<std::string[2]>, int, int, int>" ).Unwrap ()->GetTypeAlias ());
53
67
54
68
const std::string example = " const pair<size_t, array<class CustomStruct, 6>>" ;
55
69
std::string normExample;
@@ -68,59 +82,63 @@ TEST(RNTuple, TypeNameNormalizationByName)
68
82
69
83
TEST (RNTuple, TypeNameNormalizationById)
70
84
{
71
- EXPECT_EQ (" std::int32_t" , ROOT::Internal::GetRenormalizedTypeName (typeid (signed )));
72
- EXPECT_EQ (" std::int32_t" , ROOT::Internal::GetRenormalizedTypeName (typeid (std::int32_t )));
73
- EXPECT_EQ (" double" , ROOT::Internal::GetRenormalizedTypeName (typeid (Double32_t)));
74
- EXPECT_EQ (" float" , ROOT::Internal::GetRenormalizedTypeName (typeid (const float )));
75
-
76
- EXPECT_EQ (" std::string" , ROOT::Internal::GetRenormalizedTypeName (typeid (std::string)));
77
- EXPECT_EQ (" std::map<std::string,std::string>" ,
78
- ROOT::Internal::GetRenormalizedTypeName (typeid (std::map<std::string, std::string>)));
79
- EXPECT_EQ (" char" , ROOT::Internal::GetRenormalizedTypeName (typeid (std::string::value_type)));
80
-
81
- EXPECT_EQ (" std::vector<bool>" , ROOT::Internal::GetRenormalizedTypeName (typeid (std::vector<Bool_t>)));
82
- EXPECT_EQ (" std::vector<char>" , ROOT::Internal::GetRenormalizedTypeName (typeid (std::vector<char >)));
83
- EXPECT_EQ (" ROOT::VecOps::RVec<float>" , ROOT::Internal::GetRenormalizedTypeName (typeid (ROOT::RVec<float >)));
84
- EXPECT_EQ (" std::array<float,2>" , ROOT::Internal::GetRenormalizedTypeName (typeid (std::array<float , 0x02 >)));
85
- EXPECT_EQ (" std::variant<float,double>" ,
86
- ROOT::Internal::GetRenormalizedTypeName (typeid (std::variant<float , double >)));
87
- EXPECT_EQ (" std::pair<float,double>" , ROOT::Internal::GetRenormalizedTypeName (typeid (std::pair<float , double >)));
88
- EXPECT_EQ (" std::tuple<float,float,float>" ,
89
- ROOT::Internal::GetRenormalizedTypeName (typeid (std::tuple<float , float , float >)));
90
- EXPECT_EQ (" std::bitset<1000>" , ROOT::Internal::GetRenormalizedTypeName (typeid (std::bitset<1000lu>)));
91
- EXPECT_EQ (" std::atomic<std::int32_t>" , ROOT::Internal::GetRenormalizedTypeName (typeid (std::atomic<int >)));
92
- EXPECT_EQ (" std::unique_ptr<std::int32_t>" , ROOT::Internal::GetRenormalizedTypeName (typeid (std::unique_ptr<int >)));
93
- EXPECT_EQ (" std::optional<std::int32_t>" , ROOT::Internal::GetRenormalizedTypeName (typeid (std::optional<int >)));
94
-
95
- EXPECT_EQ (" std::array<std::array<std::uint32_t,3>,2>" ,
96
- ROOT::Internal::GetRenormalizedTypeName (typeid (SG::sgkey_t [2 ][3 ])));
97
- EXPECT_EQ (" std::vector<std::array<double,2>>" ,
98
- ROOT::Internal::GetRenormalizedTypeName (typeid (std::vector<Double32_t[2 ]>)));
99
-
100
- EXPECT_EQ (" std::set<std::int32_t>" , ROOT::Internal::GetRenormalizedTypeName (typeid (std::set<int >)));
101
- EXPECT_EQ (" std::unordered_set<std::int32_t>" ,
102
- ROOT::Internal::GetRenormalizedTypeName (typeid (std::unordered_set<int >)));
103
- EXPECT_EQ (" std::multiset<std::int32_t>" , ROOT::Internal::GetRenormalizedTypeName (typeid (std::multiset<int >)));
104
- EXPECT_EQ (" std::unordered_multiset<std::int32_t>" ,
105
- ROOT::Internal::GetRenormalizedTypeName (typeid (std::unordered_multiset<int >)));
106
-
107
- EXPECT_EQ (" std::map<std::int32_t,std::int32_t>" ,
108
- ROOT::Internal::GetRenormalizedTypeName (typeid (std::map<int , int >)));
85
+ using ROOT::Internal::GetRenormalizedTypeName;
86
+
87
+ EXPECT_EQ (" std::int32_t" , GetRenormalizedTypeName (typeid (signed )));
88
+ EXPECT_EQ (" std::int32_t" , GetRenormalizedTypeName (typeid (std::int32_t )));
89
+ EXPECT_EQ (" double" , GetRenormalizedTypeName (typeid (Double32_t)));
90
+ EXPECT_EQ (" float" , GetRenormalizedTypeName (typeid (const float )));
91
+
92
+ EXPECT_EQ (" std::string" , GetRenormalizedTypeName (typeid (std::string)));
93
+ EXPECT_EQ (" std::map<std::string,std::string>" , GetRenormalizedTypeName (typeid (std::map<std::string, std::string>)));
94
+ EXPECT_EQ (" std::vector<std::array<std::string,2>>" , GetRenormalizedTypeName (typeid (std::vector<std::string[2 ]>)));
95
+ EXPECT_EQ (" char" , GetRenormalizedTypeName (typeid (std::string::value_type)));
96
+
97
+ EXPECT_EQ (" std::vector<bool>" , GetRenormalizedTypeName (typeid (std::vector<Bool_t>)));
98
+ EXPECT_EQ (" std::vector<char>" , GetRenormalizedTypeName (typeid (std::vector<char >)));
99
+ EXPECT_EQ (" ROOT::VecOps::RVec<float>" , GetRenormalizedTypeName (typeid (ROOT::RVec<float >)));
100
+ EXPECT_EQ (" std::array<float,2>" , GetRenormalizedTypeName (typeid (std::array<float , 0x02 >)));
101
+ EXPECT_EQ (" std::variant<float,double>" , GetRenormalizedTypeName (typeid (std::variant<float , double >)));
102
+ EXPECT_EQ (" std::pair<float,double>" , GetRenormalizedTypeName (typeid (std::pair<float , double >)));
103
+ EXPECT_EQ (" std::tuple<float,float,float>" , GetRenormalizedTypeName (typeid (std::tuple<float , float , float >)));
104
+ EXPECT_EQ (" std::bitset<1000>" , GetRenormalizedTypeName (typeid (std::bitset<1000lu>)));
105
+ EXPECT_EQ (" std::atomic<std::int32_t>" , GetRenormalizedTypeName (typeid (std::atomic<int >)));
106
+ EXPECT_EQ (" std::unique_ptr<std::int32_t>" , GetRenormalizedTypeName (typeid (std::unique_ptr<int >)));
107
+ EXPECT_EQ (" std::optional<std::int32_t>" , GetRenormalizedTypeName (typeid (std::optional<int >)));
108
+
109
+ EXPECT_EQ (" std::array<std::array<std::uint32_t,3>,2>" , GetRenormalizedTypeName (typeid (SG::sgkey_t [2 ][3 ])));
110
+ EXPECT_EQ (" std::vector<std::array<double,2>>" , GetRenormalizedTypeName (typeid (std::vector<Double32_t[2 ]>)));
111
+ EXPECT_EQ (" std::array<std::vector<std::array<double,3>>,10>" ,
112
+ GetRenormalizedTypeName (typeid (std::vector<Double32_t[3 ]>[10 ])));
113
+
114
+ EXPECT_EQ (" std::set<std::int32_t>" , GetRenormalizedTypeName (typeid (std::set<int >)));
115
+ EXPECT_EQ (" std::unordered_set<std::int32_t>" , GetRenormalizedTypeName (typeid (std::unordered_set<int >)));
116
+ EXPECT_EQ (" std::multiset<std::int32_t>" , GetRenormalizedTypeName (typeid (std::multiset<int >)));
117
+ EXPECT_EQ (" std::unordered_multiset<std::int32_t>" , GetRenormalizedTypeName (typeid (std::unordered_multiset<int >)));
118
+
119
+ EXPECT_EQ (" std::map<std::int32_t,std::int32_t>" , GetRenormalizedTypeName (typeid (std::map<int , int >)));
109
120
EXPECT_EQ (" std::unordered_map<std::int32_t,std::int32_t>" ,
110
- ROOT::Internal::GetRenormalizedTypeName (typeid (std::unordered_map<int , int >)));
111
- EXPECT_EQ (" std::multimap<std::int32_t,std::int32_t>" ,
112
- ROOT::Internal::GetRenormalizedTypeName (typeid (std::multimap<int , int >)));
121
+ GetRenormalizedTypeName (typeid (std::unordered_map<int , int >)));
122
+ EXPECT_EQ (" std::multimap<std::int32_t,std::int32_t>" , GetRenormalizedTypeName (typeid (std::multimap<int , int >)));
113
123
EXPECT_EQ (" std::unordered_multimap<std::int32_t,std::int32_t>" ,
114
- ROOT::Internal:: GetRenormalizedTypeName (typeid (std::unordered_multimap<int , int >)));
124
+ GetRenormalizedTypeName (typeid (std::unordered_multimap<int , int >)));
115
125
116
126
EXPECT_EQ (" CustomStruct" , ROOT::Internal::GetRenormalizedTypeName (typeid (CustomStruct)));
117
127
118
- EXPECT_EQ (" std::map<std::int32_t,std::int32_t>" ,
119
- ROOT::Internal::GetRenormalizedTypeName (typeid (std::map<int , int >)));
128
+ // We keep CV qualifiers only in template arguments of user-defined types
129
+ EXPECT_EQ (" std::unique_ptr<std::array<std::string,2>>" ,
130
+ GetRenormalizedTypeName (typeid (std::unique_ptr<const std::string[2 ]>)));
131
+ const std::string normInnerCV =
132
+ " InnerCV<const std::int32_t,const volatile std::int32_t,const volatile std::int32_t,volatile std::int32_t>" ;
133
+ EXPECT_EQ (normInnerCV,
134
+ GetRenormalizedTypeName (typeid (InnerCV<const int , const volatile int , volatile const int , volatile int >)));
135
+ EXPECT_EQ (" InnerCV<const std::vector<std::array<std::string,2>>,std::int32_t,std::int32_t,std::int32_t>" ,
136
+ GetRenormalizedTypeName (typeid (InnerCV<const std::vector<std::string[2 ]>, int , int , int >)));
120
137
121
- EXPECT_EQ (
122
- " std::pair<std::uint32_t,std::array<CustomStruct,2>>" ,
123
- ROOT::Internal::GetRenormalizedTypeName (typeid (const std::pair<unsigned int , std::array<::CustomStruct, 2 >>)));
138
+ EXPECT_EQ (" std::map<std::int32_t,std::int32_t>" , GetRenormalizedTypeName (typeid (std::map<int , int >)));
139
+
140
+ EXPECT_EQ (" std::pair<std::uint32_t,std::array<CustomStruct,2>>" ,
141
+ GetRenormalizedTypeName (typeid (const std::pair<unsigned int , std::array<::CustomStruct, 2 >>)));
124
142
}
125
143
126
144
TEST (RNTuple, TClassDefaultTemplateParameter)
0 commit comments