#!/usr/local/bin/ruby
require "GSL"
include GSL::Random
# shuffling and sampling
# shuffle, choose, and sample are module functions and methods
# for the Array class
STDERR.puts "Running tests for RND..."
r = RNG.new
puts "Shuffling as a module function"
data = [[1,2,3,4,5], [1.1,2.2,3.3,4.4,5.5], ["a","b","c","d","e"]]
data.each do |a|
puts "\nShuffling #{a[0].type}..."
puts a.join ","
10.times do
RND.shuffle r, a
puts a.join ","
end
end
puts "\nShuffling as a method of Array"
data = [[1,2,3,4,5], [1.1,2.2,3.3,4.4,5.5], ["a","b","c","d","e"]]
data.each do |a|
puts "\nShuffling #{a[0].type}..."
puts a.join ","
10.times do
a.shuffle r
puts a.join ","
end
end
lotto = Array.new 49
lotto.each_index { |i| lotto[i] = i+1 }
puts "\nChoosing elements as a module function"
10.times do
a = RND.choose r, 6, lotto
puts a.join ","
end
puts "\nChoosing elements as a method of Array"
10.times do
a = lotto.choose r, 6
puts a.join ","
end
dice = [1,2,3,4,5,6]
puts "\nSampling elements as a module function"
10.times do
a = RND.sample r, 10, dice
puts a.join ","
end
puts "\nSampling elements as a method of Array"
10.times do
a = dice.sample r, 10
puts a.join ","
end
STDERR.puts "\ndone."