173
173
assert_equal([1,4,2,5,3], [1,2,3,4,5].shuffle)
174
assert_equal([1,4,2,5,3], [1,2,3,4,5].shuffle(random: Random.new(0)))
176
177
def test_big_seed
341
342
def test_random_bytes
343
assert_random_bytes(Random.new(0))
346
def assert_random_bytes(r)
343
347
assert_equal("", r.bytes(0))
344
348
assert_equal("\xAC".force_encoding("ASCII-8BIT"), r.bytes(1))
345
assert_equal("/\xAA\xC4\x97u\xA6\x16\xB7\xC0\xCC".force_encoding("ASCII-8BIT"), r.bytes(10))
349
assert_equal("/\xAA\xC4\x97u\xA6\x16\xB7\xC0\xCC".force_encoding("ASCII-8BIT"),
348
353
def test_random_range
349
355
r = Random.new(0)
350
%w(9 5 8).each {|w| assert_equal(w.to_i, r.rand(5..9)) }
351
%w(-237 731 383).each {|w| assert_equal(w.to_i, r.rand(-1000..1000)) }
357
assert_equal(w.to_i, rand(5..9))
358
assert_equal(w.to_i, r.rand(5..9))
360
%w(-237 731 383).each {|w|
361
assert_equal(w.to_i, rand(-1000..1000))
362
assert_equal(w.to_i, r.rand(-1000..1000))
352
364
%w(1267650600228229401496703205382
353
365
1267650600228229401496703205384
354
366
1267650600228229401496703205383).each do |w|
367
assert_equal(w.to_i, rand(2**100+5..2**100+9))
355
368
assert_equal(w.to_i, r.rand(2**100+5..2**100+9))
372
assert_instance_of(Float, v, '[ruby-core:24679]')
373
assert_include(3.1..4, v)
357
375
v = r.rand(3.1..4)
358
376
assert_instance_of(Float, v, '[ruby-core:24679]')
359
assert_includes(3.1..4, v)
377
assert_include(3.1..4, v)
380
assert_equal(now, rand(now..now))
362
381
assert_equal(now, r.rand(now..now))
378
397
assert_in_delta(1.7151893663724195, r.rand(1.0...2.0), 0.0001, '[ruby-core:24655]')
379
398
assert_in_delta(7.027633760716439, r.rand(1.0...11.0), 0.0001, '[ruby-core:24655]')
380
399
assert_in_delta(3.0897663659937937, r.rand(2.0...4.0), 0.0001, '[ruby-core:24655]')
401
assert_nothing_raised {r.rand(-Float::MAX..Float::MAX)}
383
404
def test_random_equal