| package good |
| |
| import ( |
| "testing" |
| ) |
| |
| func TestRuneLen(t *testing.T) { |
| cases := []struct { |
| s string |
| byteLength int |
| runeLength int |
| }{ |
| {"résumé", 8, 6}, |
| {"résumé – new", 16, 12}, |
| } |
| for _, c := range cases { |
| if len(c.s) != c.byteLength { |
| t.Errorf("len(%q) != %d", c.s, c.byteLength) |
| } |
| if RuneLen(c.s) != c.runeLength { |
| t.Errorf("RuneLen(%q) != %d", c.s, c.runeLength) |
| } |
| } |
| } |
| |
| func BenchmarkRuneLenResume(b *testing.B) { |
| for i := 0; i < b.N; i++ { |
| RuneLen("résumé") |
| } |
| } |
| |
| func BenchmarkRuneLenResumeNew(b *testing.B) { |
| for i := 0; i < b.N; i++ { |
| RuneLen("résumé – new") |
| } |
| } |