Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/go-i18n.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Snyder <nickdsnyder@gmail.com>2019-06-17 06:24:27 +0300
committerGitHub <noreply@github.com>2019-06-17 06:24:27 +0300
commit3f2fe621ac72b7d6700da69f1177dcc6d7689108 (patch)
tree9f1fe73262975bcf43064cb5a9eca1619131c477
parent48ecfc2ea7b054b6a1717f2cc40c63d4097d9576 (diff)
add benchmarks (#190)
-rw-r--r--v2/i18n/localizer_test.go45
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)
+ }
+ })
+ }
+}