aboutsummaryrefslogtreecommitdiffstats
path: root/spec/ruby/shared/complex/float/arg.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/shared/complex/float/arg.rb')
-rw-r--r--spec/ruby/shared/complex/float/arg.rb38
1 files changed, 38 insertions, 0 deletions
diff --git a/spec/ruby/shared/complex/float/arg.rb b/spec/ruby/shared/complex/float/arg.rb
new file mode 100644
index 0000000000..ca29796610
--- /dev/null
+++ b/spec/ruby/shared/complex/float/arg.rb
@@ -0,0 +1,38 @@
+require File.expand_path('../../../../spec_helper', __FILE__)
+
+describe :float_arg, shared: true do
+ it "returns NaN if NaN" do
+ f = nan_value
+ f.send(@method).nan?.should be_true
+ end
+
+ it "returns self if NaN" do
+ f = nan_value
+ f.send(@method).should equal(f)
+ end
+
+ it "returns 0 if positive" do
+ 1.0.send(@method).should == 0
+ end
+
+ it "returns 0 if +0.0" do
+ 0.0.send(@method).should == 0
+ end
+
+ it "returns 0 if +Infinity" do
+ infinity_value.send(@method).should == 0
+ end
+
+ it "returns Pi if negative" do
+ (-1.0).send(@method).should == Math::PI
+ end
+
+ # This was established in r23960
+ it "returns Pi if -0.0" do
+ (-0.0).send(@method).should == Math::PI
+ end
+
+ it "returns Pi if -Infinity" do
+ (-infinity_value).send(@method).should == Math::PI
+ end
+end