benchmarks_test.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package ut
  2. import "testing"
  3. func BenchmarkBasicTranslation(b *testing.B) {
  4. ut, _ := New("en", "en")
  5. loc := ut.FindTranslator("en")
  6. translations := []struct {
  7. key interface{}
  8. trans string
  9. expected error
  10. }{
  11. {
  12. key: "welcome",
  13. trans: "Welcome to the site",
  14. expected: nil,
  15. },
  16. {
  17. key: "welcome-user",
  18. trans: "Welcome to the site {0}",
  19. expected: nil,
  20. },
  21. {
  22. key: "welcome-user2",
  23. trans: "Welcome to the site {0}, your location is {1}",
  24. expected: nil,
  25. },
  26. }
  27. for _, tt := range translations {
  28. if err := loc.Add(tt.key, tt.trans); err != nil {
  29. b.Fatalf("adding translation '%s' failed with key '%s'", tt.trans, tt.key)
  30. }
  31. }
  32. b.ResetTimer()
  33. b.Run("", func(b *testing.B) {
  34. for i := 0; i < b.N; i++ {
  35. loc.T("welcome")
  36. }
  37. })
  38. b.Run("Parallel", func(b *testing.B) {
  39. b.RunParallel(func(pb *testing.PB) {
  40. for pb.Next() {
  41. loc.T("welcome")
  42. }
  43. })
  44. })
  45. b.Run("With1Param", func(b *testing.B) {
  46. for i := 0; i < b.N; i++ {
  47. loc.T("welcome-user", "Joeybloggs")
  48. }
  49. })
  50. b.Run("ParallelWith1Param", func(b *testing.B) {
  51. b.RunParallel(func(pb *testing.PB) {
  52. for pb.Next() {
  53. loc.T("welcome-user", "Joeybloggs")
  54. }
  55. })
  56. })
  57. b.Run("With2Param", func(b *testing.B) {
  58. for i := 0; i < b.N; i++ {
  59. loc.T("welcome-user2", "Joeybloggs", "/dev/tty0")
  60. }
  61. })
  62. b.Run("ParallelWith2Param", func(b *testing.B) {
  63. b.RunParallel(func(pb *testing.PB) {
  64. for pb.Next() {
  65. loc.T("welcome-user2", "Joeybloggs", "/dev/tty0")
  66. }
  67. })
  68. })
  69. }