mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
77 lines
1.7 KiB
Ruby
77 lines
1.7 KiB
Ruby
##
|
|
# Random Test
|
|
|
|
assert("Random#srand") do
|
|
r1 = Random.new(123)
|
|
r2 = Random.new(123)
|
|
r1.rand == r2.rand
|
|
end
|
|
|
|
assert("Kernel::srand") do
|
|
srand(234)
|
|
r1 = rand
|
|
srand(234)
|
|
r2 = rand
|
|
r1 == r2
|
|
end
|
|
|
|
assert("Random::srand") do
|
|
Random.srand(345)
|
|
r1 = rand
|
|
srand(345)
|
|
r2 = Random.rand
|
|
r1 == r2
|
|
end
|
|
|
|
assert("fixnum") do
|
|
rand(3).class == Fixnum
|
|
end
|
|
|
|
assert("float") do
|
|
rand.class == Float
|
|
end
|
|
|
|
assert("Array#shuffle") do
|
|
ary = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
|
shuffled = ary.shuffle
|
|
|
|
ary == [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] and shuffled != ary and 10.times { |x| ary.include? x }
|
|
end
|
|
|
|
assert('Array#shuffle!') do
|
|
ary = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
|
ary.shuffle!
|
|
|
|
ary != [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] and 10.times { |x| ary.include? x }
|
|
end
|
|
|
|
assert("Array#shuffle(random)") do
|
|
assert_raise(TypeError) do
|
|
# this will cause an exception due to the wrong argument
|
|
[1, 2].shuffle "Not a Random instance"
|
|
end
|
|
|
|
# verify that the same seed causes the same results
|
|
ary1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
|
shuffle1 = ary1.shuffle Random.new 345
|
|
ary2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
|
shuffle2 = ary2.shuffle Random.new 345
|
|
|
|
ary1 != shuffle1 and 10.times { |x| shuffle1.include? x } and shuffle1 == shuffle2
|
|
end
|
|
|
|
assert('Array#shuffle!(random)') do
|
|
assert_raise(TypeError) do
|
|
# this will cause an exception due to the wrong argument
|
|
[1, 2].shuffle! "Not a Random instance"
|
|
end
|
|
|
|
# verify that the same seed causes the same results
|
|
ary1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
|
ary1.shuffle! Random.new 345
|
|
ary2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
|
ary2.shuffle! Random.new 345
|
|
|
|
ary1 != [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] and 10.times { |x| ary1.include? x } and ary1 == ary2
|
|
end
|