diff options
Diffstat (limited to 'spec/rubyspec/core/rational/to_r_spec.rb')
-rw-r--r-- | spec/rubyspec/core/rational/to_r_spec.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/spec/rubyspec/core/rational/to_r_spec.rb b/spec/rubyspec/core/rational/to_r_spec.rb index 22c8b4532c..6e44cf1b23 100644 --- a/spec/rubyspec/core/rational/to_r_spec.rb +++ b/spec/rubyspec/core/rational/to_r_spec.rb @@ -7,4 +7,14 @@ describe "Rational#to_r" do obj = BasicObject.new lambda { Rational(obj) }.should raise_error(TypeError) end + + it "works when a BasicObject has to_r" do + obj = BasicObject.new; def obj.to_r; 1 / 2.to_r end + Rational(obj).should == Rational('1/2') + end + + it "fails when a BasicObject's to_r does not return a Rational" do + obj = BasicObject.new; def obj.to_r; 1 end + lambda { Rational(obj) }.should raise_error(TypeError) + end end |