1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
require File.expand_path('../../../../spec_helper', __FILE__)
describe :numeric_arg, :shared => true do
before(:each) do
@numbers = [
20,
Rational(3, 4),
bignum_value,
infinity_value
]
end
it "returns 0 if positive" do
@numbers.each do |number|
number.send(@method).should == 0
end
end
it "returns Pi if negative" do
@numbers.each do |number|
(0-number).send(@method).should == Math::PI
end
end
describe "with a Numeric subclass" do
ruby_version_is "1.9" do
it "returns 0 if self#<(0) returns false" do
numeric = mock_numeric('positive')
numeric.should_receive(:<).with(0).and_return(false)
numeric.send(@method).should == 0
end
it "returns Pi if self#<(0) returns true" do
numeric = mock_numeric('positive')
numeric.should_receive(:<).with(0).and_return(true)
numeric.send(@method).should == Math::PI
end
end
end
end
|