diff options
author | Nick Snyder <nickdsnyder@gmail.com> | 2019-06-17 06:24:27 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-17 06:24:27 +0300 |
commit | 3f2fe621ac72b7d6700da69f1177dcc6d7689108 (patch) | |
tree | 9f1fe73262975bcf43064cb5a9eca1619131c477 | |
parent | 48ecfc2ea7b054b6a1717f2cc40c63d4097d9576 (diff) |
add benchmarks (#190)
-rw-r--r-- | v2/i18n/localizer_test.go | 45 |
1 files changed, 34 insertions, 11 deletions
diff --git a/v2/i18n/localizer_test.go b/v2/i18n/localizer_test.go index d08e970..4194914 100644 --- a/v2/i18n/localizer_test.go +++ b/v2/i18n/localizer_test.go @@ -8,16 +8,18 @@ import ( "golang.org/x/text/language" ) -func TestLocalizer_Localize(t *testing.T) { - tests := []struct { - name string - defaultLanguage language.Tag - messages map[language.Tag][]*Message - acceptLangs []string - conf *LocalizeConfig - expectedErr error - expectedLocalized string - }{ +type localizerTest struct { + name string + defaultLanguage language.Tag + messages map[language.Tag][]*Message + acceptLangs []string + conf *LocalizeConfig + expectedErr error + expectedLocalized string +} + +func localizerTests() []localizerTest { + return []localizerTest{ { name: "message id mismatch", defaultLanguage: language.English, @@ -571,8 +573,10 @@ func TestLocalizer_Localize(t *testing.T) { expectedErr: &MessageNotFoundErr{messageID: "Hello"}, }, } +} - for _, test := range tests { +func TestLocalizer_Localize(t *testing.T) { + for _, test := range localizerTests() { t.Run(test.name, func(t *testing.T) { bundle := NewBundle(test.defaultLanguage) for tag, messages := range test.messages { @@ -602,3 +606,22 @@ func TestLocalizer_Localize(t *testing.T) { }) } } + +func BenchmarkLocalizer_Localize(b *testing.B) { + for _, test := range localizerTests() { + b.Run(test.name, func(b *testing.B) { + bundle := NewBundle(test.defaultLanguage) + for tag, messages := range test.messages { + if err := bundle.AddMessages(tag, messages...); err != nil { + b.Fatal(err) + } + } + + localizer := NewLocalizer(bundle, test.acceptLangs...) + b.ResetTimer() + for i := 0; i < b.N; i++ { + _, _ = localizer.Localize(test.conf) + } + }) + } +} |