mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Update to ruby/spec@241f9e7
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
e59bf54b3a
commit
e87fb88be8
142 changed files with 1165 additions and 1078 deletions
|
@ -1,3 +1,4 @@
|
|||
require_relative '../../spec_helper'
|
||||
require_relative 'shared/abs'
|
||||
|
||||
describe "Numeric#abs" do
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
require_relative '../../spec_helper'
|
||||
require_relative '../../shared/complex/numeric/arg'
|
||||
require_relative 'shared/arg'
|
||||
|
||||
describe "Numeric#angle" do
|
||||
it_behaves_like :numeric_arg, :angle
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
require_relative '../../spec_helper'
|
||||
require_relative '../../shared/complex/numeric/arg'
|
||||
require_relative 'shared/arg'
|
||||
|
||||
describe "Numeric#arg" do
|
||||
it_behaves_like :numeric_arg, :arg
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
require_relative '../../spec_helper'
|
||||
require_relative '../../shared/complex/numeric/conj'
|
||||
require_relative 'shared/conj'
|
||||
|
||||
describe "Numeric#conj" do
|
||||
it_behaves_like :numeric_conj, :conj
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
require_relative '../../spec_helper'
|
||||
require_relative '../../shared/complex/numeric/conj'
|
||||
require_relative 'shared/conj'
|
||||
|
||||
describe "Numeric#conjugate" do
|
||||
it_behaves_like :numeric_conj, :conjugate
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
require_relative '../../spec_helper'
|
||||
require_relative '../../shared/complex/numeric/imag'
|
||||
require_relative 'shared/imag'
|
||||
|
||||
describe "Numeric#imag" do
|
||||
it_behaves_like :numeric_imag, :imag
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
require_relative '../../spec_helper'
|
||||
require_relative '../../shared/complex/numeric/imag'
|
||||
require_relative 'shared/imag'
|
||||
|
||||
describe "Numeric#imaginary" do
|
||||
it_behaves_like :numeric_imag, :imaginary
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
require_relative '../../spec_helper'
|
||||
require_relative '../../shared/complex/numeric/arg'
|
||||
require_relative 'shared/arg'
|
||||
|
||||
describe "Numeric#phase" do
|
||||
it_behaves_like :numeric_arg, :phase
|
||||
|
|
|
@ -1,6 +1,50 @@
|
|||
require_relative '../../spec_helper'
|
||||
require_relative '../../shared/complex/numeric/polar'
|
||||
|
||||
describe "Numeric#polar" do
|
||||
it_behaves_like :numeric_polar, :polar
|
||||
before :each do
|
||||
@pos_numbers = [
|
||||
1,
|
||||
3898172610**9,
|
||||
987.18273,
|
||||
Float::MAX,
|
||||
Rational(13,7),
|
||||
infinity_value,
|
||||
]
|
||||
@neg_numbers = @pos_numbers.map {|n| -n}
|
||||
@numbers = @pos_numbers + @neg_numbers
|
||||
@numbers.push(0, 0.0)
|
||||
end
|
||||
|
||||
it "returns a two-element Array" do
|
||||
@numbers.each do |number|
|
||||
number.polar.should be_an_instance_of(Array)
|
||||
number.polar.size.should == 2
|
||||
end
|
||||
end
|
||||
|
||||
it "sets the first value to the absolute value of self" do
|
||||
@numbers.each do |number|
|
||||
number.polar.first.should == number.abs
|
||||
end
|
||||
end
|
||||
|
||||
it "sets the last value to 0 if self is positive" do
|
||||
(@numbers - @neg_numbers).each do |number|
|
||||
number.should >= 0
|
||||
number.polar.last.should == 0
|
||||
end
|
||||
end
|
||||
|
||||
it "sets the last value to Pi if self is negative" do
|
||||
@neg_numbers.each do |number|
|
||||
number.should < 0
|
||||
number.polar.last.should == Math::PI
|
||||
end
|
||||
end
|
||||
|
||||
it "returns [NaN, NaN] if self is NaN" do
|
||||
nan_value.polar.size.should == 2
|
||||
nan_value.polar.first.nan?.should be_true
|
||||
nan_value.polar.last.nan?.should be_true
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,9 +1,33 @@
|
|||
require_relative '../../spec_helper'
|
||||
require_relative '../../shared/complex/numeric/real'
|
||||
require_relative 'fixtures/classes'
|
||||
|
||||
describe "Numeric#real" do
|
||||
it_behaves_like :numeric_real, :real
|
||||
before :each do
|
||||
@numbers = [
|
||||
20, # Integer
|
||||
398.72, # Float
|
||||
Rational(3, 4), # Rational
|
||||
bignum_value, # Bignum
|
||||
infinity_value,
|
||||
nan_value
|
||||
].map{ |n| [n, -n] }.flatten
|
||||
end
|
||||
|
||||
it "returns self" do
|
||||
@numbers.each do |number|
|
||||
if number.to_f.nan?
|
||||
number.real.nan?.should be_true
|
||||
else
|
||||
number.real.should == number
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
it "raises an ArgumentError if given any arguments" do
|
||||
@numbers.each do |number|
|
||||
lambda { number.real(number) }.should raise_error(ArgumentError)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "Numeric#real?" do
|
||||
|
|
38
spec/ruby/core/numeric/shared/arg.rb
Normal file
38
spec/ruby/core/numeric/shared/arg.rb
Normal file
|
@ -0,0 +1,38 @@
|
|||
require_relative '../../../spec_helper'
|
||||
|
||||
describe :numeric_arg, shared: true do
|
||||
before :each do
|
||||
@numbers = [
|
||||
20,
|
||||
Rational(3, 4),
|
||||
bignum_value,
|
||||
infinity_value
|
||||
]
|
||||
end
|
||||
|
||||
it "returns 0 if positive" do
|
||||
@numbers.each do |number|
|
||||
number.send(@method).should == 0
|
||||
end
|
||||
end
|
||||
|
||||
it "returns Pi if negative" do
|
||||
@numbers.each do |number|
|
||||
(0-number).send(@method).should == Math::PI
|
||||
end
|
||||
end
|
||||
|
||||
describe "with a Numeric subclass" do
|
||||
it "returns 0 if self#<(0) returns false" do
|
||||
numeric = mock_numeric('positive')
|
||||
numeric.should_receive(:<).with(0).and_return(false)
|
||||
numeric.send(@method).should == 0
|
||||
end
|
||||
|
||||
it "returns Pi if self#<(0) returns true" do
|
||||
numeric = mock_numeric('positive')
|
||||
numeric.should_receive(:<).with(0).and_return(true)
|
||||
numeric.send(@method).should == Math::PI
|
||||
end
|
||||
end
|
||||
end
|
20
spec/ruby/core/numeric/shared/conj.rb
Normal file
20
spec/ruby/core/numeric/shared/conj.rb
Normal file
|
@ -0,0 +1,20 @@
|
|||
require_relative '../../../spec_helper'
|
||||
|
||||
describe :numeric_conj, shared: true do
|
||||
before :each do
|
||||
@numbers = [
|
||||
20, # Integer
|
||||
398.72, # Float
|
||||
Rational(3, 4), # Rational
|
||||
bignum_value,
|
||||
infinity_value,
|
||||
nan_value
|
||||
]
|
||||
end
|
||||
|
||||
it "returns self" do
|
||||
@numbers.each do |number|
|
||||
number.send(@method).should equal(number)
|
||||
end
|
||||
end
|
||||
end
|
26
spec/ruby/core/numeric/shared/imag.rb
Normal file
26
spec/ruby/core/numeric/shared/imag.rb
Normal file
|
@ -0,0 +1,26 @@
|
|||
require_relative '../../../spec_helper'
|
||||
|
||||
describe :numeric_imag, shared: true do
|
||||
before :each do
|
||||
@numbers = [
|
||||
20, # Integer
|
||||
398.72, # Float
|
||||
Rational(3, 4), # Rational
|
||||
bignum_value, # Bignum
|
||||
infinity_value,
|
||||
nan_value
|
||||
].map{|n| [n,-n]}.flatten
|
||||
end
|
||||
|
||||
it "returns 0" do
|
||||
@numbers.each do |number|
|
||||
number.send(@method).should == 0
|
||||
end
|
||||
end
|
||||
|
||||
it "raises an ArgumentError if given any arguments" do
|
||||
@numbers.each do |number|
|
||||
lambda { number.send(@method, number) }.should raise_error(ArgumentError)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue