cm-ru_propisju 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +7 -0
- data/History.txt +61 -0
- data/README.rdoc +52 -0
- data/Rakefile +33 -0
- data/cm-ru_propisju.gemspec +50 -0
- data/lib/ru_propisju.rb +766 -0
- data/test/test_ru_propisju.rb +513 -0
- metadata +93 -0
|
@@ -0,0 +1,513 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
$KCODE = 'u' if RUBY_VERSION < '1.9.0'
|
|
3
|
+
|
|
4
|
+
require "test/unit"
|
|
5
|
+
require "ru_propisju"
|
|
6
|
+
|
|
7
|
+
class TestRuPropisju < Test::Unit::TestCase
|
|
8
|
+
|
|
9
|
+
def test_amount_in_words
|
|
10
|
+
assert_raise(RuPropisju::UnknownCurrency) do
|
|
11
|
+
RuPropisju.amount_in_words(123, "neumelix programmista")
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# russian locale
|
|
15
|
+
assert_equal "сто двадцать три рубля", RuPropisju.amount_in_words(123, :rur)
|
|
16
|
+
assert_equal "сто двадцать три рубля", RuPropisju.amount_in_words(123, :rub)
|
|
17
|
+
assert_equal "сто двадцать три рубля", RuPropisju.amount_in_words(123, "RUR")
|
|
18
|
+
assert_equal "сто двадцать три рубля", RuPropisju.amount_in_words(123, "rur")
|
|
19
|
+
assert_equal "сто двадцать три гривны", RuPropisju.amount_in_words(123, "uah")
|
|
20
|
+
assert_equal "сто двадцать три тенге", RuPropisju.amount_in_words(123, "kzt")
|
|
21
|
+
assert_equal "сто двадцать три евро", RuPropisju.amount_in_words(123, "eur")
|
|
22
|
+
assert_equal "сто двадцать три евро четырнадцать центов", RuPropisju.amount_in_words(123.14, "eur")
|
|
23
|
+
assert_equal "сто двадцать три доллара четырнадцать центов", RuPropisju.amount_in_words(123.14, "usd")
|
|
24
|
+
|
|
25
|
+
# russian locale (предложный падеж)
|
|
26
|
+
assert_equal "ста двадцати трёх рублях", RuPropisju.amount_in_words(123, :rur, :ru_in)
|
|
27
|
+
assert_equal "ста двадцати трёх рублях", RuPropisju.amount_in_words(123, :rub, :ru_in)
|
|
28
|
+
assert_equal "ста двадцати трёх рублях", RuPropisju.amount_in_words(123, "RUR", "ru_in")
|
|
29
|
+
assert_equal "ста двадцати трёх рублях", RuPropisju.amount_in_words(123, "rur", "ru_in")
|
|
30
|
+
assert_equal "ста двадцати трёх гривнах", RuPropisju.amount_in_words(123, "uah", "ru_in")
|
|
31
|
+
assert_equal "ста двадцати трёх тенге", RuPropisju.amount_in_words(123, "kzt", "ru_in")
|
|
32
|
+
assert_equal "ста двадцати трёх евро", RuPropisju.amount_in_words(123, "eur", "ru_in")
|
|
33
|
+
assert_equal "ста двадцати трёх евро четырнадцати центах", RuPropisju.amount_in_words(123.14, "eur", :ru_in)
|
|
34
|
+
assert_equal "ста двадцати трёх долларах четырнадцати центах", RuPropisju.amount_in_words(123.14, "usd", :ru_in)
|
|
35
|
+
|
|
36
|
+
assert_equal 'ста двадцати трёх рублях', RuPropisju.amount_in_words(123, :rur, :ru_pre)
|
|
37
|
+
assert_equal 'ста двадцати трёх евро', RuPropisju.amount_in_words(123, :eur, :ru_pre)
|
|
38
|
+
|
|
39
|
+
# russian locale (родительный падеж)
|
|
40
|
+
assert_equal 'одного рубля', RuPropisju.amount_in_words(1, :rur, :ru_gen)
|
|
41
|
+
assert_equal 'пятидесяти одного рубля', RuPropisju.amount_in_words(51, :rur, :ru_gen)
|
|
42
|
+
assert_equal 'ста двадцати трёх рублей', RuPropisju.amount_in_words(123, :rur, :ru_gen)
|
|
43
|
+
assert_equal 'ста двадцати трёх рублей', RuPropisju.amount_in_words(123, :rub, :ru_gen)
|
|
44
|
+
assert_equal 'ста двадцати трёх рублей', RuPropisju.amount_in_words(123, 'RUR', 'ru_gen')
|
|
45
|
+
assert_equal 'ста двадцати трёх рублей', RuPropisju.amount_in_words(123, 'rur', 'ru_gen')
|
|
46
|
+
assert_equal 'ста двадцати трёх гривен', RuPropisju.amount_in_words(123, 'uah', 'ru_gen')
|
|
47
|
+
assert_equal 'ста двадцати трёх тенге', RuPropisju.amount_in_words(123, 'kzt', 'ru_gen')
|
|
48
|
+
assert_equal 'ста двадцати трёх евро', RuPropisju.amount_in_words(123, 'eur', 'ru_gen')
|
|
49
|
+
assert_equal 'ста двадцати трёх евро четырнадцати центов', RuPropisju.amount_in_words(123.14, 'eur', :ru_gen)
|
|
50
|
+
assert_equal 'ста двадцати трёх долларов четырнадцати центов', RuPropisju.amount_in_words(123.14, 'usd', :ru_gen)
|
|
51
|
+
|
|
52
|
+
# russian locale (творительный падеж)
|
|
53
|
+
assert_equal "ста двадцатью тремя рублями", RuPropisju.amount_in_words(123, :rur, :ru_from)
|
|
54
|
+
assert_equal "ста двадцатью тремя рублями", RuPropisju.amount_in_words(123, :rub, :ru_from)
|
|
55
|
+
assert_equal "ста двадцатью тремя рублями", RuPropisju.amount_in_words(123, "RUR", "ru_from")
|
|
56
|
+
assert_equal "ста двадцатью тремя рублями", RuPropisju.amount_in_words(123, "rur", "ru_from")
|
|
57
|
+
assert_equal "ста двадцатью тремя гривнами", RuPropisju.amount_in_words(123, "uah", "ru_from")
|
|
58
|
+
assert_equal "ста двадцатью тремя тенге", RuPropisju.amount_in_words(123, "kzt", "ru_from")
|
|
59
|
+
assert_equal "ста двадцатью тремя евро", RuPropisju.amount_in_words(123, "eur", "ru_from")
|
|
60
|
+
assert_equal "ста двадцатью тремя евро четырнадцатью центами", RuPropisju.amount_in_words(123.14, "eur", :ru_from)
|
|
61
|
+
assert_equal "ста двадцатью тремя долларами четырнадцатью центами", RuPropisju.amount_in_words(123.14, "usd", :ru_from)
|
|
62
|
+
|
|
63
|
+
# ua locale
|
|
64
|
+
assert_equal "сто двадцять три рубля", RuPropisju.amount_in_words(123, :rur, :ua)
|
|
65
|
+
assert_equal "сто двадцять три рубля", RuPropisju.amount_in_words(123, :rub, :ua)
|
|
66
|
+
assert_equal "сто двадцять три рубля", RuPropisju.amount_in_words(123, "RUR", "ua")
|
|
67
|
+
assert_equal "сто двадцять три рубля", RuPropisju.amount_in_words(123, "rur", "ua")
|
|
68
|
+
assert_equal "сто двадцять три гривні", RuPropisju.amount_in_words(123, "uah", "ua")
|
|
69
|
+
assert_equal "сто двадцять три тенге", RuPropisju.amount_in_words(123, "kzt", "ua")
|
|
70
|
+
assert_equal "сто двадцять три євро", RuPropisju.amount_in_words(123, "eur", "ua")
|
|
71
|
+
assert_equal "сто двадцять три євро чотирнадцять євроцентів", RuPropisju.amount_in_words(123.14, "eur", :ua)
|
|
72
|
+
assert_equal "сто двадцять три долара чотирнадцять центів", RuPropisju.amount_in_words(123.14, "usd", :ua)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def test_issue_3
|
|
76
|
+
assert_equal "два миллиона евро", RuPropisju.evro(2000000)
|
|
77
|
+
assert_equal "два миллиона рублей", RuPropisju.rublej(2000000)
|
|
78
|
+
assert_equal "два миллиона тенге", RuPropisju.tenge(2000000)
|
|
79
|
+
assert_equal "два миллиона рублей", RuPropisju.amount_in_words(2000000, :rub)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def test_propisju_dollarov
|
|
83
|
+
assert_equal "сто двадцать один доллар пятьдесят один цент", RuPropisju.dollarov(121.51)
|
|
84
|
+
assert_equal "сто двадцять один долар п'ятьдесят один цент", RuPropisju.dollarov(121.51, :ua)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def test_propisju_euro
|
|
88
|
+
assert_equal "сто двадцать один евро четыре цента", RuPropisju.evro(121.04)
|
|
89
|
+
assert_equal "сто двадцять один євро чотири євроцента", RuPropisju.evro(121.04, :ua)
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def test_propisju_tenge
|
|
93
|
+
assert_equal "сто двадцать один тенге четыре тиына", RuPropisju.tenge(121.04)
|
|
94
|
+
assert_equal "сто двадцять один тенге чотири тиына", RuPropisju.tenge(121.04, :ua)
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def test_thousands_and_millions
|
|
98
|
+
assert_equal "два миллиона сто тысяч рублей", RuPropisju.amount_in_words(2100000, :rur)
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def test_propisju_for_ints
|
|
102
|
+
assert_equal "пятьсот двадцать три", RuPropisju.propisju(523, 1)
|
|
103
|
+
assert_equal "шесть тысяч семьсот двадцать семь", RuPropisju.propisju(6727, 1)
|
|
104
|
+
assert_equal "один миллион один", RuPropisju.propisju(1_000_001, 1)
|
|
105
|
+
assert_equal "один миллион", RuPropisju.propisju(1_000_000, 1)
|
|
106
|
+
assert_equal "восемь миллионов шестьсот пятьдесят два", RuPropisju.propisju(8000652, 1)
|
|
107
|
+
assert_equal "восемь миллионов шестьсот пятьдесят две", RuPropisju.propisju(8000652, 2)
|
|
108
|
+
assert_equal "восемь миллионов шестьсот пятьдесят два", RuPropisju.propisju(8000652, 3)
|
|
109
|
+
assert_equal "сорок пять", RuPropisju.propisju(45, 1)
|
|
110
|
+
assert_equal "пять", RuPropisju.propisju(5, 1)
|
|
111
|
+
assert_equal "шестьсот двенадцать", RuPropisju.propisju(612, 1)
|
|
112
|
+
assert_equal "ноль", RuPropisju.propisju(0, 1)
|
|
113
|
+
|
|
114
|
+
# предложный падеж для русской локали
|
|
115
|
+
assert_equal "пятистах двадцати трёх", RuPropisju.propisju(523, 1, :ru_in)
|
|
116
|
+
assert_equal "шести тысячах семистах двадцати семи", RuPropisju.propisju(6727, 1, :ru_in)
|
|
117
|
+
assert_equal "одном миллионе одном", RuPropisju.propisju(1_000_001, 1, :ru_in)
|
|
118
|
+
assert_equal "одном миллионе", RuPropisju.propisju(1_000_000, 1, :ru_in)
|
|
119
|
+
assert_equal "восьми миллионах шестистах пятидесяти двух", RuPropisju.propisju(8000652, 1, :ru_in)
|
|
120
|
+
assert_equal "восьми миллионах шестистах пятидесяти двух", RuPropisju.propisju(8000652, 2, :ru_in)
|
|
121
|
+
assert_equal "восьми миллионах шестистах пятидесяти двух", RuPropisju.propisju(8000652, 3, :ru_in)
|
|
122
|
+
assert_equal "сорока пяти", RuPropisju.propisju(45, 1, :ru_in)
|
|
123
|
+
assert_equal "пяти", RuPropisju.propisju(5, 1, :ru_in)
|
|
124
|
+
assert_equal "шестистах двенадцати", RuPropisju.propisju(612, 1, :ru_in)
|
|
125
|
+
assert_equal "нуле", RuPropisju.propisju(0, 1, :ru_in)
|
|
126
|
+
|
|
127
|
+
# родительный падеж для русской локали
|
|
128
|
+
assert_equal 'пятисот двадцати трёх', RuPropisju.propisju(523, 1, :ru_gen)
|
|
129
|
+
assert_equal 'шести тысяч семисот двадцати семи', RuPropisju.propisju(6727, 1, :ru_gen)
|
|
130
|
+
assert_equal 'одного миллиона одного', RuPropisju.propisju(1_000_001, 1, :ru_gen)
|
|
131
|
+
assert_equal 'одного миллиона', RuPropisju.propisju(1_000_000, 1, :ru_gen)
|
|
132
|
+
assert_equal 'восьми миллионов шестисот пятидесяти одного', RuPropisju.propisju(8000651, 1, :ru_gen)
|
|
133
|
+
assert_equal 'восьми миллионов шестисот пятидесяти одной', RuPropisju.propisju(8000651, 2, :ru_gen)
|
|
134
|
+
assert_equal 'восьми миллионов шестисот пятидесяти одного', RuPropisju.propisju(8000651, 3, :ru_gen)
|
|
135
|
+
assert_equal 'сорока пяти', RuPropisju.propisju(45, 1, :ru_gen)
|
|
136
|
+
assert_equal 'пяти', RuPropisju.propisju(5, 1, :ru_gen)
|
|
137
|
+
assert_equal 'шестисот двенадцати', RuPropisju.propisju(612, 1, :ru_gen)
|
|
138
|
+
assert_equal 'нуля', RuPropisju.propisju(0, 1, :ru_gen)
|
|
139
|
+
|
|
140
|
+
# творительный падеж для русской локали
|
|
141
|
+
assert_equal "пятьюстами двадцатью тремя", RuPropisju.propisju(523, 1, :ru_from)
|
|
142
|
+
assert_equal "шестью тысячами семьюстами двадцатью семью", RuPropisju.propisju(6727, 1, :ru_from)
|
|
143
|
+
assert_equal "одним миллионом одним", RuPropisju.propisju(1_000_001, 1, :ru_from)
|
|
144
|
+
assert_equal "одним миллионом", RuPropisju.propisju(1_000_000, 1, :ru_from)
|
|
145
|
+
assert_equal "восьмью миллионами шестьюстами пятьюдесятью двумя", RuPropisju.propisju(8000652, 1, :ru_from)
|
|
146
|
+
assert_equal "восьмью миллионами шестьюстами пятьюдесятью двумя", RuPropisju.propisju(8000652, 2, :ru_from)
|
|
147
|
+
assert_equal "восьмью миллионами шестьюстами пятьюдесятью двумя", RuPropisju.propisju(8000652, 3, :ru_from)
|
|
148
|
+
assert_equal "сорока пятью", RuPropisju.propisju(45, 1, :ru_from)
|
|
149
|
+
assert_equal "пятью", RuPropisju.propisju(5, 1, :ru_from)
|
|
150
|
+
assert_equal "шестьюстами двенадцатью", RuPropisju.propisju(612, 1, :ru_from)
|
|
151
|
+
assert_equal "нулём", RuPropisju.propisju(0, 1, :ru_from)
|
|
152
|
+
|
|
153
|
+
# ukrainian locale
|
|
154
|
+
assert_equal "п'ятьсот двадцять три", RuPropisju.propisju(523, 1, :ua)
|
|
155
|
+
assert_equal "шість тисяч сімсот двадцять сім", RuPropisju.propisju(6727, 1, :ua)
|
|
156
|
+
assert_equal "вісім мільйонів шістсот п'ятьдесят два", RuPropisju.propisju(8000652, 1, :ua)
|
|
157
|
+
assert_equal "вісім мільйонів шістсот п'ятьдесят дві", RuPropisju.propisju(8000652, 2, :ua)
|
|
158
|
+
assert_equal "вісім мільйонів шістсот п'ятьдесят два", RuPropisju.propisju(8000652, 3, :ua)
|
|
159
|
+
assert_equal "сорок п'ять", RuPropisju.propisju(45, 1, :ua)
|
|
160
|
+
assert_equal "п'ять", RuPropisju.propisju(5, 1, :ua)
|
|
161
|
+
assert_equal "шістсот дванадцять", RuPropisju.propisju(612, 1, :ua)
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
def test_propisju_shtuk
|
|
165
|
+
assert_equal "шесть целых", RuPropisju.propisju_shtuk(6, 2, ["целая", "целых", "целых"])
|
|
166
|
+
assert_equal "двадцать пять колес", RuPropisju.propisju_shtuk(25, 3, ["колесо", "колеса", "колес"])
|
|
167
|
+
assert_equal "двадцать одна подстава", RuPropisju.propisju_shtuk(21, 2, ["подстава", "подставы", "подстав"])
|
|
168
|
+
assert_equal "двести двенадцать сволочей", RuPropisju.propisju_shtuk(212.00, 2, ["сволочь", "сволочи", "сволочей"])
|
|
169
|
+
assert_equal "двести двенадцать целых четыре десятых куска", RuPropisju.propisju_shtuk(212.40, 2, ["кусок", "куска", "кусков"])
|
|
170
|
+
|
|
171
|
+
# GH issue 10
|
|
172
|
+
# https://github.com/julik/ru_propisju/issues/10
|
|
173
|
+
assert_equal "одна тысяча сто две целых сорок одна сотая кубометра", RuPropisju.propisju_shtuk( 1102.41, 2, ["кубометр", "кубометра", "кубометров"])
|
|
174
|
+
|
|
175
|
+
# предложный падеж русской локали
|
|
176
|
+
assert_equal "шести целых", RuPropisju.propisju_shtuk(6, 2, ["целой", "целых", "целых"], :ru_in)
|
|
177
|
+
assert_equal "двадцати пяти колесах", RuPropisju.propisju_shtuk(25, 3, ["колесо", "колесах", "колесах"], :ru_in)
|
|
178
|
+
assert_equal "двадцати одной подставе", RuPropisju.propisju_shtuk(21, 2, ["подставе", "подставах", "подставах"], :ru_in)
|
|
179
|
+
assert_equal "двухстах двенадцати сволочах", RuPropisju.propisju_shtuk(212.00, 2, ["сволочи", "сволочах", "сволочах"], :ru_in)
|
|
180
|
+
assert_equal "двухстах двенадцати целых четырёх десятых кусках", RuPropisju.propisju_shtuk(212.40, 2, ["куске", "кусках", "кусках"], :ru_in)
|
|
181
|
+
|
|
182
|
+
# родительный падеж русской локали
|
|
183
|
+
assert_equal 'шести целых', RuPropisju.propisju_shtuk(6, 2, %w(целой целых целых), :ru_gen)
|
|
184
|
+
assert_equal 'двадцати пяти колёс', RuPropisju.propisju_shtuk(25, 3, %w(колёса колёс колёс), :ru_gen)
|
|
185
|
+
assert_equal 'двадцати одной подставы', RuPropisju.propisju_shtuk(21, 2, %w(подставы подстав подстав), :ru_gen)
|
|
186
|
+
assert_equal 'двухсот двенадцати сволочей', RuPropisju.propisju_shtuk(212.00, 2, %w(сволочи сволочей сволочей), :ru_gen)
|
|
187
|
+
assert_equal 'двухсот двенадцати целых четырёх десятых кусков', RuPropisju.propisju_shtuk(212.40, 2, %w(куска кусков кусков), :ru_gen)
|
|
188
|
+
|
|
189
|
+
# творительный падеж русской локали
|
|
190
|
+
assert_equal "шестью целыми", RuPropisju.propisju_shtuk(6, 2, ["целой", "целыми", "целыми"], :ru_from)
|
|
191
|
+
assert_equal "двадцатью пятью колесами", RuPropisju.propisju_shtuk(25, 3, ["колесом", "колесами", "колесами"], :ru_from)
|
|
192
|
+
assert_equal "двадцатью одной подставой", RuPropisju.propisju_shtuk(21, 2, ["подставой", "подставами", "подставами"], :ru_from)
|
|
193
|
+
assert_equal "двумястами двенадцатью сволочами", RuPropisju.propisju_shtuk(212.00, 2, ["сволочью", "сволочами", "сволочами"], :ru_from)
|
|
194
|
+
assert_equal "двумястами двенадцатью целыми четырьмя десятыми кусками", RuPropisju.propisju_shtuk(212.40, 2, ["куском", "кусками", "кусками"], :ru_from)
|
|
195
|
+
|
|
196
|
+
# ua locale
|
|
197
|
+
assert_equal "шість цілих", RuPropisju.propisju_shtuk(6, 2, ["ціла", "цілих", "цілих"], :ua)
|
|
198
|
+
assert_equal "двадцять п'ять колес", RuPropisju.propisju_shtuk(25, 3, ["колесо", "колеса", "колес"], :ua)
|
|
199
|
+
assert_equal "двадцять одна підстава", RuPropisju.propisju_shtuk(21, 2, ["підстава", "підстави", "підстав"], :ua)
|
|
200
|
+
assert_equal "двісті дванадцять наволочів", RuPropisju.propisju_shtuk(212.00, 2, ["наволоч", "наволочі", "наволочів"], :ua)
|
|
201
|
+
assert_equal "двісті дванадцять цілих чотири десятих шматка", RuPropisju.propisju_shtuk(212.40, 2, ["шматок", "шматка", "шматків"], :ua)
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
def test_propisju_for_floats
|
|
205
|
+
assert_equal "шесть целых пять десятых", RuPropisju.propisju(6.50, 1)
|
|
206
|
+
assert_equal "шесть", RuPropisju.propisju(6.0, 1)
|
|
207
|
+
assert_equal "тридцать миллиардов целых сто одиннадцать тысячных", RuPropisju.propisju(3 * 10**10 + 0.111, 1)
|
|
208
|
+
assert_equal "тридцать", RuPropisju.propisju(30.0, 1)
|
|
209
|
+
assert_equal "тридцать целых одна десятая", RuPropisju.propisju(30.1, 1)
|
|
210
|
+
assert_equal "триста сорок одна целая девять десятых", RuPropisju.propisju(341.9, 1)
|
|
211
|
+
assert_equal "триста сорок одна целая двести сорок пять тысячных", RuPropisju.propisju(341.245, 1)
|
|
212
|
+
assert_equal "двести три целых сорок одна сотая", RuPropisju.propisju(203.41, 1)
|
|
213
|
+
assert_equal "четыреста сорок две целых пять десятых", RuPropisju.propisju(442.50000, 1)
|
|
214
|
+
assert_equal "одна тысяча триста тридцать три целых сто двадцать три миллиарда четыреста пятьдесят шесть миллионов семьсот восемьдесят девять тысяч двенадцать триллионных", RuPropisju.propisju(1333.1234567890123456789, 1)
|
|
215
|
+
# предложный падеж русской локали
|
|
216
|
+
assert_equal "шести целых пяти десятых", RuPropisju.propisju(6.50, 1, :ru_in)
|
|
217
|
+
assert_equal "шести", RuPropisju.propisju(6.0, 1, :ru_in)
|
|
218
|
+
assert_equal "тридцати миллиардах целых ста одиннадцати тысячных", RuPropisju.propisju(3 * 10**10 + 0.111, 1, :ru_in)
|
|
219
|
+
assert_equal "тридцати", RuPropisju.propisju(30.0, 1, :ru_in)
|
|
220
|
+
assert_equal "тридцати целых одной десятой", RuPropisju.propisju(30.1, 1, :ru_in)
|
|
221
|
+
assert_equal "трёхстах сорока одной целой девяти десятых", RuPropisju.propisju(341.9, 1, :ru_in)
|
|
222
|
+
assert_equal "трёхстах сорока одной целой двухстах сорока пяти тысячных", RuPropisju.propisju(341.245, 1, :ru_in)
|
|
223
|
+
assert_equal "двухстах трёх целых сорока одной сотой", RuPropisju.propisju(203.41, 1, :ru_in)
|
|
224
|
+
assert_equal "четырёхстах сорока двух целых пяти десятых", RuPropisju.propisju(442.50000, 1, :ru_in)
|
|
225
|
+
|
|
226
|
+
# родительный падеж русской локали
|
|
227
|
+
assert_equal 'шести целых пяти десятых', RuPropisju.propisju(6.50, 1, :ru_gen)
|
|
228
|
+
assert_equal 'шести', RuPropisju.propisju(6.0, 1, :ru_gen)
|
|
229
|
+
assert_equal 'тридцати миллиардов целых ста одиннадцати тысячных', RuPropisju.propisju(3 * 10**10 + 0.111, 1, :ru_gen)
|
|
230
|
+
assert_equal 'тридцати', RuPropisju.propisju(30.0, 1, :ru_gen)
|
|
231
|
+
assert_equal 'тридцати целых одной десятой', RuPropisju.propisju(30.1, 1, :ru_gen)
|
|
232
|
+
assert_equal 'трёхсот сорока одной целой девяти десятых', RuPropisju.propisju(341.9, 1, :ru_gen)
|
|
233
|
+
assert_equal 'трёхсот сорока одной целой двухсот сорока пяти тысячных', RuPropisju.propisju(341.245, 1, :ru_gen)
|
|
234
|
+
assert_equal 'двухсот трёх целых сорока одной сотой', RuPropisju.propisju(203.41, 1, :ru_gen)
|
|
235
|
+
assert_equal 'четырёхсот сорока двух целых пяти десятых', RuPropisju.propisju(442.50000, 1, :ru_gen)
|
|
236
|
+
|
|
237
|
+
# творительный падеж русской локали
|
|
238
|
+
assert_equal "шестью целыми пятью десятыми", RuPropisju.propisju(6.50, 1, :ru_from)
|
|
239
|
+
assert_equal "шестью", RuPropisju.propisju(6.0, 1, :ru_from)
|
|
240
|
+
assert_equal "тридцатью миллиардами целыми ста одиннадцатью тысячными", RuPropisju.propisju(3 * 10**10 + 0.111, 1, :ru_from)
|
|
241
|
+
assert_equal "тридцатью", RuPropisju.propisju(30.0, 1, :ru_from)
|
|
242
|
+
assert_equal "тридцатью целыми одной десятой", RuPropisju.propisju(30.1, 1, :ru_from)
|
|
243
|
+
assert_equal "тремястами сорока одной целой девятью десятыми", RuPropisju.propisju(341.9, 1, :ru_from)
|
|
244
|
+
assert_equal "тремястами сорока одной целой двумястами сорока пятью тысячными", RuPropisju.propisju(341.245, 1, :ru_from)
|
|
245
|
+
assert_equal "двумястами тремя целыми сорока одной сотой", RuPropisju.propisju(203.41, 1, :ru_from)
|
|
246
|
+
assert_equal "четырьмястами сорока двумя целыми пятью десятыми", RuPropisju.propisju(442.50000, 1, :ru_from)
|
|
247
|
+
|
|
248
|
+
# ua locale
|
|
249
|
+
assert_equal "шість цілих п'ять десятих", RuPropisju.propisju(6.50, 1, :ua)
|
|
250
|
+
assert_equal "триста сорок одна ціла дев'ять десятих", RuPropisju.propisju(341.9, 1, :ua)
|
|
251
|
+
assert_equal "триста сорок одна ціла двісті сорок п'ять тисячних", RuPropisju.propisju(341.245, 1, :ua)
|
|
252
|
+
assert_equal "двісті три цілих сорок одна сота", RuPropisju.propisju(203.41, 1, :ua)
|
|
253
|
+
assert_equal "чотириста сорок дві цілих п'ять десятих", RuPropisju.propisju(442.50000, 1, :ua)
|
|
254
|
+
|
|
255
|
+
# unknown locale
|
|
256
|
+
assert_raise(RuPropisju::UnknownLocale) do
|
|
257
|
+
assert_equal "чотириста сорок дві цілих п'ять десятих", RuPropisju.propisju(442.50000, 1, :kg)
|
|
258
|
+
end
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
def test_choose_plural
|
|
262
|
+
assert_equal "чемодана", RuPropisju.choose_plural(523, ["чемодан", "чемодана", "чемоданов"])
|
|
263
|
+
assert_equal "партий", RuPropisju.choose_plural(6727, ["партия", "партии", "партий"])
|
|
264
|
+
assert_equal "козлов", RuPropisju.choose_plural(45, ["козел", "козла", "козлов"])
|
|
265
|
+
assert_equal "колес", RuPropisju.choose_plural(260, ["колесо", "колеса", "колес"])
|
|
266
|
+
|
|
267
|
+
# splat args
|
|
268
|
+
assert_equal "колес", RuPropisju.choose_plural(260, "колесо", "колеса", "колес")
|
|
269
|
+
|
|
270
|
+
# ua locale
|
|
271
|
+
assert_equal "валізи", RuPropisju.choose_plural(523, ["валіза", "валізи", "валіз"])
|
|
272
|
+
assert_equal "партій", RuPropisju.choose_plural(6727, ["партія", "партії", "партій"])
|
|
273
|
+
assert_equal "козлів", RuPropisju.choose_plural(45, ["козел", "козла", "козлів"])
|
|
274
|
+
assert_equal "колес", RuPropisju.choose_plural(260, ["колесо", "колеса", "колес"])
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
def test_options
|
|
278
|
+
# всегда отображать копейки
|
|
279
|
+
options = { :always_show_fraction => true }
|
|
280
|
+
assert_equal "ноль рублей 0 копеек", RuPropisju.rublej(0, :ru, options)
|
|
281
|
+
assert_equal "сто двадцать три рубля 0 копеек", RuPropisju.rublej(123, :ru, options)
|
|
282
|
+
assert_equal "триста сорок три рубля 20 копеек", RuPropisju.rublej(343.20, :ru, options)
|
|
283
|
+
assert_equal "триста сорок три рубля 70 копеек", RuPropisju.rublej(343.70, :ru, options)
|
|
284
|
+
|
|
285
|
+
assert_equal "42 копейки", RuPropisju.rublej(0.4187, :ru, options)
|
|
286
|
+
assert_equal "триста тридцать два рубля 0 копеек", RuPropisju.rublej(331.995, :ru, options)
|
|
287
|
+
assert_equal "один рубль 0 копеек", RuPropisju.rubl(1, :ru, options)
|
|
288
|
+
assert_equal "три рубля 14 копеек", RuPropisju.rublja(3.14, :ru, options)
|
|
289
|
+
assert_equal "три рубля 2 копейки", RuPropisju.rublja(3.02, :ru, options)
|
|
290
|
+
assert_equal "одна тысяча рублей 0 копеек", RuPropisju.rublja(1000, :ru, options)
|
|
291
|
+
|
|
292
|
+
assert_equal "1000 рублей 0 копеек", RuPropisju.digit_rublej(1000, :ru, options)
|
|
293
|
+
assert_equal "345 рублей 2 копейки", RuPropisju.digit_rublej(345.02, :ru, options)
|
|
294
|
+
assert_equal "4 рубля 60 копеек", RuPropisju.digit_rublej(4.60, :ru, options)
|
|
295
|
+
|
|
296
|
+
# форматировение
|
|
297
|
+
options_custom_formatter = { :fraction_formatter => '%02d', :integrals_formatter => '+%d', :integrals_delimiter => ' ', :always_show_fraction => true }
|
|
298
|
+
assert_equal "ноль рублей 00 копеек", RuPropisju.rublej(0, :ru, options_custom_formatter)
|
|
299
|
+
assert_equal "сто двадцать три рубля 00 копеек", RuPropisju.rublej(123, :ru, options_custom_formatter)
|
|
300
|
+
assert_equal "триста сорок три рубля 20 копеек", RuPropisju.rublej(343.20, :ru, options_custom_formatter)
|
|
301
|
+
|
|
302
|
+
assert_equal "42 копейки", RuPropisju.rublej(0.4187, :ru, options_custom_formatter)
|
|
303
|
+
assert_equal "триста тридцать два рубля 00 копеек", RuPropisju.rublej(331.995, :ru, options_custom_formatter)
|
|
304
|
+
assert_equal "один рубль 00 копеек", RuPropisju.rubl(1, :ru, options_custom_formatter)
|
|
305
|
+
assert_equal "три рубля 14 копеек", RuPropisju.rublja(3.14, :ru, options_custom_formatter)
|
|
306
|
+
assert_equal "три рубля 02 копейки", RuPropisju.rublja(3.02, :ru, options_custom_formatter)
|
|
307
|
+
assert_equal "одна тысяча рублей 00 копеек", RuPropisju.rublja(1000, :ru, options_custom_formatter)
|
|
308
|
+
|
|
309
|
+
assert_equal "+1 000 рублей 00 копеек", RuPropisju.digit_rublej(1000, :ru, options_custom_formatter)
|
|
310
|
+
assert_equal "+1 000 рублей 00 копеек", RuPropisju.digit_rublej(1000.0, :ru, options_custom_formatter)
|
|
311
|
+
assert_equal "+345 рублей 02 копейки", RuPropisju.digit_rublej(345.02, :ru, options_custom_formatter)
|
|
312
|
+
|
|
313
|
+
assert_equal "триста тридцять дві гривні 00 копійок", RuPropisju.griven(331.995, :ua, options_custom_formatter)
|
|
314
|
+
assert_equal "три тенге 00 тиынов", RuPropisju.tenge(3, :ru, options_custom_formatter)
|
|
315
|
+
assert_equal "триста сорок пять долларов два цента", RuPropisju.dollarov(345.02, :ru, options_custom_formatter)
|
|
316
|
+
assert_equal "три доллара 00 центов", RuPropisju.dollarov(3, :ru, options_custom_formatter)
|
|
317
|
+
assert_equal "три евро 00 центов", RuPropisju.evro(3, :ru, options_custom_formatter)
|
|
318
|
+
end
|
|
319
|
+
|
|
320
|
+
def test_rublej
|
|
321
|
+
assert_equal "ноль рублей 0 копеек", RuPropisju.rublej(0)
|
|
322
|
+
assert_equal "сто двадцать три рубля", RuPropisju.rublej(123)
|
|
323
|
+
assert_equal "триста сорок три рубля 20 копеек", RuPropisju.rublej(343.20)
|
|
324
|
+
assert_equal "42 копейки", RuPropisju.rublej(0.4187)
|
|
325
|
+
assert_equal "триста тридцать два рубля", RuPropisju.rublej(331.995)
|
|
326
|
+
assert_equal "один рубль", RuPropisju.rubl(1)
|
|
327
|
+
assert_equal "три рубля 14 копеек", RuPropisju.rublja(3.14)
|
|
328
|
+
assert_equal "три рубля 2 копейки", RuPropisju.rublja(3.02)
|
|
329
|
+
assert_equal "одна тысяча рублей", RuPropisju.rublja(1000)
|
|
330
|
+
assert_equal "одна тысяча рублей", RuPropisju.rublja(1000)
|
|
331
|
+
assert_equal "1000 рублей", RuPropisju.digit_rublej(1000)
|
|
332
|
+
assert_equal "345 рублей 2 копейки", RuPropisju.digit_rublej(345.02)
|
|
333
|
+
|
|
334
|
+
# ru locale предложный падеж
|
|
335
|
+
assert_equal "нуле рублях 0 копейках", RuPropisju.rublej(0, :ru_in)
|
|
336
|
+
assert_equal "ста двадцати трёх рублях", RuPropisju.rublej(123, :ru_in)
|
|
337
|
+
assert_equal "трёхстах сорока трёх рублях 20 копейках", RuPropisju.rublej(343.20, :ru_in)
|
|
338
|
+
assert_equal "42 копейках", RuPropisju.rublej(0.4187, :ru_in)
|
|
339
|
+
assert_equal "трёхстах тридцати двух рублях", RuPropisju.rublej(331.995, :ru_in)
|
|
340
|
+
assert_equal "одном рубле", RuPropisju.rubl(1, :ru_in)
|
|
341
|
+
assert_equal "трёх рублях 14 копейках", RuPropisju.rublja(3.14, :ru_in)
|
|
342
|
+
|
|
343
|
+
# ru locale родительный падеж
|
|
344
|
+
assert_equal 'нуля рублей 0 копеек', RuPropisju.rublej(0, :ru_gen)
|
|
345
|
+
assert_equal 'ста двадцати трёх рублей', RuPropisju.rublej(123, :ru_gen)
|
|
346
|
+
assert_equal 'трёхсот сорока трёх рублей 20 копеек', RuPropisju.rublej(343.20, :ru_gen)
|
|
347
|
+
assert_equal '42 копеек', RuPropisju.rublej(0.4187, :ru_gen)
|
|
348
|
+
assert_equal 'трёхсот тридцати двух рублей', RuPropisju.rublej(331.995, :ru_gen)
|
|
349
|
+
assert_equal 'одного рубля', RuPropisju.rubl(1, :ru_gen)
|
|
350
|
+
assert_equal 'трёх рублей 14 копеек', RuPropisju.rublja(3.14, :ru_gen)
|
|
351
|
+
|
|
352
|
+
# ru locale творительный падеж
|
|
353
|
+
assert_equal "нулём рублями 0 копейками", RuPropisju.rublej(0, :ru_from)
|
|
354
|
+
assert_equal "ста двадцатью тремя рублями", RuPropisju.rublej(123, :ru_from)
|
|
355
|
+
assert_equal "тремястами сорока тремя рублями 20 копейками", RuPropisju.rublej(343.20, :ru_from)
|
|
356
|
+
assert_equal "42 копейками", RuPropisju.rublej(0.4187, :ru_from)
|
|
357
|
+
assert_equal "тремястами тридцатью двумя рублями", RuPropisju.rublej(331.995, :ru_from)
|
|
358
|
+
assert_equal "одним рублём", RuPropisju.rubl(1, :ru_from)
|
|
359
|
+
assert_equal "тремя рублями 14 копейками", RuPropisju.rublja(3.14, :ru_from)
|
|
360
|
+
|
|
361
|
+
# ua locale
|
|
362
|
+
assert_equal "сто двадцять три рубля", RuPropisju.rublej(123, :ua)
|
|
363
|
+
assert_equal "триста сорок три рубля 20 копійок", RuPropisju.rublej(343.20, :ua)
|
|
364
|
+
assert_equal "42 копійки", RuPropisju.rublej(0.4187, :ua)
|
|
365
|
+
assert_equal "триста тридцять два рубля", RuPropisju.rublej(331.995, :ua)
|
|
366
|
+
assert_equal "один рубль", RuPropisju.rubl(1, :ua)
|
|
367
|
+
assert_equal "три рубля 14 копійок", RuPropisju.rublja(3.14, :ua)
|
|
368
|
+
end
|
|
369
|
+
|
|
370
|
+
def test_griven
|
|
371
|
+
assert_equal "сто двадцать три гривны", RuPropisju.griven(123)
|
|
372
|
+
assert_equal "сто двадцать четыре гривны", RuPropisju.griven(124)
|
|
373
|
+
assert_equal "триста сорок три гривны двадцать копеек", RuPropisju.griven(343.20)
|
|
374
|
+
assert_equal "сорок две копейки", RuPropisju.griven(0.4187)
|
|
375
|
+
assert_equal "триста тридцать две гривны", RuPropisju.griven(331.995)
|
|
376
|
+
assert_equal "одна гривна", RuPropisju.grivna(1)
|
|
377
|
+
assert_equal "три гривны четырнадцать копеек", RuPropisju.grivny(3.14)
|
|
378
|
+
assert_equal "ноль гривен ноль копеек", RuPropisju.griven(0)
|
|
379
|
+
|
|
380
|
+
# ru locale предложный падеж
|
|
381
|
+
assert_equal "ста двадцати трёх гривнах", RuPropisju.griven(123, :ru_in)
|
|
382
|
+
assert_equal "ста двадцати четырёх гривнах", RuPropisju.griven(124, :ru_in)
|
|
383
|
+
assert_equal "трёхстах сорока трёх гривнах двадцати копейках", RuPropisju.griven(343.20, :ru_in)
|
|
384
|
+
assert_equal "сорока двух копейках", RuPropisju.griven(0.4187, :ru_in)
|
|
385
|
+
assert_equal "трёхстах тридцати двух гривнах", RuPropisju.griven(331.995, :ru_in)
|
|
386
|
+
assert_equal "одной гривне", RuPropisju.grivna(1, :ru_in)
|
|
387
|
+
assert_equal "трёх гривнах четырнадцати копейках", RuPropisju.grivny(3.14, :ru_in)
|
|
388
|
+
assert_equal "нуле гривнах нуле копейках", RuPropisju.griven(0, :ru_in)
|
|
389
|
+
|
|
390
|
+
# ru locale родительный падеж
|
|
391
|
+
assert_equal 'ста двадцати трёх гривен', RuPropisju.griven(123, :ru_gen)
|
|
392
|
+
assert_equal 'ста двадцати четырёх гривен', RuPropisju.griven(124, :ru_gen)
|
|
393
|
+
assert_equal 'трёхсот сорока трёх гривен двадцати копеек', RuPropisju.griven(343.20, :ru_gen)
|
|
394
|
+
assert_equal 'сорока двух копеек', RuPropisju.griven(0.4187, :ru_gen)
|
|
395
|
+
assert_equal 'трёхсот тридцати двух гривен', RuPropisju.griven(331.995, :ru_gen)
|
|
396
|
+
assert_equal 'одной гривны', RuPropisju.grivna(1, :ru_gen)
|
|
397
|
+
assert_equal 'трёх гривен четырнадцати копеек', RuPropisju.grivny(3.14, :ru_gen)
|
|
398
|
+
assert_equal 'нуля гривен нуля копеек', RuPropisju.griven(0, :ru_gen)
|
|
399
|
+
|
|
400
|
+
# ru locale творительный падеж
|
|
401
|
+
assert_equal "ста двадцатью тремя гривнами", RuPropisju.griven(123, :ru_from)
|
|
402
|
+
assert_equal "ста двадцатью четырьмя гривнами", RuPropisju.griven(124, :ru_from)
|
|
403
|
+
assert_equal "тремястами сорока тремя гривнами двадцатью копейками", RuPropisju.griven(343.20, :ru_from)
|
|
404
|
+
assert_equal "сорока двумя копейками", RuPropisju.griven(0.4187, :ru_from)
|
|
405
|
+
assert_equal "тремястами тридцатью двумя гривнами", RuPropisju.griven(331.995, :ru_from)
|
|
406
|
+
assert_equal "одной гривной", RuPropisju.grivna(1, :ru_from)
|
|
407
|
+
assert_equal "тремя гривнами четырнадцатью копейками", RuPropisju.grivny(3.14, :ru_from)
|
|
408
|
+
assert_equal "нулём гривнами нулём копейками", RuPropisju.griven(0, :ru_from)
|
|
409
|
+
|
|
410
|
+
# ua locale
|
|
411
|
+
assert_equal "сто двадцять три гривні", RuPropisju.griven(123, :ua)
|
|
412
|
+
assert_equal "сто двадцять чотири гривні", RuPropisju.griven(124, :ua)
|
|
413
|
+
assert_equal "триста сорок три гривні двадцять копійок", RuPropisju.griven(343.20, :ua)
|
|
414
|
+
assert_equal "сорок дві копійки", RuPropisju.griven(0.4187, :ua)
|
|
415
|
+
assert_equal "триста тридцять дві гривні", RuPropisju.griven(331.995, :ua)
|
|
416
|
+
assert_equal "одна гривня", RuPropisju.grivna(1, :ua)
|
|
417
|
+
assert_equal "три гривні чотирнадцять копійок", RuPropisju.grivny(3.14, :ua)
|
|
418
|
+
assert_equal "нуль гривень нуль копійок", RuPropisju.griven(0, :ua)
|
|
419
|
+
end
|
|
420
|
+
|
|
421
|
+
def test_tenge
|
|
422
|
+
assert_equal "сто двадцать три тенге", RuPropisju.tenge(123)
|
|
423
|
+
assert_equal "сто двадцать четыре тенге", RuPropisju.tenge(124)
|
|
424
|
+
assert_equal "триста сорок три тенге двадцать тиынов", RuPropisju.tenge(343.20)
|
|
425
|
+
assert_equal "сорок два тиына", RuPropisju.tenge(0.4187)
|
|
426
|
+
assert_equal "триста тридцать два тенге", RuPropisju.tenge(331.995)
|
|
427
|
+
assert_equal "триста тридцать один тенге девяносто девять тиынов", RuPropisju.tenge(331.985)
|
|
428
|
+
assert_equal "один тенге", RuPropisju.tenge(1)
|
|
429
|
+
assert_equal "три тенге четырнадцать тиынов", RuPropisju.tenge(3.14)
|
|
430
|
+
assert_equal "ноль тенге ноль тиынов", RuPropisju.tenge(0)
|
|
431
|
+
|
|
432
|
+
# ru locale предложный падеж
|
|
433
|
+
assert_equal "ста двадцати трёх тенге", RuPropisju.tenge(123, :ru_in)
|
|
434
|
+
assert_equal "ста двадцати четырёх тенге", RuPropisju.tenge(124, :ru_in)
|
|
435
|
+
assert_equal "трёхстах сорока трёх тенге двадцати тиынах", RuPropisju.tenge(343.20, :ru_in)
|
|
436
|
+
assert_equal "сорока двух тиынах", RuPropisju.tenge(0.4187, :ru_in)
|
|
437
|
+
assert_equal "трёхстах тридцати двух тенге", RuPropisju.tenge(331.995, :ru_in)
|
|
438
|
+
assert_equal "трёхстах тридцати одном тенге девяноста девяти тиынах", RuPropisju.tenge(331.985, :ru_in)
|
|
439
|
+
assert_equal "одном тенге", RuPropisju.tenge(1, :ru_in)
|
|
440
|
+
assert_equal "трёх тенге четырнадцати тиынах", RuPropisju.tenge(3.14, :ru_in)
|
|
441
|
+
assert_equal "нуле тенге нуле тиынах", RuPropisju.tenge(0, :ru_in)
|
|
442
|
+
|
|
443
|
+
# ru locale родительный падеж
|
|
444
|
+
assert_equal 'ста двадцати трёх тенге', RuPropisju.tenge(123, :ru_gen)
|
|
445
|
+
assert_equal 'ста двадцати четырёх тенге', RuPropisju.tenge(124, :ru_gen)
|
|
446
|
+
assert_equal 'трёхсот сорока трёх тенге двадцати тиынов', RuPropisju.tenge(343.20, :ru_gen)
|
|
447
|
+
assert_equal 'сорока двух тиынов', RuPropisju.tenge(0.4187, :ru_gen)
|
|
448
|
+
assert_equal 'трёхсот тридцати двух тенге', RuPropisju.tenge(331.995, :ru_gen)
|
|
449
|
+
assert_equal 'трёхсот тридцати одного тенге девяноста девяти тиынов', RuPropisju.tenge(331.985, :ru_gen)
|
|
450
|
+
assert_equal 'одного тенге', RuPropisju.tenge(1, :ru_gen)
|
|
451
|
+
assert_equal 'трёх тенге четырнадцати тиынов', RuPropisju.tenge(3.14, :ru_gen)
|
|
452
|
+
assert_equal 'нуля тенге нуля тиынов', RuPropisju.tenge(0, :ru_gen)
|
|
453
|
+
|
|
454
|
+
# ru locale творительный падеж
|
|
455
|
+
assert_equal "ста двадцатью тремя тенге", RuPropisju.tenge(123, :ru_from)
|
|
456
|
+
assert_equal "ста двадцатью четырьмя тенге", RuPropisju.tenge(124, :ru_from)
|
|
457
|
+
assert_equal "тремястами сорока тремя тенге двадцатью тиынами", RuPropisju.tenge(343.20, :ru_from)
|
|
458
|
+
assert_equal "сорока двумя тиынами", RuPropisju.tenge(0.4187, :ru_from)
|
|
459
|
+
assert_equal "тремястами тридцатью двумя тенге", RuPropisju.tenge(331.995, :ru_from)
|
|
460
|
+
assert_equal "тремястами тридцатью одним тенге девяноста девятью тиынами", RuPropisju.tenge(331.985, :ru_from)
|
|
461
|
+
assert_equal "одним тенге", RuPropisju.tenge(1, :ru_from)
|
|
462
|
+
assert_equal "тремя тенге четырнадцатью тиынами", RuPropisju.tenge(3.14, :ru_from)
|
|
463
|
+
assert_equal "нулём тенге нулём тиынами", RuPropisju.tenge(0, :ru_from)
|
|
464
|
+
|
|
465
|
+
# ua locale
|
|
466
|
+
assert_equal "сто двадцять три тенге", RuPropisju.tenge(123, :ua)
|
|
467
|
+
assert_equal "триста сорок три тенге двадцять тиынов", RuPropisju.tenge(343.20, :ua)
|
|
468
|
+
assert_equal "сорок два тиына", RuPropisju.tenge(0.4187, :ua)
|
|
469
|
+
assert_equal "триста тридцять два тенге", RuPropisju.tenge(331.995, :ua)
|
|
470
|
+
assert_equal "один тенге", RuPropisju.tenge(1, :ua)
|
|
471
|
+
assert_equal "три тенге чотирнадцять тиынов", RuPropisju.tenge(3.14, :ua)
|
|
472
|
+
end
|
|
473
|
+
|
|
474
|
+
def test_kopeek
|
|
475
|
+
assert_equal "ноль рублей 0 копеек", RuPropisju.kopeek(0)
|
|
476
|
+
assert_equal "сто двадцать три рубля", RuPropisju.kopeek(12300)
|
|
477
|
+
assert_equal "три рубля 14 копеек", RuPropisju.kopeek(314)
|
|
478
|
+
assert_equal "32 копейки", RuPropisju.kopeek(32)
|
|
479
|
+
assert_equal "21 копейка", RuPropisju.kopeika(21)
|
|
480
|
+
assert_equal "3 копейки", RuPropisju.kopeiki(3)
|
|
481
|
+
|
|
482
|
+
# ru locale предложный падеж
|
|
483
|
+
assert_equal "нуле рублях 0 копейках", RuPropisju.kopeek(0, :ru_in)
|
|
484
|
+
assert_equal "ста двадцати трёх рублях", RuPropisju.kopeek(12300, :ru_in)
|
|
485
|
+
assert_equal "трёх рублях 14 копейках", RuPropisju.kopeek(314, :ru_in)
|
|
486
|
+
assert_equal "32 копейках", RuPropisju.kopeek(32, :ru_in)
|
|
487
|
+
assert_equal "21 копейке", RuPropisju.kopeika(21, :ru_in)
|
|
488
|
+
assert_equal "3 копейках", RuPropisju.kopeiki(3, :ru_in)
|
|
489
|
+
|
|
490
|
+
# ru locale родительный падеж
|
|
491
|
+
assert_equal 'нуля рублей 0 копеек', RuPropisju.kopeek(0, :ru_gen)
|
|
492
|
+
assert_equal 'ста двадцати трёх рублей', RuPropisju.kopeek(12300, :ru_gen)
|
|
493
|
+
assert_equal 'трёх рублей 14 копеек', RuPropisju.kopeek(314, :ru_gen)
|
|
494
|
+
assert_equal '32 копеек', RuPropisju.kopeek(32, :ru_gen)
|
|
495
|
+
assert_equal '21 копейки', RuPropisju.kopeika(21, :ru_gen)
|
|
496
|
+
assert_equal '3 копеек', RuPropisju.kopeiki(3, :ru_gen)
|
|
497
|
+
|
|
498
|
+
# ru locale творительный падеж
|
|
499
|
+
assert_equal "нулём рублями 0 копейками", RuPropisju.kopeek(0, :ru_from)
|
|
500
|
+
assert_equal "ста двадцатью тремя рублями", RuPropisju.kopeek(12300, :ru_from)
|
|
501
|
+
assert_equal "тремя рублями 14 копейками", RuPropisju.kopeek(314, :ru_from)
|
|
502
|
+
assert_equal "32 копейками", RuPropisju.kopeek(32, :ru_from)
|
|
503
|
+
assert_equal "21 копейкой", RuPropisju.kopeika(21, :ru_from)
|
|
504
|
+
assert_equal "3 копейками", RuPropisju.kopeiki(3, :ru_from)
|
|
505
|
+
|
|
506
|
+
# ua locale
|
|
507
|
+
assert_equal "сто двадцять три рубля", RuPropisju.kopeek(12300, :ua)
|
|
508
|
+
assert_equal "три рубля 14 копійок", RuPropisju.kopeek(314, :ua)
|
|
509
|
+
assert_equal "32 копійки", RuPropisju.kopeek(32, :ua)
|
|
510
|
+
assert_equal "21 копійка", RuPropisju.kopeika(21, :ua)
|
|
511
|
+
assert_equal "3 копійки", RuPropisju.kopeiki(3, :ua)
|
|
512
|
+
end
|
|
513
|
+
end
|