summaryrefslogtreecommitdiff
path: root/spec/rubyspec/core/bignum/shared/equal.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rubyspec/core/bignum/shared/equal.rb')
-rw-r--r--spec/rubyspec/core/bignum/shared/equal.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/spec/rubyspec/core/bignum/shared/equal.rb b/spec/rubyspec/core/bignum/shared/equal.rb
new file mode 100644
index 0000000000..ffe4daf4f1
--- /dev/null
+++ b/spec/rubyspec/core/bignum/shared/equal.rb
@@ -0,0 +1,31 @@
+describe :bignum_equal, shared: true do
+ before :each do
+ @bignum = bignum_value
+ end
+
+ it "returns true if self has the same value as the given argument" do
+ @bignum.send(@method, @bignum).should == true
+ @bignum.send(@method, @bignum.to_f).should == true
+
+ @bignum.send(@method, @bignum + 1).should == false
+ (@bignum + 1).send(@method, @bignum).should == false
+
+ @bignum.send(@method, 9).should == false
+ @bignum.send(@method, 9.01).should == false
+
+ @bignum.send(@method, bignum_value(10)).should == false
+ end
+
+ it "calls 'other == self' if the given argument is not an Integer" do
+ obj = mock('not integer')
+ obj.should_receive(:==).and_return(true)
+ @bignum.send(@method, obj).should == true
+ end
+
+ it "returns the result of 'other == self' as a boolean" do
+ obj = mock('not integer')
+ obj.should_receive(:==).exactly(2).times.and_return("woot", nil)
+ @bignum.send(@method, obj).should == true
+ @bignum.send(@method, obj).should == false
+ end
+end