brdinheiro-lite 0.0.1
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.
- data/CHANGELOG +1 -0
- data/MIT-LICENSE +20 -0
- data/README +3 -0
- data/Rakefile +66 -0
- data/lib/brdinheiro_lite/dinheiro.rb +286 -0
- data/lib/brdinheiro_lite/dinheiro_util.rb +51 -0
- data/lib/brdinheiro_lite/excecoes.rb +13 -0
- data/lib/brdinheiro_lite/extenso.rb +101 -0
- data/lib/brdinheiro_lite/extenso_real.rb +60 -0
- data/lib/brdinheiro_lite/nil_class.rb +24 -0
- data/lib/brdinheiro_lite/version.rb +9 -0
- data/lib/brdinheiro_lite.rb +19 -0
- data/test/dinheiro_test.rb +496 -0
- data/test/extenso_test.rb +356 -0
- data/test/nil_class_test.rb +29 -0
- data/test/test_helper.rb +22 -0
- metadata +74 -0
@@ -0,0 +1,356 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require File.dirname(__FILE__) + '/test_helper'
|
3
|
+
|
4
|
+
class NumberTest < Test::Unit::TestCase
|
5
|
+
def test_unidades
|
6
|
+
assert_equal 'zero', 0.por_extenso
|
7
|
+
assert_equal 'um', 1.por_extenso
|
8
|
+
assert_equal 'dois', 2.por_extenso
|
9
|
+
assert_equal 'três', 3.por_extenso
|
10
|
+
assert_equal 'quatro', 4.por_extenso
|
11
|
+
assert_equal 'cinco', 5.por_extenso
|
12
|
+
assert_equal 'seis', 6.por_extenso
|
13
|
+
assert_equal 'sete', 7.por_extenso
|
14
|
+
assert_equal 'oito', 8.por_extenso
|
15
|
+
assert_equal 'nove', 9.por_extenso
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_dezenas
|
19
|
+
assert_equal 'dez', 10.por_extenso
|
20
|
+
assert_equal 'onze', 11.por_extenso
|
21
|
+
assert_equal 'doze', 12.por_extenso
|
22
|
+
assert_equal 'treze', 13.por_extenso
|
23
|
+
assert_equal 'quatorze', 14.por_extenso
|
24
|
+
assert_equal 'quinze', 15.por_extenso
|
25
|
+
assert_equal 'dezesseis', 16.por_extenso
|
26
|
+
assert_equal 'dezessete', 17.por_extenso
|
27
|
+
assert_equal 'dezoito', 18.por_extenso
|
28
|
+
assert_equal 'dezenove', 19.por_extenso
|
29
|
+
assert_equal 'vinte', 20.por_extenso
|
30
|
+
assert_equal 'trinta', 30.por_extenso
|
31
|
+
assert_equal 'quarenta', 40.por_extenso
|
32
|
+
assert_equal 'cinquenta', 50.por_extenso
|
33
|
+
assert_equal 'sessenta', 60.por_extenso
|
34
|
+
assert_equal 'setenta', 70.por_extenso
|
35
|
+
assert_equal 'oitenta', 80.por_extenso
|
36
|
+
assert_equal 'noventa', 90.por_extenso
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_dezenas_com_unidades
|
40
|
+
assert_equal 'vinte e um', 21.por_extenso
|
41
|
+
assert_equal 'trinta e dois', 32.por_extenso
|
42
|
+
assert_equal 'quarenta e três', 43.por_extenso
|
43
|
+
assert_equal 'cinquenta e quatro', 54.por_extenso
|
44
|
+
assert_equal 'sessenta e cinco', 65.por_extenso
|
45
|
+
assert_equal 'setenta e seis', 76.por_extenso
|
46
|
+
assert_equal 'oitenta e sete', 87.por_extenso
|
47
|
+
assert_equal 'noventa e oito', 98.por_extenso
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_centenas
|
51
|
+
assert_equal 'cem', 100.por_extenso
|
52
|
+
assert_equal 'duzentos', 200.por_extenso
|
53
|
+
assert_equal 'trezentos', 300.por_extenso
|
54
|
+
assert_equal 'quatrocentos', 400.por_extenso
|
55
|
+
assert_equal 'quinhentos', 500.por_extenso
|
56
|
+
assert_equal 'seiscentos', 600.por_extenso
|
57
|
+
assert_equal 'setecentos', 700.por_extenso
|
58
|
+
assert_equal 'oitocentos', 800.por_extenso
|
59
|
+
assert_equal 'novecentos', 900.por_extenso
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_centenas_com_dezenas_e_unidades
|
63
|
+
assert_equal 'cento e um', 101.por_extenso
|
64
|
+
assert_equal 'cento e dez', 110.por_extenso
|
65
|
+
assert_equal 'cento e onze', 111.por_extenso
|
66
|
+
|
67
|
+
assert_equal 'duzentos e dois', 202.por_extenso
|
68
|
+
assert_equal 'duzentos e vinte', 220.por_extenso
|
69
|
+
assert_equal 'duzentos e vinte e dois', 222.por_extenso
|
70
|
+
|
71
|
+
assert_equal 'trezentos e três', 303.por_extenso
|
72
|
+
assert_equal 'trezentos e trinta', 330.por_extenso
|
73
|
+
assert_equal 'trezentos e trinta e três', 333.por_extenso
|
74
|
+
|
75
|
+
assert_equal 'quatrocentos e quatro', 404.por_extenso
|
76
|
+
assert_equal 'quatrocentos e quarenta', 440.por_extenso
|
77
|
+
assert_equal 'quatrocentos e quarenta e quatro', 444.por_extenso
|
78
|
+
|
79
|
+
assert_equal 'quinhentos e cinco', 505.por_extenso
|
80
|
+
assert_equal 'quinhentos e cinquenta', 550.por_extenso
|
81
|
+
assert_equal 'quinhentos e cinquenta e cinco', 555.por_extenso
|
82
|
+
|
83
|
+
assert_equal 'seiscentos e seis', 606.por_extenso
|
84
|
+
assert_equal 'seiscentos e sessenta', 660.por_extenso
|
85
|
+
assert_equal 'seiscentos e sessenta e seis', 666.por_extenso
|
86
|
+
|
87
|
+
assert_equal 'setecentos e sete', 707.por_extenso
|
88
|
+
assert_equal 'setecentos e setenta', 770.por_extenso
|
89
|
+
assert_equal 'setecentos e setenta e sete', 777.por_extenso
|
90
|
+
|
91
|
+
assert_equal 'oitocentos e oito', 808.por_extenso
|
92
|
+
assert_equal 'oitocentos e oitenta', 880.por_extenso
|
93
|
+
assert_equal 'oitocentos e oitenta e oito', 888.por_extenso
|
94
|
+
|
95
|
+
assert_equal 'novecentos e nove', 909.por_extenso
|
96
|
+
assert_equal 'novecentos e noventa', 990.por_extenso
|
97
|
+
assert_equal 'novecentos e noventa e nove', 999.por_extenso
|
98
|
+
end
|
99
|
+
|
100
|
+
def test_mil
|
101
|
+
assert_equal 'um mil', 1_000.por_extenso
|
102
|
+
assert_equal 'um mil e um', 1_001.por_extenso
|
103
|
+
assert_equal 'um mil e dez', 1_010.por_extenso
|
104
|
+
assert_equal 'um mil e onze', 1_011.por_extenso
|
105
|
+
assert_equal 'um mil e cem', 1_100.por_extenso
|
106
|
+
assert_equal 'um mil e cento e um', 1_101.por_extenso
|
107
|
+
assert_equal 'um mil e cento e dez', 1_110.por_extenso
|
108
|
+
assert_equal 'um mil e cento e onze', 1_111.por_extenso
|
109
|
+
assert_equal 'dez mil', 10_000.por_extenso
|
110
|
+
assert_equal 'cem mil', 100_000.por_extenso
|
111
|
+
assert_equal 'cento e dez mil', 110_000.por_extenso
|
112
|
+
end
|
113
|
+
|
114
|
+
def test_milhao
|
115
|
+
assert_equal 'um milhão', 1_000_000.por_extenso
|
116
|
+
assert_equal 'um milhão e um mil e um', 1_001_001.por_extenso
|
117
|
+
assert_equal 'um milhão e dez mil e dez', 1_010_010.por_extenso
|
118
|
+
assert_equal 'um milhão e onze mil e onze', 1_011_011.por_extenso
|
119
|
+
assert_equal 'um milhão e cem mil e cem', 1_100_100.por_extenso
|
120
|
+
assert_equal 'um milhão e cento e um mil e cento e um', 1_101_101.por_extenso
|
121
|
+
assert_equal 'um milhão e cento e dez mil e cento e dez', 1_110_110.por_extenso
|
122
|
+
assert_equal 'um milhão e cento e onze mil e cento e onze', 1_111_111.por_extenso
|
123
|
+
assert_equal 'dez milhões', 10_000_000.por_extenso
|
124
|
+
assert_equal 'cem milhões', 100_000_000.por_extenso
|
125
|
+
assert_equal 'cento e dez milhões', 110_000_000.por_extenso
|
126
|
+
end
|
127
|
+
|
128
|
+
def test_bilhao
|
129
|
+
assert_equal 'um bilhão', 1_000_000_000.por_extenso
|
130
|
+
assert_equal 'um bilhão e um milhão e um mil e um', 1_001_001_001.por_extenso
|
131
|
+
assert_equal 'um bilhão e dez milhões e dez mil e dez', 1_010_010_010.por_extenso
|
132
|
+
assert_equal 'um bilhão e onze milhões e onze mil e onze', 1_011_011_011.por_extenso
|
133
|
+
assert_equal 'um bilhão e cem milhões e cem mil e cem', 1_100_100_100.por_extenso
|
134
|
+
assert_equal 'um bilhão e cento e um milhões e cento e um mil e cento e um', 1_101_101_101.por_extenso
|
135
|
+
assert_equal 'um bilhão e cento e dez milhões e cento e dez mil e cento e dez', 1_110_110_110.por_extenso
|
136
|
+
assert_equal 'um bilhão e cento e onze milhões e cento e onze mil e cento e onze', 1_111_111_111.por_extenso
|
137
|
+
assert_equal 'dez bilhões', 10_000_000_000.por_extenso
|
138
|
+
assert_equal 'cem bilhões', 100_000_000_000.por_extenso
|
139
|
+
assert_equal 'cento e dez bilhões', 110_000_000_000.por_extenso
|
140
|
+
end
|
141
|
+
|
142
|
+
def test_trilhao
|
143
|
+
assert_equal 'um trilhão', 1_000_000_000_000.por_extenso
|
144
|
+
assert_equal 'um trilhão e um bilhão e um milhão e um mil e um', 1_001_001_001_001.por_extenso
|
145
|
+
assert_equal 'um trilhão e dez bilhões e dez milhões e dez mil e dez', 1_010_010_010_010.por_extenso
|
146
|
+
assert_equal 'um trilhão e onze bilhões e onze milhões e onze mil e onze', 1_011_011_011_011.por_extenso
|
147
|
+
assert_equal 'um trilhão e cem bilhões e cem milhões e cem mil e cem', 1_100_100_100_100.por_extenso
|
148
|
+
assert_equal 'um trilhão e cento e um bilhões e cento e um milhões e cento e um mil e cento e um', 1_101_101_101_101.por_extenso
|
149
|
+
assert_equal 'um trilhão e cento e dez bilhões e cento e dez milhões e cento e dez mil e cento e dez', 1_110_110_110_110.por_extenso
|
150
|
+
assert_equal 'um trilhão e cento e onze bilhões e cento e onze milhões e cento e onze mil e cento e onze', 1_111_111_111_111.por_extenso
|
151
|
+
assert_equal 'dez trilhões', 10_000_000_000_000.por_extenso
|
152
|
+
assert_equal 'cem trilhões', 100_000_000_000_000.por_extenso
|
153
|
+
assert_equal 'cento e dez trilhões', 110_000_000_000_000.por_extenso
|
154
|
+
end
|
155
|
+
|
156
|
+
def test_numero_maior_que_trilhao_eh_rejetaido
|
157
|
+
begin
|
158
|
+
1_000_000_000_000_000.por_extenso
|
159
|
+
raise "Deveria lançar RuntimeError com mensagem 'Valor excede o permitido'"
|
160
|
+
rescue RuntimeError => e
|
161
|
+
assert_equal RuntimeError, e.class
|
162
|
+
assert_equal 'Valor excede o permitido: 1000000000000000', e.message
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
def test_valores_em_real
|
167
|
+
assert_equal 'grátis', 0.por_extenso_em_reais
|
168
|
+
assert_equal 'um centavo', 0.01.por_extenso_em_reais
|
169
|
+
assert_equal 'dois centavos', 0.02.por_extenso_em_reais
|
170
|
+
assert_equal 'vinte e um centavos', 0.21.por_extenso_em_reais
|
171
|
+
assert_equal 'um real', 1.00.por_extenso_em_reais
|
172
|
+
assert_equal 'um real', 1.por_extenso_em_reais
|
173
|
+
assert_equal 'um real e um centavo', 1.01.por_extenso_em_reais
|
174
|
+
assert_equal 'um real e dois centavos', 1.02.por_extenso_em_reais
|
175
|
+
assert_equal 'um milhão de reais e um centavo', 1_000_000.01.por_extenso_em_reais
|
176
|
+
assert_equal 'dois milhões de reais e um centavo', 2_000_000.01.por_extenso_em_reais
|
177
|
+
assert_equal 'dois milhões e duzentos reais e um centavo', 2_000_200.01.por_extenso_em_reais
|
178
|
+
assert_equal 'um bilhão de reais e um centavo', 1_000_000_000.01.por_extenso_em_reais
|
179
|
+
assert_equal 'um trilhão de reais e um centavo', 1_000_000_000_000.01.por_extenso_em_reais
|
180
|
+
assert_equal 'cento e vinte e oito mil e duzentos e quarenta e três reais e vinte e oito centavos', 128_243.28.por_extenso_em_reais
|
181
|
+
assert_equal 'oitenta e dois mil e trezentos e oitenta e nove reais e dezenove centavos', 82_389.19.por_extenso_em_reais
|
182
|
+
assert_equal 'dois mil e trezentos e quarenta e sete reais e vinte e oito centavos', 2_347.28.por_extenso_em_reais
|
183
|
+
assert_equal 'noventa e dois mil e trezentos e setenta e dois reais e oitenta e seis centavos', 92_372.86.por_extenso_em_reais
|
184
|
+
end
|
185
|
+
|
186
|
+
def test_unidades_negativas
|
187
|
+
assert_equal 'zero', -0.por_extenso #Aha, tentou me pegar :)
|
188
|
+
assert_equal 'menos um', -1.por_extenso
|
189
|
+
assert_equal 'menos dois', -2.por_extenso
|
190
|
+
assert_equal 'menos três', -3.por_extenso
|
191
|
+
assert_equal 'menos quatro', -4.por_extenso
|
192
|
+
assert_equal 'menos cinco', -5.por_extenso
|
193
|
+
assert_equal 'menos seis', -6.por_extenso
|
194
|
+
assert_equal 'menos sete', -7.por_extenso
|
195
|
+
assert_equal 'menos oito', -8.por_extenso
|
196
|
+
assert_equal 'menos nove', -9.por_extenso
|
197
|
+
end
|
198
|
+
|
199
|
+
def test_dezenas_negativas
|
200
|
+
assert_equal 'menos dez', -10.por_extenso
|
201
|
+
assert_equal 'menos onze', -11.por_extenso
|
202
|
+
assert_equal 'menos doze', -12.por_extenso
|
203
|
+
assert_equal 'menos treze', -13.por_extenso
|
204
|
+
assert_equal 'menos quatorze', -14.por_extenso
|
205
|
+
assert_equal 'menos quinze', -15.por_extenso
|
206
|
+
assert_equal 'menos dezesseis', -16.por_extenso
|
207
|
+
assert_equal 'menos dezessete', -17.por_extenso
|
208
|
+
assert_equal 'menos dezoito', -18.por_extenso
|
209
|
+
assert_equal 'menos dezenove', -19.por_extenso
|
210
|
+
assert_equal 'menos vinte', -20.por_extenso
|
211
|
+
assert_equal 'menos trinta', -30.por_extenso
|
212
|
+
assert_equal 'menos quarenta', -40.por_extenso
|
213
|
+
assert_equal 'menos cinquenta', -50.por_extenso
|
214
|
+
assert_equal 'menos sessenta', -60.por_extenso
|
215
|
+
assert_equal 'menos setenta', -70.por_extenso
|
216
|
+
assert_equal 'menos oitenta', -80.por_extenso
|
217
|
+
assert_equal 'menos noventa', -90.por_extenso
|
218
|
+
end
|
219
|
+
|
220
|
+
def test_dezenas_com_unidades_negativas
|
221
|
+
assert_equal 'menos vinte e um', -21.por_extenso
|
222
|
+
assert_equal 'menos trinta e dois', -32.por_extenso
|
223
|
+
assert_equal 'menos quarenta e três', -43.por_extenso
|
224
|
+
assert_equal 'menos cinquenta e quatro', -54.por_extenso
|
225
|
+
assert_equal 'menos sessenta e cinco', -65.por_extenso
|
226
|
+
assert_equal 'menos setenta e seis', -76.por_extenso
|
227
|
+
assert_equal 'menos oitenta e sete', -87.por_extenso
|
228
|
+
assert_equal 'menos noventa e oito', -98.por_extenso
|
229
|
+
end
|
230
|
+
|
231
|
+
def test_centenas_negativas
|
232
|
+
assert_equal 'menos cem', -100.por_extenso
|
233
|
+
assert_equal 'menos duzentos', -200.por_extenso
|
234
|
+
assert_equal 'menos trezentos', -300.por_extenso
|
235
|
+
assert_equal 'menos quatrocentos', -400.por_extenso
|
236
|
+
assert_equal 'menos quinhentos', -500.por_extenso
|
237
|
+
assert_equal 'menos seiscentos', -600.por_extenso
|
238
|
+
assert_equal 'menos setecentos', -700.por_extenso
|
239
|
+
assert_equal 'menos oitocentos', -800.por_extenso
|
240
|
+
assert_equal 'menos novecentos', -900.por_extenso
|
241
|
+
end
|
242
|
+
|
243
|
+
def test_centenas_com_dezenas_e_unidades_negativas
|
244
|
+
assert_equal 'menos cento e um', -101.por_extenso
|
245
|
+
assert_equal 'menos cento e dez', -110.por_extenso
|
246
|
+
assert_equal 'menos cento e onze', -111.por_extenso
|
247
|
+
|
248
|
+
assert_equal 'menos duzentos e dois', -202.por_extenso
|
249
|
+
assert_equal 'menos duzentos e vinte', -220.por_extenso
|
250
|
+
assert_equal 'menos duzentos e vinte e dois', -222.por_extenso
|
251
|
+
|
252
|
+
assert_equal 'menos trezentos e três', -303.por_extenso
|
253
|
+
assert_equal 'menos trezentos e trinta', -330.por_extenso
|
254
|
+
assert_equal 'menos trezentos e trinta e três', -333.por_extenso
|
255
|
+
|
256
|
+
assert_equal 'menos quatrocentos e quatro', -404.por_extenso
|
257
|
+
assert_equal 'menos quatrocentos e quarenta', -440.por_extenso
|
258
|
+
assert_equal 'menos quatrocentos e quarenta e quatro', -444.por_extenso
|
259
|
+
|
260
|
+
assert_equal 'menos quinhentos e cinco', -505.por_extenso
|
261
|
+
assert_equal 'menos quinhentos e cinquenta', -550.por_extenso
|
262
|
+
assert_equal 'menos quinhentos e cinquenta e cinco', -555.por_extenso
|
263
|
+
|
264
|
+
assert_equal 'menos seiscentos e seis', -606.por_extenso
|
265
|
+
assert_equal 'menos seiscentos e sessenta', -660.por_extenso
|
266
|
+
assert_equal 'menos seiscentos e sessenta e seis', -666.por_extenso
|
267
|
+
|
268
|
+
assert_equal 'menos setecentos e sete', -707.por_extenso
|
269
|
+
assert_equal 'menos setecentos e setenta', -770.por_extenso
|
270
|
+
assert_equal 'menos setecentos e setenta e sete', -777.por_extenso
|
271
|
+
|
272
|
+
assert_equal 'menos oitocentos e oito', -808.por_extenso
|
273
|
+
assert_equal 'menos oitocentos e oitenta', -880.por_extenso
|
274
|
+
assert_equal 'menos oitocentos e oitenta e oito', -888.por_extenso
|
275
|
+
|
276
|
+
assert_equal 'menos novecentos e nove', -909.por_extenso
|
277
|
+
assert_equal 'menos novecentos e noventa', -990.por_extenso
|
278
|
+
assert_equal 'menos novecentos e noventa e nove', -999.por_extenso
|
279
|
+
end
|
280
|
+
|
281
|
+
def test_mil_negativo
|
282
|
+
assert_equal 'menos um mil', -1_000.por_extenso
|
283
|
+
assert_equal 'menos um mil e um', -1_001.por_extenso
|
284
|
+
assert_equal 'menos um mil e dez', -1_010.por_extenso
|
285
|
+
assert_equal 'menos um mil e onze', -1_011.por_extenso
|
286
|
+
assert_equal 'menos um mil e cem', -1_100.por_extenso
|
287
|
+
assert_equal 'menos um mil e cento e um', -1_101.por_extenso
|
288
|
+
assert_equal 'menos um mil e cento e dez', -1_110.por_extenso
|
289
|
+
assert_equal 'menos um mil e cento e onze', -1_111.por_extenso
|
290
|
+
assert_equal 'menos dez mil', -10_000.por_extenso
|
291
|
+
assert_equal 'menos cem mil', -100_000.por_extenso
|
292
|
+
assert_equal 'menos cento e dez mil', -110_000.por_extenso
|
293
|
+
end
|
294
|
+
|
295
|
+
def test_milhao_negativo
|
296
|
+
assert_equal 'menos um milhão', -1_000_000.por_extenso
|
297
|
+
assert_equal 'menos um milhão e um mil e um', -1_001_001.por_extenso
|
298
|
+
assert_equal 'menos um milhão e dez mil e dez', -1_010_010.por_extenso
|
299
|
+
assert_equal 'menos um milhão e onze mil e onze', -1_011_011.por_extenso
|
300
|
+
assert_equal 'menos um milhão e cem mil e cem', -1_100_100.por_extenso
|
301
|
+
assert_equal 'menos um milhão e cento e um mil e cento e um', -1_101_101.por_extenso
|
302
|
+
assert_equal 'menos um milhão e cento e dez mil e cento e dez', -1_110_110.por_extenso
|
303
|
+
assert_equal 'menos um milhão e cento e onze mil e cento e onze', -1_111_111.por_extenso
|
304
|
+
assert_equal 'menos dez milhões', -10_000_000.por_extenso
|
305
|
+
assert_equal 'menos cem milhões', -100_000_000.por_extenso
|
306
|
+
assert_equal 'menos cento e dez milhões', -110_000_000.por_extenso
|
307
|
+
end
|
308
|
+
|
309
|
+
def test_bilhao_negativo
|
310
|
+
assert_equal 'menos um bilhão', -1_000_000_000.por_extenso
|
311
|
+
assert_equal 'menos um bilhão e um milhão e um mil e um', -1_001_001_001.por_extenso
|
312
|
+
assert_equal 'menos um bilhão e dez milhões e dez mil e dez', -1_010_010_010.por_extenso
|
313
|
+
assert_equal 'menos um bilhão e onze milhões e onze mil e onze', -1_011_011_011.por_extenso
|
314
|
+
assert_equal 'menos um bilhão e cem milhões e cem mil e cem', -1_100_100_100.por_extenso
|
315
|
+
assert_equal 'menos um bilhão e cento e um milhões e cento e um mil e cento e um', -1_101_101_101.por_extenso
|
316
|
+
assert_equal 'menos um bilhão e cento e dez milhões e cento e dez mil e cento e dez', -1_110_110_110.por_extenso
|
317
|
+
assert_equal 'menos um bilhão e cento e onze milhões e cento e onze mil e cento e onze', -1_111_111_111.por_extenso
|
318
|
+
assert_equal 'menos dez bilhões', -10_000_000_000.por_extenso
|
319
|
+
assert_equal 'menos cem bilhões', -100_000_000_000.por_extenso
|
320
|
+
assert_equal 'menos cento e dez bilhões', -110_000_000_000.por_extenso
|
321
|
+
end
|
322
|
+
|
323
|
+
def test_trilhao_negativo
|
324
|
+
assert_equal 'menos um trilhão', -1_000_000_000_000.por_extenso
|
325
|
+
assert_equal 'menos um trilhão e um bilhão e um milhão e um mil e um', -1_001_001_001_001.por_extenso
|
326
|
+
assert_equal 'menos um trilhão e dez bilhões e dez milhões e dez mil e dez', -1_010_010_010_010.por_extenso
|
327
|
+
assert_equal 'menos um trilhão e onze bilhões e onze milhões e onze mil e onze', -1_011_011_011_011.por_extenso
|
328
|
+
assert_equal 'menos um trilhão e cem bilhões e cem milhões e cem mil e cem', -1_100_100_100_100.por_extenso
|
329
|
+
assert_equal 'menos um trilhão e cento e um bilhões e cento e um milhões e cento e um mil e cento e um', -1_101_101_101_101.por_extenso
|
330
|
+
assert_equal 'menos um trilhão e cento e dez bilhões e cento e dez milhões e cento e dez mil e cento e dez', -1_110_110_110_110.por_extenso
|
331
|
+
assert_equal 'menos um trilhão e cento e onze bilhões e cento e onze milhões e cento e onze mil e cento e onze', -1_111_111_111_111.por_extenso
|
332
|
+
assert_equal 'menos dez trilhões', -10_000_000_000_000.por_extenso
|
333
|
+
assert_equal 'menos cem trilhões', -100_000_000_000_000.por_extenso
|
334
|
+
assert_equal 'menos cento e dez trilhões', -110_000_000_000_000.por_extenso
|
335
|
+
end
|
336
|
+
|
337
|
+
def test_valores_em_real_negativos
|
338
|
+
assert_equal 'grátis', -0.por_extenso_em_reais #grátis é grátis
|
339
|
+
assert_equal 'um centavo negativo', -0.01.por_extenso_em_reais
|
340
|
+
assert_equal 'dois centavos negativos', -0.02.por_extenso_em_reais
|
341
|
+
assert_equal 'vinte e um centavos negativos', -0.21.por_extenso_em_reais
|
342
|
+
assert_equal 'um real negativo', -1.00.por_extenso_em_reais
|
343
|
+
assert_equal 'um real negativo', -1.por_extenso_em_reais
|
344
|
+
assert_equal 'um real e um centavo negativos', -1.01.por_extenso_em_reais
|
345
|
+
assert_equal 'um real e dois centavos negativos', -1.02.por_extenso_em_reais
|
346
|
+
assert_equal 'um milhão de reais e um centavo negativos', -1_000_000.01.por_extenso_em_reais
|
347
|
+
assert_equal 'dois milhões de reais e um centavo negativos', -2_000_000.01.por_extenso_em_reais
|
348
|
+
assert_equal 'dois milhões e duzentos reais e um centavo negativos', -2_000_200.01.por_extenso_em_reais
|
349
|
+
assert_equal 'um bilhão de reais e um centavo negativos', -1_000_000_000.01.por_extenso_em_reais
|
350
|
+
assert_equal 'um trilhão de reais e um centavo negativos', -1_000_000_000_000.01.por_extenso_em_reais
|
351
|
+
assert_equal 'cento e vinte e oito mil e duzentos e quarenta e três reais e vinte e oito centavos negativos', -128_243.28.por_extenso_em_reais
|
352
|
+
assert_equal 'oitenta e dois mil e trezentos e oitenta e nove reais e dezenove centavos negativos', -82_389.19.por_extenso_em_reais
|
353
|
+
assert_equal 'dois mil e trezentos e quarenta e sete reais e vinte e oito centavos negativos', -2_347.28.por_extenso_em_reais
|
354
|
+
assert_equal 'noventa e dois mil e trezentos e setenta e dois reais e oitenta e seis centavos negativos', -92_372.86.por_extenso_em_reais
|
355
|
+
end
|
356
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
2
|
+
|
3
|
+
class NilClassTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_real
|
6
|
+
assert_equal Dinheiro.new(0), nil.real
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_reais
|
10
|
+
assert_equal Dinheiro.new(0), nil.reais
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_para_dinheiro
|
14
|
+
assert_equal Dinheiro.new(0), nil.para_dinheiro
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_valor
|
18
|
+
assert_equal Dinheiro.new(0), nil.valor
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_contabil
|
22
|
+
assert_equal "0,00", nil.contabil
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require File.dirname(__FILE__) + '/../lib/brdinheiro'
|
3
|
+
|
4
|
+
def tornar_metodos_publicos(clazz)
|
5
|
+
clazz.class_eval do
|
6
|
+
private_instance_methods.each { |instance_method| public instance_method }
|
7
|
+
private_methods.each { |method| public_class_method method }
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def p80 text
|
12
|
+
p '*'*80
|
13
|
+
p text
|
14
|
+
p '*'*80
|
15
|
+
end
|
16
|
+
|
17
|
+
class Test::Unit::TestCase
|
18
|
+
def assert_false(boolean, message=nil)
|
19
|
+
assert_block("assert should not be called with a block.") { !block_given? }
|
20
|
+
assert_block(build_message(message, "<?> is not false.", boolean)) { !boolean }
|
21
|
+
end
|
22
|
+
end
|
metadata
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: brdinheiro-lite
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- "Marcos Tapaj\xC3\xB3s"
|
8
|
+
- Celestino Gomes
|
9
|
+
- Andre Kupkosvki
|
10
|
+
- "Vin\xC3\xADcius Teles"
|
11
|
+
- Rafael Souza
|
12
|
+
autorequire:
|
13
|
+
bindir: bin
|
14
|
+
cert_chain: []
|
15
|
+
|
16
|
+
date: 2010-01-15 00:00:00 -02:00
|
17
|
+
default_executable:
|
18
|
+
dependencies: []
|
19
|
+
|
20
|
+
description: "brdinheiro-lite \xC3\xA9 uma vers\xC3\xA3o simplificada da gem brdinheiro do Brazilian Rails"
|
21
|
+
email: me@rafaelss.com
|
22
|
+
executables: []
|
23
|
+
|
24
|
+
extensions: []
|
25
|
+
|
26
|
+
extra_rdoc_files: []
|
27
|
+
|
28
|
+
files:
|
29
|
+
- Rakefile
|
30
|
+
- README
|
31
|
+
- CHANGELOG
|
32
|
+
- MIT-LICENSE
|
33
|
+
- lib/brdinheiro_lite/dinheiro.rb
|
34
|
+
- lib/brdinheiro_lite/dinheiro_util.rb
|
35
|
+
- lib/brdinheiro_lite/excecoes.rb
|
36
|
+
- lib/brdinheiro_lite/extenso.rb
|
37
|
+
- lib/brdinheiro_lite/extenso_real.rb
|
38
|
+
- lib/brdinheiro_lite/nil_class.rb
|
39
|
+
- lib/brdinheiro_lite/version.rb
|
40
|
+
- lib/brdinheiro_lite.rb
|
41
|
+
- test/dinheiro_test.rb
|
42
|
+
- test/extenso_test.rb
|
43
|
+
- test/nil_class_test.rb
|
44
|
+
- test/test_helper.rb
|
45
|
+
has_rdoc: true
|
46
|
+
homepage: http://rafaelss.com/brdinheiro-lite
|
47
|
+
licenses: []
|
48
|
+
|
49
|
+
post_install_message:
|
50
|
+
rdoc_options: []
|
51
|
+
|
52
|
+
require_paths:
|
53
|
+
- lib
|
54
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: "0"
|
59
|
+
version:
|
60
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
|
+
requirements:
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: "0"
|
65
|
+
version:
|
66
|
+
requirements: []
|
67
|
+
|
68
|
+
rubyforge_project: brdinheiro-lite
|
69
|
+
rubygems_version: 1.3.5
|
70
|
+
signing_key:
|
71
|
+
specification_version: 3
|
72
|
+
summary: "brdinheiro-lite \xC3\xA9 uma vers\xC3\xA3o simplificada da gem brdinheiro do Brazilian Rails"
|
73
|
+
test_files: []
|
74
|
+
|