summaryrefslogtreecommitdiff
path: root/spec/ruby/optional/capi/numeric_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/optional/capi/numeric_spec.rb')
-rw-r--r--spec/ruby/optional/capi/numeric_spec.rb24
1 files changed, 19 insertions, 5 deletions
diff --git a/spec/ruby/optional/capi/numeric_spec.rb b/spec/ruby/optional/capi/numeric_spec.rb
index ff7880a986..b2f629c1ab 100644
--- a/spec/ruby/optional/capi/numeric_spec.rb
+++ b/spec/ruby/optional/capi/numeric_spec.rb
@@ -238,7 +238,7 @@ describe "CApiNumericSpecs" do
end
describe "rb_Integer" do
- it "creates a new Integer from a String" do
+ it "creates an Integer from a String" do
i = @s.rb_Integer("8675309")
i.should be_kind_of(Integer)
i.should eql(8675309)
@@ -246,15 +246,29 @@ describe "CApiNumericSpecs" do
end
describe "rb_ll2inum" do
- it "creates a new Fixnum from a small signed long long" do
+ it "creates a Fixnum from a small signed long long" do
i = @s.rb_ll2inum_14()
i.should be_kind_of(Fixnum)
i.should eql(14)
end
end
+ describe "rb_ull2inum" do
+ it "creates a Fixnum from a small unsigned long long" do
+ i = @s.rb_ull2inum_14()
+ i.should be_kind_of(Fixnum)
+ i.should eql(14)
+ end
+
+ it "creates a positive Bignum from a negative long long" do
+ i = @s.rb_ull2inum_n14()
+ i.should be_kind_of(Bignum)
+ i.should eql(2 ** (@s.size_of_long_long * 8) - 14)
+ end
+ end
+
describe "rb_int2inum" do
- it "creates a new Fixnum from a long" do
+ it "creates a Fixnum from a long" do
i = @s.rb_int2inum_14()
i.should be_kind_of(Fixnum)
i.should eql(14)
@@ -262,13 +276,13 @@ describe "CApiNumericSpecs" do
end
describe "rb_uint2inum" do
- it "creates a new Fixnum from a long" do
+ it "creates a Fixnum from a long" do
i = @s.rb_uint2inum_14()
i.should be_kind_of(Fixnum)
i.should eql(14)
end
- it "creates a new Bignum from a negative long" do
+ it "creates a positive Bignum from a negative long" do
i = @s.rb_uint2inum_n14()
i.should be_kind_of(Bignum)
i.should eql(2 ** (@s.size_of_VALUE * 8) - 14)