plural_test.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. // SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
  2. // SPDX-License-Identifier: Apache-2.0
  3. package locale // import "miniflux.app/v2/internal/locale"
  4. import "testing"
  5. func TestPluralRules(t *testing.T) {
  6. scenarios := map[string]map[int]int{
  7. "default": {
  8. 1: 0,
  9. 2: 1,
  10. 5: 1,
  11. },
  12. "ar_AR": {
  13. 0: 0,
  14. 1: 1,
  15. 2: 2,
  16. 5: 3,
  17. 11: 4,
  18. 200: 5,
  19. },
  20. "cs_CZ": {
  21. 1: 0,
  22. 2: 1,
  23. 5: 2,
  24. },
  25. "fr_FR": {
  26. 1: 0,
  27. 2: 1,
  28. 5: 1,
  29. },
  30. "id_ID": {
  31. 1: 0,
  32. 5: 0,
  33. },
  34. "ja_JP": {
  35. 1: 0,
  36. 2: 0,
  37. 5: 0,
  38. },
  39. "pl_PL": {
  40. 1: 0,
  41. 2: 1,
  42. 5: 2,
  43. },
  44. "pt_BR": {
  45. 1: 0,
  46. 2: 1,
  47. 5: 1,
  48. },
  49. "ru_RU": {
  50. 1: 0,
  51. 2: 1,
  52. 5: 2,
  53. },
  54. "sr_RS": {
  55. 1: 0,
  56. 2: 1,
  57. 5: 2,
  58. },
  59. "tr_TR": {
  60. 1: 0,
  61. 2: 1,
  62. 5: 1,
  63. },
  64. "uk_UA": {
  65. 1: 0,
  66. 2: 1,
  67. 5: 2,
  68. },
  69. "zh_CN": {
  70. 1: 0,
  71. 5: 0,
  72. },
  73. "zh_TW": {
  74. 1: 0,
  75. 5: 0,
  76. },
  77. "nan_Latn_pehoeji": {
  78. 1: 0,
  79. 5: 0,
  80. },
  81. }
  82. for rule, values := range scenarios {
  83. for input, expected := range values {
  84. result := pluralForms[rule](input)
  85. if result != expected {
  86. t.Errorf(`Unexpected result for %q rule, got %d instead of %d for %d as input`, rule, result, expected, input)
  87. }
  88. }
  89. }
  90. }