core :: AbstractArray :: shuffle
var a = new Array[Int]
a.shuffle
assert a.is_empty
a.add 1
a.shuffle
assert a == [1]
a.add 2
a.shuffle
assert a == [1,2] or a == [2,1]
ENSURE self.shuffle.has_exactly(old(self))
# Reorder randomly the elements in self.
#
# ~~~
# var a = new Array[Int]
#
# a.shuffle
# assert a.is_empty
#
# a.add 1
# a.shuffle
# assert a == [1]
#
# a.add 2
# a.shuffle
# assert a == [1,2] or a == [2,1]
# ~~~
#
# ENSURE self.shuffle.has_exactly(old(self))
fun shuffle
do
for i in [0..length[ do
var j = i + (length-i).rand
var tmp = self[i]
self[i] = self[j]
self[j] = tmp
end
end
lib/core/math.nit:512,2--538,4