diff options
Diffstat (limited to 'spec/ruby/core/float/numerator_spec.rb')
-rw-r--r-- | spec/ruby/core/float/numerator_spec.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/spec/ruby/core/float/numerator_spec.rb b/spec/ruby/core/float/numerator_spec.rb new file mode 100644 index 0000000000..9644d01c23 --- /dev/null +++ b/spec/ruby/core/float/numerator_spec.rb @@ -0,0 +1,39 @@ +require File.expand_path('../../../spec_helper', __FILE__) + +describe "Float#numerator" do + before :all do + @numbers = [ + 29871.2722891, + 999.1**99.928888, + -72628191273.22, + 29282.2827, + -2927.00091, + 12.0, + Float::MAX, + ] + end + + it "converts self to a Rational object then returns its numerator" do + @numbers.each do |number| + number.infinite?.should be_nil + number.numerator.should == Rational(number).numerator + end + end + + it "returns 0 for 0.0" do + 0.0.numerator.should == 0 + end + + it "returns NaN for NaN" do + nan_value.numerator.nan?.should be_true + end + + it "returns Infinity for Infinity" do + infinity_value.numerator.infinite?.should == 1 + end + + it "returns -Infinity for -Infinity" do + (-infinity_value).numerator.infinite?.should == -1 + end + +end |