@@ -79,6 +79,21 @@ void _checkReal2(const String& s, Real2 expected_v)
79
79
}
80
80
}
81
81
82
+ void _checkReal3 (const String& s, Real3 expected_v)
83
+ {
84
+ Real3 v = {};
85
+ bool is_bad = builtInGetValue (v, s);
86
+ std::cout << " S=" << s << " Real3=" << v << " is_bad?=" << is_bad << " \n " ;
87
+ ASSERT_FALSE (is_bad) << " Can not convert '" << s << " ' to Real3" ;
88
+ bool do_test = false ;
89
+ _checkValidDouble (v.x , expected_v.x );
90
+ _checkValidDouble (v.y , expected_v.y );
91
+ _checkValidDouble (v.z , expected_v.z );
92
+ if (do_test) {
93
+ ASSERT_EQ (v, expected_v);
94
+ }
95
+ }
96
+
82
97
void _testDoubleConvert (bool use_from_chars)
83
98
{
84
99
@@ -96,6 +111,8 @@ void _testDoubleConvert(bool use_from_chars)
96
111
_checkBad<double >(" " );
97
112
_checkDouble (" -0x1.81e03f705857bp-16" , -2.3e-05 );
98
113
_checkDouble (" 0x1.81e03f705857bp-16" , 2.3e-05 );
114
+ if (!use_from_chars)
115
+ _checkDouble (" +1.23e42" , 1.23e42 );
99
116
_checkBad<double >(" d2" );
100
117
_checkBad<double >(" 2.3w" );
101
118
@@ -146,6 +163,26 @@ void _testReal2Convert(bool use_same_that_real)
146
163
_checkBad<Real2>(" y2.3 1.2" );
147
164
}
148
165
166
+ void _testReal3Convert (bool use_same_that_real)
167
+ {
168
+ impl::arcaneSetUseSameValueConvertForAllReal (use_same_that_real);
169
+ Real v_nan = std::numeric_limits<double >::quiet_NaN ();
170
+ Real v_inf = std::numeric_limits<double >::infinity ();
171
+ _checkReal3 (" 2.3e1 -1.2 1.5" , Real3 (2.3e1 , -1.2 , 1.5 ));
172
+ if (use_same_that_real) {
173
+ _checkReal3 (" -1.3 nan 4.6" , Real3 (-1.3 , v_nan, 4.6 ));
174
+ _checkReal3 (" 1.3 4.2 inf" , Real3 (1.3 , 4.2 , v_inf));
175
+ _checkReal3 (" -2.1 -1.5 1.0e5" , Real3 (-2.1 , -1.5 , 1.0e5 ));
176
+ // _checkReal3("-2.1 -1.5 +1.0e5", Real3(-2.1, -1.5, 1.0e5));
177
+ }
178
+ _checkBad<Real3>(" 2.3 1.2w" );
179
+ _checkBad<Real3>(" 2.3x" );
180
+ _checkBad<Real3>(" 2.3 1.2" );
181
+ _checkBad<Real3>(" 2.3 -1.2ee2 4.5" );
182
+ _checkBad<Real3>(" z2.3 -1.2e2 -2323.3" );
183
+ _checkBad<Real3>(" 2.3 -1.2e2 -2323.3x" );
184
+ }
185
+
149
186
/* ---------------------------------------------------------------------------*/
150
187
/* ---------------------------------------------------------------------------*/
151
188
@@ -164,12 +201,16 @@ TEST(ValueConvert, Basic)
164
201
_testDoubleConvert (true );
165
202
_testReal2Convert (true );
166
203
_testReal2Convert (false );
204
+ _testReal3Convert (true );
205
+ _testReal3Convert (false );
167
206
#endif
168
207
169
208
impl::arcaneSetIsValueConvertUseFromChars (false );
170
209
_testDoubleConvert (false );
171
210
_testReal2Convert (true );
172
211
_testReal2Convert (false );
212
+ _testReal3Convert (true );
213
+ _testReal3Convert (false );
173
214
}
174
215
175
216
TEST (ValueConvert, TryParse)
0 commit comments