2018-03-04 10:09:32 -05:00
|
|
|
require_relative '../../spec_helper'
|
|
|
|
require_relative 'fixtures/classes'
|
2017-05-07 08:04:49 -04:00
|
|
|
|
|
|
|
describe "Numeric#real" do
|
2018-09-25 06:41:16 -04:00
|
|
|
before :each do
|
|
|
|
@numbers = [
|
|
|
|
20, # Integer
|
|
|
|
398.72, # Float
|
|
|
|
Rational(3, 4), # Rational
|
|
|
|
bignum_value, # Bignum
|
|
|
|
infinity_value,
|
|
|
|
nan_value
|
|
|
|
].map{ |n| [n, -n] }.flatten
|
|
|
|
end
|
|
|
|
|
|
|
|
it "returns self" do
|
|
|
|
@numbers.each do |number|
|
|
|
|
if number.to_f.nan?
|
|
|
|
number.real.nan?.should be_true
|
|
|
|
else
|
|
|
|
number.real.should == number
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
it "raises an ArgumentError if given any arguments" do
|
|
|
|
@numbers.each do |number|
|
2019-07-27 06:40:09 -04:00
|
|
|
-> { number.real(number) }.should raise_error(ArgumentError)
|
2018-09-25 06:41:16 -04:00
|
|
|
end
|
|
|
|
end
|
2017-05-07 08:04:49 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
describe "Numeric#real?" do
|
|
|
|
it "returns true" do
|
2020-05-03 06:28:29 -04:00
|
|
|
NumericSpecs::Subclass.new.should.real?
|
2017-05-07 08:04:49 -04:00
|
|
|
end
|
|
|
|
end
|