builtins/srand_seeding_parens.rb

tests/_examples/builtins/srand_seeding_parens.rb in the metorex repository.

srand(10)
puts srand(20)
puts srand(0)
puts srand(-17)

srand(10)
first = rand
srand(10)
puts(first == rand)

srand(99)
sequence = 3.times.map { rand }
srand(99)
puts(sequence == 3.times.map { rand })

srand(3.8)
puts srand

class Seed
  def to_int
    7
  end
end
srand(Seed.new)
puts srand

previous = srand
puts previous.is_a?(Integer)
puts(srand != 0)

[nil, "7"].each do |bad|
  begin
    srand(bad)
  rescue TypeError => error
    puts error.class
  end
end

puts Kernel.private_instance_methods(false).include?(:srand)

Output:

10
20
0
true
true
3
7
true
true
TypeError
TypeError
true