Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

44 lines (38 sloc) 1.426 kb
require File.expand_path('../../../spec_helper', __FILE__)
ruby_version_is "1.9" do
describe "Complex#to_i" do
describe "when the imaginary part is Fixnum 0" do
it "returns the result of sending #to_i to the real part" do
real = mock_numeric('real')
real.should_receive(:to_i).and_return(:i)
Complex(real, 0).to_i.should == :i
end
end
describe "when the imaginary part is Rational 0" do
it "returns the result of sending #to_i to the real part" do
real = mock_numeric('real')
real.should_receive(:to_i).and_return(:i)
Complex(real, Rational(0)).to_i.should == :i
end
end
describe "when the imaginary part responds to #== 0 with true" do
it "returns the result of sending #to_i to the real part" do
real = mock_numeric('real')
real.should_receive(:to_i).and_return(:i)
imag = mock_numeric('imag')
imag.should_receive(:==).with(0).any_number_of_times.and_return(true)
Complex(real, imag).to_i.should == :i
end
end
describe "when the imaginary part is non-zero" do
it "raises RangeError" do
lambda { Complex(0, 1).to_i }.should raise_error(RangeError)
end
end
describe "when the imaginary part is Float 0.0" do
it "raises RangeError" do
lambda { Complex(0, 0.0).to_i }.should raise_error(RangeError)
end
end
end
end
Jump to Line
Something went wrong with that request. Please try again.