diff options
Diffstat (limited to 'spec/ruby/core/integer/even_spec.rb')
-rw-r--r-- | spec/ruby/core/integer/even_spec.rb | 42 |
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 |