From 045136d47599596c78e72ecb8de688671dfae669 Mon Sep 17 00:00:00 2001 From: mame Date: Thu, 30 Jul 2009 12:57:02 +0000 Subject: * test/ruby/test_rand.rb: add tests for Random class. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_rand.rb | 190 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 190 insertions(+) (limited to 'test/ruby/test_rand.rb') diff --git a/test/ruby/test_rand.rb b/test/ruby/test_rand.rb index f32696cf10..2f2e772c1b 100644 --- a/test/ruby/test_rand.rb +++ b/test/ruby/test_rand.rb @@ -168,4 +168,194 @@ class TestRand < Test::Unit::TestCase def test_big_seed assert_random_int(%w(1143843490), 0x100000000, 2**1000000-1) end + + def test_random_gc + r = Random.new(0) + %w(2357136044 2546248239 3071714933).each do |w| + assert_equal(w.to_i, r.int(0x100000000)) + end + GC.start + %w(3626093760 2588848963 3684848379).each do |w| + assert_equal(w.to_i, r.int(0x100000000)) + end + end + + def test_random_type_error + assert_raise(TypeError) { Random.new(Object.new) } + assert_raise(TypeError) { Random.new(0).int(Object.new) } + end + + def test_random_argument_error + assert_raise(ArgumentError) { Random.new(0).float(0, 0) } + end + + def test_random_seed + assert_equal(0, Random.new(0).seed) + assert_equal(0x100000000, Random.new(0x100000000).seed) + assert_equal(2**100, Random.new(2**100).seed) + end + + def test_random_dup + r1 = Random.new(0) + r2 = r1.dup + %w(2357136044 2546248239 3071714933).each do |w| + assert_equal(w.to_i, r1.int(0x100000000)) + end + %w(2357136044 2546248239 3071714933).each do |w| + assert_equal(w.to_i, r2.int(0x100000000)) + end + r2 = r1.dup + %w(3626093760 2588848963 3684848379).each do |w| + assert_equal(w.to_i, r1.int(0x100000000)) + end + %w(3626093760 2588848963 3684848379).each do |w| + assert_equal(w.to_i, r2.int(0x100000000)) + end + end + + def test_random_state + state = <