summaryrefslogtreecommitdiff
path: root/spec/ruby/optional/capi/numeric_spec.rb
diff options
context:
space:
mode:
authorBenoit Daloze <eregontp@gmail.com>2020-02-28 19:07:17 +0100
committerBenoit Daloze <eregontp@gmail.com>2020-02-28 19:07:17 +0100
commita0f5ff4c3cd05f8717be2bf1d79f0817f288d398 (patch)
tree441f409cf816cf8a61dacdbaf204ae9f5cbe2f18 /spec/ruby/optional/capi/numeric_spec.rb
parent5d210501825e1682e68cbfc2be424fc339f382fa (diff)
Update to ruby/spec@41bf282
Diffstat (limited to 'spec/ruby/optional/capi/numeric_spec.rb')
-rw-r--r--spec/ruby/optional/capi/numeric_spec.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/spec/ruby/optional/capi/numeric_spec.rb b/spec/ruby/optional/capi/numeric_spec.rb
index d76f353850..de7e180414 100644
--- a/spec/ruby/optional/capi/numeric_spec.rb
+++ b/spec/ruby/optional/capi/numeric_spec.rb
@@ -143,6 +143,34 @@ describe "CApiNumericSpecs" do
end
end
+ describe "NUM2SHORT" do
+ it "raises a TypeError if passed nil" do
+ -> { @s.NUM2SHORT(nil) }.should raise_error(TypeError)
+ end
+
+ it "converts a Float" do
+ @s.NUM2SHORT(4.2).should == 4
+ end
+
+ it "converts a Fixnum" do
+ @s.NUM2SHORT(5).should == 5
+ end
+
+ it "converts -1 to an signed number" do
+ @s.NUM2SHORT(-1).should == -1
+ end
+
+ it "raises a RangeError if the value is more than 32bits" do
+ -> { @s.NUM2SHORT(0xffff_ffff+1) }.should raise_error(RangeError)
+ end
+
+ it "calls #to_int to coerce the value" do
+ obj = mock("number")
+ obj.should_receive(:to_int).and_return(2)
+ @s.NUM2SHORT(obj).should == 2
+ end
+ end
+
describe "INT2NUM" do
it "raises a TypeError if passed nil" do
-> { @s.INT2NUM(nil) }.should raise_error(TypeError)