@@ -186,3 +186,37 @@ func Test_OptionalBool(t *testing.T) {
186
186
assert .Equal (t , OptionalBoolTrue , OptionalBoolParse ("t" ))
187
187
assert .Equal (t , OptionalBoolTrue , OptionalBoolParse ("True" ))
188
188
}
189
+
190
+ // Test case for any function which accepts and returns a single string.
191
+ type StringTest struct {
192
+ in , out string
193
+ }
194
+
195
+ var upperTests = []StringTest {
196
+ {"" , "" },
197
+ {"ONLYUPPER" , "ONLYUPPER" },
198
+ {"abc" , "ABC" },
199
+ {"AbC123" , "ABC123" },
200
+ {"azAZ09_" , "AZAZ09_" },
201
+ {"longStrinGwitHmixofsmaLLandcAps" , "LONGSTRINGWITHMIXOFSMALLANDCAPS" },
202
+ {"long\u0250 string\u0250 with\u0250 nonascii\u2C6F chars" , "LONG\u0250 STRING\u0250 WITH\u0250 NONASCII\u2C6F CHARS" },
203
+ {"\u0250 \u0250 \u0250 \u0250 \u0250 " , "\u0250 \u0250 \u0250 \u0250 \u0250 " },
204
+ {"a\u0080 \U0010FFFF " , "A\u0080 \U0010FFFF " },
205
+ {"lél" , "LéL" },
206
+ }
207
+
208
+ func TestToUpperASCII (t * testing.T ) {
209
+ for _ , tc := range upperTests {
210
+ assert .Equal (t , ToUpperASCII (tc .in ), tc .out )
211
+ }
212
+ }
213
+
214
+ func BenchmarkToUpper (b * testing.B ) {
215
+ for _ , tc := range upperTests {
216
+ b .Run (tc .in , func (b * testing.B ) {
217
+ for i := 0 ; i < b .N ; i ++ {
218
+ ToUpperASCII (tc .in )
219
+ }
220
+ })
221
+ }
222
+ }
0 commit comments