Skip to content

Commit

Permalink
Add Support for Quarter Granularity in Russian (arrow-py#1062) (arrow…
Browse files Browse the repository at this point in the history
  • Loading branch information
manlix committed Nov 2, 2021
1 parent 675c877 commit 8f5b21f
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 0 deletions.
6 changes: 6 additions & 0 deletions arrow/locales.py
Original file line number Diff line number Diff line change
Expand Up @@ -1515,6 +1515,12 @@ class RussianLocale(SlavicBaseLocale):
"dual": "{0} месяца",
"plural": "{0} месяцев",
},
"quarter": "квартал",
"quarters": {
"singular": "{0} квартал",
"dual": "{0} квартала",
"plural": "{0} кварталов",
},
"year": "год",
"years": {"singular": "{0} год", "dual": "{0} года", "plural": "{0} лет"},
}
Expand Down
79 changes: 79 additions & 0 deletions tests/test_locales.py
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,13 @@ def test_singles_timeframe(self):
result = self.locale._format_timeframe("second", -1)
assert result == "секунда"

# Quarter
result = self.locale._format_timeframe("quarter", 1)
assert result == "квартал"

result = self.locale._format_timeframe("quarter", -1)
assert result == "квартал"

def test_singles_relative(self):
# Second in the future
result = self.locale._format_relative("секунду", "second", 1)
Expand All @@ -269,6 +276,14 @@ def test_singles_relative(self):
result = self.locale._format_relative("секунду", "second", -1)
assert result == "секунду назад"

# Quarter in the future
result = self.locale._format_relative("квартал", "quarter", 1)
assert result == "через квартал"

# Quarter in the past
result = self.locale._format_relative("квартал", "quarter", -1)
assert result == "квартал назад"

def test_plurals_timeframe(self):
# Seconds in the future
result = self.locale._format_timeframe("seconds", 2)
Expand Down Expand Up @@ -302,6 +317,38 @@ def test_plurals_timeframe(self):
result = self.locale._format_timeframe("seconds", -25)
assert result == "25 секунд"

# Quarters in the future
result = self.locale._format_timeframe("quarters", 2)
assert result == "2 квартала"

result = self.locale._format_timeframe("quarters", 5)
assert result == "5 кварталов"

result = self.locale._format_timeframe("quarters", 21)
assert result == "21 квартал"

result = self.locale._format_timeframe("quarters", 22)
assert result == "22 квартала"

result = self.locale._format_timeframe("quarters", 25)
assert result == "25 кварталов"

# Quarters in the past
result = self.locale._format_timeframe("quarters", -2)
assert result == "2 квартала"

result = self.locale._format_timeframe("quarters", -5)
assert result == "5 кварталов"

result = self.locale._format_timeframe("quarters", -21)
assert result == "21 квартал"

result = self.locale._format_timeframe("quarters", -22)
assert result == "22 квартала"

result = self.locale._format_timeframe("quarters", -25)
assert result == "25 кварталов"

def test_plurals_relative(self):
# Seconds in the future
result = self.locale._format_relative("1 секунду", "seconds", 1)
Expand Down Expand Up @@ -335,6 +382,38 @@ def test_plurals_relative(self):
result = self.locale._format_relative("25 секунд", "seconds", -25)
assert result == "25 секунд назад"

# Quarters in the future
result = self.locale._format_relative("1 квартал", "quarters", 1)
assert result == "через 1 квартал"

result = self.locale._format_relative("2 квартала", "quarters", 2)
assert result == "через 2 квартала"

result = self.locale._format_relative("5 кварталов", "quarters", 5)
assert result == "через 5 кварталов"

result = self.locale._format_relative("21 квартал", "quarters", 21)
assert result == "через 21 квартал"

result = self.locale._format_relative("25 кварталов", "quarters", 25)
assert result == "через 25 кварталов"

# Quarters in the past
result = self.locale._format_relative("1 квартал", "quarters", -1)
assert result == "1 квартал назад"

result = self.locale._format_relative("2 квартала", "quarters", -2)
assert result == "2 квартала назад"

result = self.locale._format_relative("5 кварталов", "quarters", -5)
assert result == "5 кварталов назад"

result = self.locale._format_relative("21 квартал", "quarters", -21)
assert result == "21 квартал назад"

result = self.locale._format_relative("25 кварталов", "quarters", -25)
assert result == "25 кварталов назад"

def test_plurals2(self):
assert self.locale._format_timeframe("hours", 0) == "0 часов"
assert self.locale._format_timeframe("hours", 1) == "1 час"
Expand Down

0 comments on commit 8f5b21f

Please sign in to comment.