|
457 | 457 | expect { Money.new( 0.0 / 0) }.to raise_error(ArgumentError) |
458 | 458 | end |
459 | 459 |
|
| 460 | + it "raises when constructed with positive infinity" do |
| 461 | + expect(Money).to receive(:deprecate).once |
| 462 | + Money.new(Float::INFINITY) |
| 463 | + end |
| 464 | + |
| 465 | + it "raises when constructed with negative infinity" do |
| 466 | + expect(Money).to receive(:deprecate).once |
| 467 | + Money.new(-Float::INFINITY) |
| 468 | + end |
| 469 | + |
460 | 470 | it "is comparable with non-money objects" do |
461 | 471 | expect(money).not_to eq(nil) |
462 | 472 | end |
|
548 | 558 | let (:nil_10) { Money.new(10.00, Money::NULL_CURRENCY) } |
549 | 559 | let (:nil_20) { Money.new(20.00, Money::NULL_CURRENCY) } |
550 | 560 | let (:usd_10) { Money.new(10.00, 'USD') } |
| 561 | + let (:jpy_10) { Money.new(10, 'JPY') } |
551 | 562 |
|
552 | 563 | it "<=> can compare with and without currency" do |
553 | 564 | expect(Money.new(1000, Money::NULL_CURRENCY) <=> Money.new(2000, 'JPY')).to eq(-1) |
|
680 | 691 | it { expect { cad_10 <= nil }.to(raise_error(ArgumentError)) } |
681 | 692 | it { expect { cad_10 < nil }.to(raise_error(ArgumentError)) } |
682 | 693 | end |
| 694 | + |
| 695 | + describe('infinity comparisons') do |
| 696 | + it { expect(cad_10 <=> Float::INFINITY).to(eq(-1)) } |
| 697 | + it { expect(cad_10 < Float::INFINITY).to(eq(true)) } |
| 698 | + it { expect(cad_10 <= Float::INFINITY).to(eq(true)) } |
| 699 | + it { expect(cad_10 > Float::INFINITY).to(eq(false)) } |
| 700 | + it { expect(cad_10 >= Float::INFINITY).to(eq(false)) } |
| 701 | + |
| 702 | + it { expect(cad_10 <=> -Float::INFINITY).to(eq(1)) } |
| 703 | + it { expect(cad_10 > -Float::INFINITY).to(eq(true)) } |
| 704 | + it { expect(cad_10 >= -Float::INFINITY).to(eq(true)) } |
| 705 | + it { expect(cad_10 < -Float::INFINITY).to(eq(false)) } |
| 706 | + it { expect(cad_10 <= -Float::INFINITY).to(eq(false)) } |
| 707 | + |
| 708 | + it { expect(jpy_10 <=> Float::INFINITY).to(eq(-1)) } |
| 709 | + it { expect(jpy_10 < Float::INFINITY).to(eq(true)) } |
| 710 | + it { expect(jpy_10 <= Float::INFINITY).to(eq(true)) } |
| 711 | + it { expect(jpy_10 > Float::INFINITY).to(eq(false)) } |
| 712 | + it { expect(jpy_10 >= Float::INFINITY).to(eq(false)) } |
| 713 | + |
| 714 | + it { expect(jpy_10 <=> -Float::INFINITY).to(eq(1)) } |
| 715 | + it { expect(jpy_10 > -Float::INFINITY).to(eq(true)) } |
| 716 | + it { expect(jpy_10 >= -Float::INFINITY).to(eq(true)) } |
| 717 | + it { expect(jpy_10 < -Float::INFINITY).to(eq(false)) } |
| 718 | + it { expect(jpy_10 <= -Float::INFINITY).to(eq(false)) } |
| 719 | + end |
683 | 720 | end |
684 | 721 |
|
685 | 722 | describe "#subunits" do |
|
0 commit comments