diff options
Diffstat (limited to 'spec/ruby/core/random/rand_spec.rb')
| -rw-r--r-- | spec/ruby/core/random/rand_spec.rb | 46 |
1 files changed, 22 insertions, 24 deletions
diff --git a/spec/ruby/core/random/rand_spec.rb b/spec/ruby/core/random/rand_spec.rb index d1a76e5dac..c882db6381 100644 --- a/spec/ruby/core/random/rand_spec.rb +++ b/spec/ruby/core/random/rand_spec.rb @@ -4,7 +4,6 @@ require_relative 'shared/rand' describe "Random.rand" do it_behaves_like :random_number, :rand, Random.new - it_behaves_like :random_number, :random_number, Random.new it_behaves_like :random_number, :rand, Random it "returns a Float >= 0 if no max argument is passed" do @@ -46,13 +45,13 @@ describe "Random.rand" do it "coerces arguments to Integers with #to_int" do obj = mock_numeric('int') obj.should_receive(:to_int).and_return(99) - Random.rand(obj).should be_kind_of(Integer) + Random.rand(obj).should.is_a?(Integer) end end describe "Random#rand with Fixnum" do it "returns an Integer" do - Random.new.rand(20).should be_an_instance_of(Fixnum) + Random.new.rand(20).should.instance_of?(Integer) end it "returns a Fixnum greater than or equal to 0" do @@ -83,20 +82,20 @@ describe "Random#rand with Fixnum" do it "raises an ArgumentError when the argument is 0" do -> do Random.new.rand(0) - end.should raise_error(ArgumentError) + end.should.raise(ArgumentError) end it "raises an ArgumentError when the argument is negative" do -> do Random.new.rand(-12) - end.should raise_error(ArgumentError) + end.should.raise(ArgumentError) end end describe "Random#rand with Bignum" do it "typically returns a Bignum" do rnd = Random.new(1) - 10.times.map{ rnd.rand(bignum_value*2) }.max.should be_an_instance_of(Bignum) + 10.times.map{ rnd.rand(bignum_value*2) }.max.should.instance_of?(Integer) end it "returns a Bignum greater than or equal to 0" do @@ -122,13 +121,13 @@ describe "Random#rand with Bignum" do it "raises an ArgumentError when the argument is negative" do -> do Random.new.rand(-bignum_value) - end.should raise_error(ArgumentError) + end.should.raise(ArgumentError) end end describe "Random#rand with Float" do it "returns a Float" do - Random.new.rand(20.43).should be_an_instance_of(Float) + Random.new.rand(20.43).should.instance_of?(Float) end it "returns a Float greater than or equal to 0.0" do @@ -154,25 +153,25 @@ describe "Random#rand with Float" do it "raises an ArgumentError when the argument is negative" do -> do Random.new.rand(-1.234567) - end.should raise_error(ArgumentError) + end.should.raise(ArgumentError) end end describe "Random#rand with Range" do it "returns an element from the Range" do - Random.new.rand(20..43).should be_an_instance_of(Fixnum) + Random.new.rand(20..43).should.instance_of?(Integer) end it "supports custom object types" do - rand(RandomSpecs::CustomRangeInteger.new(1)..RandomSpecs::CustomRangeInteger.new(42)).should be_an_instance_of(RandomSpecs::CustomRangeInteger) - rand(RandomSpecs::CustomRangeFloat.new(1.0)..RandomSpecs::CustomRangeFloat.new(42.0)).should be_an_instance_of(RandomSpecs::CustomRangeFloat) - rand(Time.now..Time.now).should be_an_instance_of(Time) + rand(RandomSpecs::CustomRangeInteger.new(1)..RandomSpecs::CustomRangeInteger.new(42)).should.instance_of?(RandomSpecs::CustomRangeInteger) + rand(RandomSpecs::CustomRangeFloat.new(1.0)..RandomSpecs::CustomRangeFloat.new(42.0)).should.instance_of?(RandomSpecs::CustomRangeFloat) + rand(Time.now..Time.now).should.instance_of?(Time) end it "returns an object that is a member of the Range" do prng = Random.new r = 20..30 - 20.times { r.member?(prng.rand(r)).should be_true } + 20.times { r.member?(prng.rand(r)).should == true } end it "works with inclusive ranges" do @@ -202,25 +201,24 @@ describe "Random#rand with Range" do end it "considers Integers as Floats if one end point is a float" do - Random.new(42).rand(0.0..1).should be_kind_of(Float) - Random.new(42).rand(0..1.0).should be_kind_of(Float) + Random.new(42).rand(0.0..1).should.is_a?(Float) + Random.new(42).rand(0..1.0).should.is_a?(Float) + end + + it "returns a float within a given float range" do + Random.new(42).rand(0.0...100.0).should == 37.454011884736246 + Random.new(42).rand(-100.0...0.0).should == -62.545988115263754 end it "raises an ArgumentError when the startpoint lacks #+ and #- methods" do -> do Random.new.rand(Object.new..67) - end.should raise_error(ArgumentError) + end.should.raise(ArgumentError) end it "raises an ArgumentError when the endpoint lacks #+ and #- methods" do -> do Random.new.rand(68..Object.new) - end.should raise_error(ArgumentError) - end -end - -ruby_version_is "2.6" do - describe "Random.random_number" do - it_behaves_like :random_number, :random_number, Random + end.should.raise(ArgumentError) end end |
