@@ -30,49 +30,54 @@ class Buffer {
30
30
31
31
TEST (IntlNumberFormat, Basic)
32
32
{
33
- NumberFormat nf (" en-US" );
33
+ NumberFormatOptions options;
34
+ UniquePtr<NumberFormat> nf =
35
+ NumberFormat::TryCreate (" en-US" , options).unwrap ();
34
36
Buffer<uint8_t > buf8;
35
- ASSERT_TRUE (nf. format (1234.56 , buf8).isOk ());
37
+ ASSERT_TRUE (nf-> format (1234.56 , buf8).isOk ());
36
38
ASSERT_EQ (
37
39
std::string_view (static_cast <const char *>(buf8.data ()), buf8.mWritten ),
38
40
" 1,234.56" );
39
41
Buffer<char16_t > buf16;
40
- ASSERT_TRUE (nf. format (1234.56 , buf16).isOk ());
42
+ ASSERT_TRUE (nf-> format (1234.56 , buf16).isOk ());
41
43
ASSERT_EQ (std::u16string_view (static_cast <const char16_t *>(buf16.data ()),
42
44
buf16.mWritten ),
43
45
u" 1,234.56" );
44
- const char16_t * res16 = nf. format (1234.56 ).unwrap ().data ();
46
+ const char16_t * res16 = nf-> format (1234.56 ).unwrap ().data ();
45
47
ASSERT_TRUE (res16 != nullptr );
46
48
ASSERT_EQ (std::u16string_view (res16), u" 1,234.56" );
47
49
48
- NumberFormat nfAr (" ar" );
49
- ASSERT_TRUE (nfAr.format (1234.56 , buf8).isOk ());
50
+ UniquePtr<NumberFormat> nfAr =
51
+ NumberFormat::TryCreate (" ar" , options).unwrap ();
52
+ ASSERT_TRUE (nfAr->format (1234.56 , buf8).isOk ());
50
53
ASSERT_EQ (
51
54
std::string_view (static_cast <const char *>(buf8.data ()), buf8.mWritten ),
52
55
" ١٬٢٣٤٫٥٦" );
53
- ASSERT_TRUE (nfAr. format (1234.56 , buf16).isOk ());
56
+ ASSERT_TRUE (nfAr-> format (1234.56 , buf16).isOk ());
54
57
ASSERT_EQ (std::u16string_view (static_cast <const char16_t *>(buf16.data ()),
55
58
buf16.mWritten ),
56
59
u" ١٬٢٣٤٫٥٦" );
57
- res16 = nfAr. format (1234.56 ).unwrap ().data ();
60
+ res16 = nfAr-> format (1234.56 ).unwrap ().data ();
58
61
ASSERT_TRUE (res16 != nullptr );
59
62
ASSERT_EQ (std::u16string_view (res16), u" ١٬٢٣٤٫٥٦" );
60
63
}
61
64
62
65
TEST (IntlNumberFormat, Numbers)
63
66
{
64
- NumberFormat nf (" es-ES" );
67
+ NumberFormatOptions options;
68
+ UniquePtr<NumberFormat> nf =
69
+ NumberFormat::TryCreate (" es-ES" , options).unwrap ();
65
70
Buffer<uint8_t > buf8;
66
- ASSERT_TRUE (nf. format (123456.789 , buf8).isOk ());
71
+ ASSERT_TRUE (nf-> format (123456.789 , buf8).isOk ());
67
72
ASSERT_EQ (
68
73
std::string_view (static_cast <const char *>(buf8.data ()), buf8.mWritten ),
69
74
" 123.456,789" );
70
75
Buffer<char16_t > buf16;
71
- ASSERT_TRUE (nf. format (123456.789 , buf16).isOk ());
76
+ ASSERT_TRUE (nf-> format (123456.789 , buf16).isOk ());
72
77
ASSERT_EQ (std::u16string_view (static_cast <const char16_t *>(buf16.data ()),
73
78
buf16.mWritten ),
74
79
u" 123.456,789" );
75
- const char16_t * res = nf. format (123456.789 ).unwrap ().data ();
80
+ const char16_t * res = nf-> format (123456.789 ).unwrap ().data ();
76
81
ASSERT_TRUE (res != nullptr );
77
82
ASSERT_EQ (std::u16string_view (res), u" 123.456,789" );
78
83
}
@@ -81,13 +86,14 @@ TEST(IntlNumberFormat, SignificantDigits)
81
86
{
82
87
NumberFormatOptions options;
83
88
options.mSignificantDigits = Some (std::make_pair (3 , 5 ));
84
- NumberFormat nf (" es-ES" , options);
89
+ UniquePtr<NumberFormat> nf =
90
+ NumberFormat::TryCreate (" es-ES" , options).unwrap ();
85
91
Buffer<uint8_t > buf8;
86
- ASSERT_TRUE (nf. format (123456.789 , buf8).isOk ());
92
+ ASSERT_TRUE (nf-> format (123456.789 , buf8).isOk ());
87
93
ASSERT_EQ (
88
94
std::string_view (static_cast <const char *>(buf8.data ()), buf8.mWritten ),
89
95
" 123.460" );
90
- ASSERT_TRUE (nf. format (0.7 , buf8).isOk ());
96
+ ASSERT_TRUE (nf-> format (0.7 , buf8).isOk ());
91
97
ASSERT_EQ (
92
98
std::string_view (static_cast <const char *>(buf8.data ()), buf8.mWritten ),
93
99
" 0,700" );
@@ -98,18 +104,19 @@ TEST(IntlNumberFormat, Currency)
98
104
NumberFormatOptions options;
99
105
options.mCurrency =
100
106
Some (std::make_pair (" MXN" , NumberFormatOptions::CurrencyDisplay::Symbol));
101
- NumberFormat nf (" es-MX" , options);
107
+ UniquePtr<NumberFormat> nf =
108
+ NumberFormat::TryCreate (" es-MX" , options).unwrap ();
102
109
Buffer<uint8_t > buf8;
103
- ASSERT_TRUE (nf. format (123456.789 , buf8).isOk ());
110
+ ASSERT_TRUE (nf-> format (123456.789 , buf8).isOk ());
104
111
ASSERT_EQ (
105
112
std::string_view (static_cast <const char *>(buf8.data ()), buf8.mWritten ),
106
113
" $123,456.79" );
107
114
Buffer<char16_t > buf16;
108
- ASSERT_TRUE (nf. format (123456.789 , buf16).isOk ());
115
+ ASSERT_TRUE (nf-> format (123456.789 , buf16).isOk ());
109
116
ASSERT_EQ (std::u16string_view (static_cast <const char16_t *>(buf16.data ()),
110
117
buf16.mWritten ),
111
118
u" $123,456.79" );
112
- const char16_t * res = nf. format (123456.789 ).unwrap ().data ();
119
+ const char16_t * res = nf-> format (123456.789 ).unwrap ().data ();
113
120
ASSERT_TRUE (res != nullptr );
114
121
ASSERT_EQ (std::u16string_view (res), u" $123,456.79" );
115
122
}
@@ -119,18 +126,19 @@ TEST(IntlNumberFormat, Unit)
119
126
NumberFormatOptions options;
120
127
options.mUnit = Some (std::make_pair (" meter-per-second" ,
121
128
NumberFormatOptions::UnitDisplay::Long));
122
- NumberFormat nf (" es-MX" , options);
129
+ UniquePtr<NumberFormat> nf =
130
+ NumberFormat::TryCreate (" es-MX" , options).unwrap ();
123
131
Buffer<uint8_t > buf8;
124
- ASSERT_TRUE (nf. format (12.34 , buf8).isOk ());
132
+ ASSERT_TRUE (nf-> format (12.34 , buf8).isOk ());
125
133
ASSERT_EQ (
126
134
std::string_view (static_cast <const char *>(buf8.data ()), buf8.mWritten ),
127
135
" 12.34 metros por segundo" );
128
136
Buffer<char16_t > buf16;
129
- ASSERT_TRUE (nf. format (12.34 , buf16).isOk ());
137
+ ASSERT_TRUE (nf-> format (12.34 , buf16).isOk ());
130
138
ASSERT_EQ (std::u16string_view (static_cast <const char16_t *>(buf16.data ()),
131
139
buf16.mWritten ),
132
140
u" 12.34 metros por segundo" );
133
- const char16_t * res = nf. format (12.34 ).unwrap ().data ();
141
+ const char16_t * res = nf-> format (12.34 ).unwrap ().data ();
134
142
ASSERT_TRUE (res != nullptr );
135
143
ASSERT_EQ (std::u16string_view (res), u" 12.34 metros por segundo" );
136
144
@@ -139,24 +147,28 @@ TEST(IntlNumberFormat, Unit)
139
147
const char * unit = " meter-per-second-with-some-trailing-garbage" ;
140
148
options.mUnit = Some (std::make_pair (std::string_view (unit, 5 ),
141
149
NumberFormatOptions::UnitDisplay::Long));
142
- NumberFormat nf2 (" es-MX" , options);
143
- res = nf2.format (12.34 ).unwrap ().data ();
150
+ UniquePtr<NumberFormat> nf2 =
151
+ NumberFormat::TryCreate (" es-MX" , options).unwrap ();
152
+ res = nf2->format (12.34 ).unwrap ().data ();
144
153
ASSERT_TRUE (res != nullptr );
145
154
ASSERT_EQ (std::u16string_view (res), u" 12.34 metros" );
146
155
147
156
options.mUnit = Some (std::make_pair (std::string_view (unit, 16 ),
148
157
NumberFormatOptions::UnitDisplay::Long));
149
- NumberFormat nf3 (" es-MX" , options);
150
- res = nf3.format (12.34 ).unwrap ().data ();
158
+ UniquePtr<NumberFormat> nf3 =
159
+ NumberFormat::TryCreate (" es-MX" , options).unwrap ();
160
+ res = nf3->format (12.34 ).unwrap ().data ();
151
161
ASSERT_TRUE (res != nullptr );
152
162
ASSERT_EQ (std::u16string_view (res), u" 12.34 metros por segundo" );
153
163
}
154
164
155
165
TEST (IntlNumberFormat, FormatToParts)
156
166
{
157
- NumberFormat nf (" es-ES" );
167
+ NumberFormatOptions options;
168
+ UniquePtr<NumberFormat> nf =
169
+ NumberFormat::TryCreate (" es-ES" , options).unwrap ();
158
170
NumberPartVector parts;
159
- const char16_t * res = nf. formatToParts (123456.789 , parts).unwrap ().data ();
171
+ const char16_t * res = nf-> formatToParts (123456.789 , parts).unwrap ().data ();
160
172
ASSERT_TRUE (res != nullptr );
161
173
ASSERT_EQ (std::u16string_view (res), u" 123.456,789" );
162
174
ASSERT_EQ (parts.length (), 5U );
0 commit comments