summaryrefslogtreecommitdiff
path: root/spec/ruby/core/integer/even_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/integer/even_spec.rb')
-rw-r--r--spec/ruby/core/integer/even_spec.rb42
1 files changed, 31 insertions, 11 deletions
diff --git a/spec/ruby/core/integer/even_spec.rb b/spec/ruby/core/integer/even_spec.rb
index c14cf84947..edc8b13dd9 100644
--- a/spec/ruby/core/integer/even_spec.rb
+++ b/spec/ruby/core/integer/even_spec.rb
@@ -1,20 +1,40 @@
require File.expand_path('../../../spec_helper', __FILE__)
describe "Integer#even?" do
- it "returns true for a Fixnum when it is an even number" do
- (-2).even?.should be_true
- (-1).even?.should be_false
+ context "fixnum" do
+ it "returns true for a Fixnum when it is an even number" do
+ (-2).even?.should be_true
+ (-1).even?.should be_false
- 0.even?.should be_true
- 1.even?.should be_false
- 2.even?.should be_true
+ 0.even?.should be_true
+ 1.even?.should be_false
+ 2.even?.should be_true
+ end
+
+ it "returns true for a Bignum when it is an even number" do
+ bignum_value(0).even?.should be_true
+ bignum_value(1).even?.should be_false
+
+ (-bignum_value(0)).even?.should be_true
+ (-bignum_value(1)).even?.should be_false
+ end
end
- it "returns true for a Bignum when it is an even number" do
- bignum_value(0).even?.should be_true
- bignum_value(1).even?.should be_false
+ context "bignum" do
+ it "returns true if self is even and positive" do
+ (10000**10).even?.should be_true
+ end
+
+ it "returns true if self is even and negative" do
+ (-10000**10).even?.should be_true
+ end
+
+ it "returns false if self is odd and positive" do
+ (9879**976).even?.should be_false
+ end
- (-bignum_value(0)).even?.should be_true
- (-bignum_value(1)).even?.should be_false
+ it "returns false if self is odd and negative" do
+ (-9879**976).even?.should be_false
+ end
end
end