MX-Banxico 1.0.2
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/.gitignore +18 -0
- data/.rspec +3 -0
- data/.travis.yml +12 -0
- data/.yardopts +9 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +36 -0
- data/Guardfile +26 -0
- data/LICENSE.txt +22 -0
- data/MX-Banxico.gemspec +29 -0
- data/README.md +140 -0
- data/REFERENCIAS.md +6 -0
- data/Rakefile +26 -0
- data/lib/MX/Banxico.rb +12 -0
- data/lib/MX/Banxico/historico.rb +4 -0
- data/lib/MX/Banxico/historico/tipo_de_cambio.rb +296 -0
- data/lib/MX/Banxico/series.rb +346 -0
- data/lib/MX/Banxico/tipo_de_cambio.rb +159 -0
- data/lib/MX/Banxico/version.rb +14 -0
- data/lib/MX/Banxico/web_services.rb +4 -0
- data/lib/MX/Banxico/web_services/tipo_de_cambio.rb +83 -0
- data/lib/MX/Banxico/web_services/web_service.rb +99 -0
- data/spec/MX/Banxico/historico/tipo_de_cambio_spec.rb +525 -0
- data/spec/MX/Banxico/series_spec.rb +475 -0
- data/spec/MX/Banxico/tipo_de_cambio_spec.rb +688 -0
- data/spec/MX/Banxico/web_services/tipo_de_cambio_spec.rb +152 -0
- data/spec/MX/Banxico/web_services/web_service_spec.rb +108 -0
- data/spec/fixtures/MX/Banxico/historico/respuestas_correctas/tipo_de_cambio.xml +2228 -0
- data/spec/fixtures/MX/Banxico/historico/respuestas_incorrectas/mal_formado.xml +1 -0
- data/spec/fixtures/MX/Banxico/historico/respuestas_incorrectas/serie_sin_valores.xml +28 -0
- data/spec/fixtures/MX/Banxico/historico/respuestas_incorrectas/sin_series.xml +26 -0
- data/spec/fixtures/MX/Banxico/historico/tipo_de_cambio/dolar_fix/respuesta_correcta.xml +393 -0
- data/spec/fixtures/MX/Banxico/historico/tipo_de_cambio/dolar_fix/serie_sin_valores.xml +28 -0
- data/spec/fixtures/MX/Banxico/historico/tipo_de_cambio/dolar_fix/sin_serie.xml +26 -0
- data/spec/fixtures/MX/Banxico/web_services/respuestas_correctas/reservas_internacionales_banxico.xml +41 -0
- data/spec/fixtures/MX/Banxico/web_services/respuestas_correctas/tasas_de_interes_banxico.xml +50 -0
- data/spec/fixtures/MX/Banxico/web_services/respuestas_correctas/tipos_de_cambio_banxico.xml +56 -0
- data/spec/fixtures/MX/Banxico/web_services/respuestas_correctas/udis_banxico.xml +41 -0
- data/spec/fixtures/MX/Banxico/web_services/tipo_de_cambio/dolar_fix/error_fecha_tipo_de_cambio.xml +41 -0
- data/spec/fixtures/MX/Banxico/web_services/tipo_de_cambio/dolar_fix/error_nodo_obs.xml +40 -0
- data/spec/fixtures/MX/Banxico/web_services/tipo_de_cambio/dolar_fix/error_valor_tipo_de_cambio.xml +41 -0
- data/spec/fixtures/MX/Banxico/web_services/tipo_de_cambio/dolar_fix/respuesta_correcta.xml +41 -0
- data/spec/spec_helper.rb +31 -0
- metadata +152 -0
@@ -0,0 +1,688 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
2
|
+
|
3
|
+
describe MX::Banxico::TipoDeCambio, :tdc do
|
4
|
+
let!(:tipo_de_cambio){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
5
|
+
|
6
|
+
|
7
|
+
describe '.new' do
|
8
|
+
|
9
|
+
describe 'parámetro moneda' do
|
10
|
+
|
11
|
+
context 'cuando el parámetro es del tipo correcto' do
|
12
|
+
|
13
|
+
context 'cuando es un símbolo' do
|
14
|
+
let!(:tdc) { described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
15
|
+
|
16
|
+
it 'es una instancia de la clase' do
|
17
|
+
expect(tdc).to be_a described_class
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
describe '.moneda' do
|
22
|
+
|
23
|
+
it 'es un símbolo' do
|
24
|
+
expect(tdc.moneda).to be_a Symbol
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
context 'cuando es una cadena' do
|
33
|
+
let!(:tdc) { described_class.new("dolar_fix", Date.new(2016,1,1), 18.0001) }
|
34
|
+
|
35
|
+
it 'es una instancia de la clase' do
|
36
|
+
expect(tdc).to be_a described_class
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
describe '.moneda' do
|
41
|
+
|
42
|
+
it 'es un símbolo' do
|
43
|
+
expect(tdc.moneda).to be_a Symbol
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
|
53
|
+
context 'cuando el parámetro NO es del tipo correcto' do
|
54
|
+
|
55
|
+
it 'lanza una excepción' do
|
56
|
+
expect{
|
57
|
+
described_class.new(nil, Date.new(2016,1,1), 18.0001)
|
58
|
+
}.to raise_error(ArgumentError, "moneda debe ser una cadena (String) o un objeto tipo símbolo (Symbol).")
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
|
66
|
+
describe 'parámetro fecha' do
|
67
|
+
|
68
|
+
context 'cuando el parámetro fecha es correcto' do
|
69
|
+
|
70
|
+
context 'cuando la fecha es una cadena en formato IS0-8601' do
|
71
|
+
let!(:tdc){ described_class.new(:dolar_fix, "2016-01-01", 18.0001) }
|
72
|
+
|
73
|
+
it 'es una instancia de la clase' do
|
74
|
+
expect(tdc).to be_a described_class
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
describe '.fecha' do
|
79
|
+
|
80
|
+
it 'es de tipo fecha (Date)' do
|
81
|
+
expect(tdc.fecha).to be_a Date
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
87
|
+
|
88
|
+
|
89
|
+
context 'cuando la fecha es un objeto fecha (Date)' do
|
90
|
+
let!(:tdc){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
91
|
+
|
92
|
+
it 'es una instancia de la clase' do
|
93
|
+
expect(tdc).to be_a described_class
|
94
|
+
end
|
95
|
+
|
96
|
+
|
97
|
+
describe '.fecha' do
|
98
|
+
|
99
|
+
it 'es de tipo fecha (Date)' do
|
100
|
+
expect(tdc.fecha).to be_a Date
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
108
|
+
|
109
|
+
|
110
|
+
context 'cuando el parámetro fecha NO es correcto' do
|
111
|
+
|
112
|
+
context 'cuando la fecha es una cadena SIN formato IS0-8601' do
|
113
|
+
|
114
|
+
it 'lanza una excepción' do
|
115
|
+
expect{
|
116
|
+
described_class.new(:dolar_fix, "abc", 18.0001)
|
117
|
+
}.to raise_error(ArgumentError, "fecha debe ser una cadena (String) en formato ISO-8601 o un objeto de tipo fecha (Date).")
|
118
|
+
end
|
119
|
+
|
120
|
+
end
|
121
|
+
|
122
|
+
context 'cuando la fecha NO es un objeto fecha (Date)' do
|
123
|
+
|
124
|
+
it 'lanza una excepción' do
|
125
|
+
expect{
|
126
|
+
described_class.new(:dolar_fix, nil, 18.0001)
|
127
|
+
}.to raise_error(ArgumentError, "fecha debe ser una cadena (String) en formato ISO-8601 o un objeto de tipo fecha (Date).")
|
128
|
+
end
|
129
|
+
|
130
|
+
end
|
131
|
+
|
132
|
+
end
|
133
|
+
|
134
|
+
end
|
135
|
+
|
136
|
+
|
137
|
+
describe 'parámetro valor_en_mxn' do
|
138
|
+
|
139
|
+
context 'cuando el parámetro valor_en_mxn es correcto' do
|
140
|
+
|
141
|
+
context 'cuando el valor en pesos es una cadena de un número decimal' do
|
142
|
+
let!(:tdc){ described_class.new(:dolar_fix, Date.new(2016,1,1), "18.0001") }
|
143
|
+
|
144
|
+
it 'es una instancia de la clase' do
|
145
|
+
expect(tdc).to be_a described_class
|
146
|
+
end
|
147
|
+
|
148
|
+
|
149
|
+
describe '.valor_en_mxn' do
|
150
|
+
|
151
|
+
it 'es de tipo fecha (Date)' do
|
152
|
+
expect(tdc.valor_en_mxn).to be_a Float
|
153
|
+
end
|
154
|
+
|
155
|
+
end
|
156
|
+
|
157
|
+
end
|
158
|
+
|
159
|
+
context 'cuando el valor en pesos es un número flotante (Float)' do
|
160
|
+
let!(:tdc){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
161
|
+
|
162
|
+
it 'es una instancia de la clase' do
|
163
|
+
expect(tdc).to be_a described_class
|
164
|
+
end
|
165
|
+
|
166
|
+
|
167
|
+
describe '.valor_en_mxn' do
|
168
|
+
|
169
|
+
it 'es de tipo fecha (Date)' do
|
170
|
+
expect(tdc.valor_en_mxn).to be_a Float
|
171
|
+
end
|
172
|
+
|
173
|
+
end
|
174
|
+
|
175
|
+
end
|
176
|
+
|
177
|
+
end
|
178
|
+
|
179
|
+
|
180
|
+
context 'cuando el parámetro valor_en_mxn NO es correcto' do
|
181
|
+
|
182
|
+
context 'cuando el valor en pesos NO es una cadena de un número decimal' do
|
183
|
+
|
184
|
+
it 'lanza una excepción' do
|
185
|
+
expect{
|
186
|
+
described_class.new(:dolar_fix, Date.new(2016,1,1), "moquito")
|
187
|
+
}.to raise_error(ArgumentError, "valor_en_mxn debe ser una cadena con un número decimal o un objeto de tipo (Float).")
|
188
|
+
end
|
189
|
+
|
190
|
+
end
|
191
|
+
|
192
|
+
context 'cuando el valor en pesos no es un número flotante (Float)' do
|
193
|
+
|
194
|
+
it 'lanza una excepción' do
|
195
|
+
expect{
|
196
|
+
described_class.new(:dolar_fix, Date.new(2016,1,1), nil)
|
197
|
+
}.to raise_error(ArgumentError, "valor_en_mxn debe ser una cadena con un número decimal o un objeto de tipo (Float).")
|
198
|
+
end
|
199
|
+
|
200
|
+
end
|
201
|
+
|
202
|
+
end
|
203
|
+
|
204
|
+
end
|
205
|
+
|
206
|
+
end
|
207
|
+
|
208
|
+
|
209
|
+
describe '#moneda' do
|
210
|
+
|
211
|
+
it 'es de tipo Symbol' do
|
212
|
+
expect(tipo_de_cambio.moneda).to be_a Symbol
|
213
|
+
end
|
214
|
+
|
215
|
+
it 'es :dolar_fix' do
|
216
|
+
expect(tipo_de_cambio.moneda).to eq :dolar_fix
|
217
|
+
end
|
218
|
+
|
219
|
+
end
|
220
|
+
|
221
|
+
|
222
|
+
describe '#fecha' do
|
223
|
+
|
224
|
+
it 'es de tipo Date' do
|
225
|
+
expect(tipo_de_cambio.fecha).to be_a Date
|
226
|
+
end
|
227
|
+
|
228
|
+
it 'es la fecha 2016-01-01' do
|
229
|
+
expect(tipo_de_cambio.fecha).to eq Date.new(2016,1,1)
|
230
|
+
end
|
231
|
+
|
232
|
+
end
|
233
|
+
|
234
|
+
|
235
|
+
describe '#valor_en_mxn' do
|
236
|
+
|
237
|
+
it 'es de tipo Date' do
|
238
|
+
expect(tipo_de_cambio.valor_en_mxn).to be_a Float
|
239
|
+
end
|
240
|
+
|
241
|
+
it 'es 18.0001' do
|
242
|
+
expect(tipo_de_cambio.valor_en_mxn).to eq 18.0001
|
243
|
+
end
|
244
|
+
|
245
|
+
end
|
246
|
+
|
247
|
+
|
248
|
+
describe '#to_s' do
|
249
|
+
|
250
|
+
it 'es la cadena "dolar_fix: $18.0001 MXN al día 2016-01-01"' do
|
251
|
+
expect(tipo_de_cambio.to_s).to eq "dolar_fix: $18.0001 MXN al día 2016-01-01"
|
252
|
+
end
|
253
|
+
|
254
|
+
end
|
255
|
+
|
256
|
+
|
257
|
+
describe '#==' do
|
258
|
+
|
259
|
+
context 'cuando la cadena de la moneda de x es igual a la cadena de la moneda de y' do
|
260
|
+
|
261
|
+
context 'cuando la fecha de x es igual a la de y' do
|
262
|
+
|
263
|
+
context 'cuando el valor en pesos de x es igual al valor en pesos de y' do
|
264
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
265
|
+
let!(:y){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
266
|
+
|
267
|
+
it 'x es igual a y' do
|
268
|
+
expect(x == y).to be_truthy
|
269
|
+
end
|
270
|
+
end
|
271
|
+
|
272
|
+
|
273
|
+
context 'cuando el valor en pesos de x NO es igual al valor en pesos de y' do
|
274
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
275
|
+
let!(:y){ described_class.new(:dolar_fix, Date.new(2016,1,1), 19.0001) }
|
276
|
+
|
277
|
+
it 'x NO es igual a y' do
|
278
|
+
expect(x == y).to be_falsey
|
279
|
+
end
|
280
|
+
end
|
281
|
+
|
282
|
+
end
|
283
|
+
|
284
|
+
|
285
|
+
context 'cuando la fecha de x NO es igual a la de y' do
|
286
|
+
|
287
|
+
context 'cuando el valor en pesos de x es igual al valor en pesos de y' do
|
288
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2015,1,1), 18.0001) }
|
289
|
+
let!(:y){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
290
|
+
|
291
|
+
it 'x NO es igual a y' do
|
292
|
+
expect(x == y).to be_falsey
|
293
|
+
end
|
294
|
+
end
|
295
|
+
|
296
|
+
|
297
|
+
context 'cuando el valor en pesos de x NO es igual al valor en pesos de y' do
|
298
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2015,1,1), 18.0001) }
|
299
|
+
let!(:y){ described_class.new(:dolar_fix, Date.new(2016,1,1), 19.0001) }
|
300
|
+
|
301
|
+
it 'x NO es igual a y' do
|
302
|
+
expect(x == y).to be_falsey
|
303
|
+
end
|
304
|
+
end
|
305
|
+
|
306
|
+
end
|
307
|
+
|
308
|
+
end
|
309
|
+
|
310
|
+
|
311
|
+
context 'cuando la cadena de la moneda de x NO es igual a la cadena de la moneda de y' do
|
312
|
+
|
313
|
+
context 'cuando la fecha de x es igual a la de y' do
|
314
|
+
|
315
|
+
context 'cuando el valor en pesos de x es igual al valor en pesos de y' do
|
316
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
317
|
+
let!(:y){ described_class.new(:dolar_liquidacion, Date.new(2016,1,1), 18.0001) }
|
318
|
+
|
319
|
+
it 'x NO es igual a y' do
|
320
|
+
expect(x == y).to be_falsey
|
321
|
+
end
|
322
|
+
end
|
323
|
+
|
324
|
+
|
325
|
+
context 'cuando el valor en pesos de x NO es igual al valor en pesos de y' do
|
326
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
327
|
+
let!(:y){ described_class.new(:dolar_liquidacion, Date.new(2016,1,1), 19.0001) }
|
328
|
+
|
329
|
+
it 'x NO es igual a y' do
|
330
|
+
expect(x == y).to be_falsey
|
331
|
+
end
|
332
|
+
end
|
333
|
+
|
334
|
+
end
|
335
|
+
|
336
|
+
|
337
|
+
context 'cuando la fecha de x NO es igual a la de y' do
|
338
|
+
|
339
|
+
context 'cuando el valor en pesos de x es igual al valor en pesos de y' do
|
340
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2015,1,1), 18.0001) }
|
341
|
+
let!(:y){ described_class.new(:dolar_liquidacion, Date.new(2016,1,1), 18.0001) }
|
342
|
+
|
343
|
+
it 'x NO es igual a y' do
|
344
|
+
expect(x == y).to be_falsey
|
345
|
+
end
|
346
|
+
end
|
347
|
+
|
348
|
+
|
349
|
+
context 'cuando el valor en pesos de x NO es igual al valor en pesos de y' do
|
350
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2015,1,1), 18.0001) }
|
351
|
+
let!(:y){ described_class.new(:dolar_liquidacion, Date.new(2016,1,1), 19.0001) }
|
352
|
+
|
353
|
+
it 'x NO es igual a y' do
|
354
|
+
expect(x == y).to be_falsey
|
355
|
+
end
|
356
|
+
end
|
357
|
+
|
358
|
+
end
|
359
|
+
|
360
|
+
end
|
361
|
+
|
362
|
+
end
|
363
|
+
|
364
|
+
|
365
|
+
describe '#<=>' do
|
366
|
+
|
367
|
+
context 'cuando la cadena de la moneda de x es igual a la cadena de la moneda de y' do
|
368
|
+
|
369
|
+
context 'cuando la fecha de x es igual a la de y' do
|
370
|
+
|
371
|
+
context 'cuando el valor en pesos de x es igual al valor en pesos de y' do
|
372
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
373
|
+
let!(:y){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
374
|
+
|
375
|
+
it 'x == y' do
|
376
|
+
expect(x <=> y).to eq 0
|
377
|
+
end
|
378
|
+
end
|
379
|
+
|
380
|
+
|
381
|
+
context 'cuando el valor en pesos de x es menor que valor en pesos de y' do
|
382
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
383
|
+
let!(:y){ described_class.new(:dolar_fix, Date.new(2016,1,1), 19.0001) }
|
384
|
+
|
385
|
+
it 'x < y' do
|
386
|
+
expect(x <=> y).to eq -1
|
387
|
+
end
|
388
|
+
end
|
389
|
+
|
390
|
+
|
391
|
+
context 'cuando el valor en pesos de x es mayor que valor en pesos de y' do
|
392
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2016,1,1), 19.0001) }
|
393
|
+
let!(:y){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
394
|
+
|
395
|
+
it 'x > y' do
|
396
|
+
expect(x <=> y).to eq 1
|
397
|
+
end
|
398
|
+
end
|
399
|
+
|
400
|
+
end
|
401
|
+
|
402
|
+
|
403
|
+
context 'cuando la fecha de x es menor que la de y' do
|
404
|
+
|
405
|
+
context 'cuando el valor en pesos de x es igual al valor en pesos de y' do
|
406
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2015,1,1), 18.0001) }
|
407
|
+
let!(:y){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
408
|
+
|
409
|
+
it 'x < y' do
|
410
|
+
expect(x <=> y).to eq -1
|
411
|
+
end
|
412
|
+
end
|
413
|
+
|
414
|
+
|
415
|
+
context 'cuando el valor en pesos de x es menor que valor en pesos de y' do
|
416
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2015,1,1), 18.0001) }
|
417
|
+
let!(:y){ described_class.new(:dolar_fix, Date.new(2016,1,1), 19.0001) }
|
418
|
+
|
419
|
+
it 'x < y' do
|
420
|
+
expect(x <=> y).to eq -1
|
421
|
+
end
|
422
|
+
end
|
423
|
+
|
424
|
+
|
425
|
+
context 'cuando el valor en pesos de x es mayor que valor en pesos de y' do
|
426
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2015,1,1), 19.0001) }
|
427
|
+
let!(:y){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
428
|
+
|
429
|
+
it 'x < y' do
|
430
|
+
expect(x <=> y).to eq -1
|
431
|
+
end
|
432
|
+
end
|
433
|
+
|
434
|
+
end
|
435
|
+
|
436
|
+
|
437
|
+
context 'cuando la fecha de x es mayor que la de y' do
|
438
|
+
|
439
|
+
context 'cuando el valor en pesos de x es igual al valor en pesos de y' do
|
440
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
441
|
+
let!(:y){ described_class.new(:dolar_fix, Date.new(2015,1,1), 18.0001) }
|
442
|
+
|
443
|
+
it 'x > y' do
|
444
|
+
expect(x <=> y).to eq 1
|
445
|
+
end
|
446
|
+
end
|
447
|
+
|
448
|
+
|
449
|
+
context 'cuando el valor en pesos de x es menor que valor en pesos de y' do
|
450
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
451
|
+
let!(:y){ described_class.new(:dolar_fix, Date.new(2015,1,1), 19.0001) }
|
452
|
+
|
453
|
+
it 'x > y' do
|
454
|
+
expect(x <=> y).to eq 1
|
455
|
+
end
|
456
|
+
end
|
457
|
+
|
458
|
+
|
459
|
+
context 'cuando el valor en pesos de x es mayor que valor en pesos de y' do
|
460
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2016,1,1), 19.0001) }
|
461
|
+
let!(:y){ described_class.new(:dolar_fix, Date.new(2015,1,1), 18.0001) }
|
462
|
+
|
463
|
+
it 'x > y' do
|
464
|
+
expect(x <=> y).to eq 1
|
465
|
+
end
|
466
|
+
end
|
467
|
+
|
468
|
+
end
|
469
|
+
|
470
|
+
end
|
471
|
+
|
472
|
+
|
473
|
+
context 'cuando la cadena de la moneda de x es menor que la cadena de la moneda de y' do
|
474
|
+
|
475
|
+
context 'cuando la fecha de x es igual a la de y' do
|
476
|
+
|
477
|
+
context 'cuando el valor en pesos de x es igual al valor en pesos de y' do
|
478
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
479
|
+
let!(:y){ described_class.new(:dolar_liquidacion, Date.new(2016,1,1), 18.0001) }
|
480
|
+
|
481
|
+
it 'x < y' do
|
482
|
+
expect(x <=> y).to eq -1
|
483
|
+
end
|
484
|
+
end
|
485
|
+
|
486
|
+
|
487
|
+
context 'cuando el valor en pesos de x es menor que valor en pesos de y' do
|
488
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
489
|
+
let!(:y){ described_class.new(:dolar_liquidacion, Date.new(2016,1,1), 19.0001) }
|
490
|
+
|
491
|
+
it 'x < y' do
|
492
|
+
expect(x <=> y).to eq -1
|
493
|
+
end
|
494
|
+
end
|
495
|
+
|
496
|
+
|
497
|
+
context 'cuando el valor en pesos de x es mayor que valor en pesos de y' do
|
498
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2016,1,1), 19.0001) }
|
499
|
+
let!(:y){ described_class.new(:dolar_liquidacion, Date.new(2016,1,1), 18.0001) }
|
500
|
+
|
501
|
+
it 'x < y' do
|
502
|
+
expect(x <=> y).to eq -1
|
503
|
+
end
|
504
|
+
end
|
505
|
+
|
506
|
+
end
|
507
|
+
|
508
|
+
|
509
|
+
context 'cuando la fecha de x es menor que la de y' do
|
510
|
+
|
511
|
+
context 'cuando el valor en pesos de x es igual al valor en pesos de y' do
|
512
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2015,1,1), 18.0001) }
|
513
|
+
let!(:y){ described_class.new(:dolar_liquidacion, Date.new(2016,1,1), 18.0001) }
|
514
|
+
|
515
|
+
it 'x < y' do
|
516
|
+
expect(x <=> y).to eq -1
|
517
|
+
end
|
518
|
+
end
|
519
|
+
|
520
|
+
|
521
|
+
context 'cuando el valor en pesos de x es menor que valor en pesos de y' do
|
522
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2015,1,1), 18.0001) }
|
523
|
+
let!(:y){ described_class.new(:dolar_liquidacion, Date.new(2016,1,1), 19.0001) }
|
524
|
+
|
525
|
+
it 'x < y' do
|
526
|
+
expect(x <=> y).to eq -1
|
527
|
+
end
|
528
|
+
end
|
529
|
+
|
530
|
+
|
531
|
+
context 'cuando el valor en pesos de x es mayor que valor en pesos de y' do
|
532
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2015,1,1), 19.0001) }
|
533
|
+
let!(:y){ described_class.new(:dolar_liquidacion, Date.new(2016,1,1), 18.0001) }
|
534
|
+
|
535
|
+
it 'x < y' do
|
536
|
+
expect(x <=> y).to eq -1
|
537
|
+
end
|
538
|
+
end
|
539
|
+
|
540
|
+
end
|
541
|
+
|
542
|
+
|
543
|
+
context 'cuando la fecha de x es mayor que la de y' do
|
544
|
+
|
545
|
+
context 'cuando el valor en pesos de x es igual al valor en pesos de y' do
|
546
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
547
|
+
let!(:y){ described_class.new(:dolar_liquidacion, Date.new(2015,1,1), 18.0001) }
|
548
|
+
|
549
|
+
it 'x < y' do
|
550
|
+
expect(x <=> y).to eq -1
|
551
|
+
end
|
552
|
+
end
|
553
|
+
|
554
|
+
|
555
|
+
context 'cuando el valor en pesos de x es menor que valor en pesos de y' do
|
556
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2016,1,1), 18.0001) }
|
557
|
+
let!(:y){ described_class.new(:dolar_liquidacion, Date.new(2015,1,1), 19.0001) }
|
558
|
+
|
559
|
+
it 'x < y' do
|
560
|
+
expect(x <=> y).to eq -1
|
561
|
+
end
|
562
|
+
end
|
563
|
+
|
564
|
+
|
565
|
+
context 'cuando el valor en pesos de x es mayor que valor en pesos de y' do
|
566
|
+
let!(:x){ described_class.new(:dolar_fix, Date.new(2016,1,1), 19.0001) }
|
567
|
+
let!(:y){ described_class.new(:dolar_liquidacion, Date.new(2015,1,1), 18.0001) }
|
568
|
+
|
569
|
+
it 'x < y' do
|
570
|
+
expect(x <=> y).to eq -1
|
571
|
+
end
|
572
|
+
end
|
573
|
+
|
574
|
+
end
|
575
|
+
|
576
|
+
end
|
577
|
+
|
578
|
+
|
579
|
+
context 'cuando la cadena de la moneda de x es mayor que la cadena de la moneda de y' do
|
580
|
+
|
581
|
+
context 'cuando la fecha de x es igual a la de y' do
|
582
|
+
|
583
|
+
context 'cuando el valor en pesos de x es igual al valor en pesos de y' do
|
584
|
+
let!(:x){ described_class.new(:dolar_liquidacion, Date.new(2016,1,1), 18.0001) }
|
585
|
+
let!(:y){ described_class.new(:dolar_canadiense, Date.new(2016,1,1), 18.0001) }
|
586
|
+
|
587
|
+
it 'x > y' do
|
588
|
+
expect(x <=> y).to eq 1
|
589
|
+
end
|
590
|
+
end
|
591
|
+
|
592
|
+
|
593
|
+
context 'cuando el valor en pesos de x es menor que valor en pesos de y' do
|
594
|
+
let!(:x){ described_class.new(:dolar_liquidacion, Date.new(2016,1,1), 18.0001) }
|
595
|
+
let!(:y){ described_class.new(:dolar_canadiense, Date.new(2016,1,1), 19.0001) }
|
596
|
+
|
597
|
+
it 'x > y' do
|
598
|
+
expect(x <=> y).to eq 1
|
599
|
+
end
|
600
|
+
end
|
601
|
+
|
602
|
+
|
603
|
+
context 'cuando el valor en pesos de x es mayor que valor en pesos de y' do
|
604
|
+
let!(:x){ described_class.new(:dolar_liquidacion, Date.new(2016,1,1), 19.0001) }
|
605
|
+
let!(:y){ described_class.new(:dolar_canadiense, Date.new(2016,1,1), 18.0001) }
|
606
|
+
|
607
|
+
it 'x > y' do
|
608
|
+
expect(x <=> y).to eq 1
|
609
|
+
end
|
610
|
+
end
|
611
|
+
|
612
|
+
end
|
613
|
+
|
614
|
+
|
615
|
+
context 'cuando la fecha de x es menor que la de y' do
|
616
|
+
|
617
|
+
context 'cuando el valor en pesos de x es igual al valor en pesos de y' do
|
618
|
+
let!(:x){ described_class.new(:dolar_liquidacion, Date.new(2015,1,1), 18.0001) }
|
619
|
+
let!(:y){ described_class.new(:dolar_canadiense, Date.new(2016,1,1), 18.0001) }
|
620
|
+
|
621
|
+
it 'x > y' do
|
622
|
+
expect(x <=> y).to eq 1
|
623
|
+
end
|
624
|
+
end
|
625
|
+
|
626
|
+
|
627
|
+
context 'cuando el valor en pesos de x es menor que valor en pesos de y' do
|
628
|
+
let!(:x){ described_class.new(:dolar_liquidacion, Date.new(2015,1,1), 18.0001) }
|
629
|
+
let!(:y){ described_class.new(:dolar_canadiense, Date.new(2016,1,1), 19.0001) }
|
630
|
+
|
631
|
+
it 'x > y' do
|
632
|
+
expect(x <=> y).to eq 1
|
633
|
+
end
|
634
|
+
end
|
635
|
+
|
636
|
+
|
637
|
+
context 'cuando el valor en pesos de x es mayor que valor en pesos de y' do
|
638
|
+
let!(:x){ described_class.new(:dolar_liquidacion, Date.new(2015,1,1), 19.0001) }
|
639
|
+
let!(:y){ described_class.new(:dolar_canadiense, Date.new(2016,1,1), 18.0001) }
|
640
|
+
|
641
|
+
it 'x > y' do
|
642
|
+
expect(x <=> y).to eq 1
|
643
|
+
end
|
644
|
+
end
|
645
|
+
|
646
|
+
end
|
647
|
+
|
648
|
+
|
649
|
+
context 'cuando la fecha de x es mayor que la de y' do
|
650
|
+
|
651
|
+
context 'cuando el valor en pesos de x es igual al valor en pesos de y' do
|
652
|
+
let!(:x){ described_class.new(:dolar_liquidacion, Date.new(2016,1,1), 18.0001) }
|
653
|
+
let!(:y){ described_class.new(:dolar_canadiense, Date.new(2015,1,1), 18.0001) }
|
654
|
+
|
655
|
+
it 'x > y' do
|
656
|
+
expect(x <=> y).to eq 1
|
657
|
+
end
|
658
|
+
end
|
659
|
+
|
660
|
+
|
661
|
+
context 'cuando el valor en pesos de x es menor que valor en pesos de y' do
|
662
|
+
let!(:x){ described_class.new(:dolar_liquidacion, Date.new(2016,1,1), 18.0001) }
|
663
|
+
let!(:y){ described_class.new(:dolar_canadiense, Date.new(2015,1,1), 19.0001) }
|
664
|
+
|
665
|
+
it 'x > y' do
|
666
|
+
expect(x <=> y).to eq 1
|
667
|
+
end
|
668
|
+
end
|
669
|
+
|
670
|
+
|
671
|
+
context 'cuando el valor en pesos de x es mayor que valor en pesos de y' do
|
672
|
+
let!(:x){ described_class.new(:dolar_liquidacion, Date.new(2016,1,1), 19.0001) }
|
673
|
+
let!(:y){ described_class.new(:dolar_canadiense, Date.new(2015,1,1), 18.0001) }
|
674
|
+
|
675
|
+
it 'x > y' do
|
676
|
+
expect(x <=> y).to eq 1
|
677
|
+
end
|
678
|
+
end
|
679
|
+
|
680
|
+
end
|
681
|
+
|
682
|
+
end
|
683
|
+
|
684
|
+
end
|
685
|
+
|
686
|
+
|
687
|
+
|
688
|
+
end
|