I have array of objects
array=[a1,a2,a3...a10]
How I can shuffle array elements by monkey с?
using Toybox.Math as Math
using Toybox.Test as Test;
//! shuffles `array' in place using Math.rand()
function shuffle(array) {
var n = array.size();
for (var i = n - 1; 0 < i; --i) {
var j = Math.rand() % (i + 1);
var tmp = array;
array= array[j];
array[j] = tmp;
}
}
// helper test function
function do_test_shuffle(logger, a, b)
{
shuffle(a);
var a_size = a.size();
var b_size = b.size();
Test.assertEqual(a_size, b_size);
for (var i = 0; i < a_size; ++i) {
Test.assertEqual(a, b);
}
}
(:test) function test_shuffle(logger) {
Math.srand(0xdeadbeef);
do_test_shuffle(logger, [],
[]);
do_test_shuffle(logger, [ 1 ],
[ 1 ]);
do_test_shuffle(logger, [ 1, 2 ],
[ 1, 2 ]);
do_test_shuffle(logger, [ 1, 2, 3 ],
[ 1, 2, 3 ]);
do_test_shuffle(logger, [ 1, 2, 3, 4 ],
[ 4, 3, 2, 1 ]);
do_test_shuffle(logger, [ 1, 2, 3, 4, 5 ],
[ 5, 2, 4, 3, 1 ]);
do_test_shuffle(logger, [ 1, 2, 3, 4, 5 ],
[ 1, 2, 4, 5, 3 ]);
do_test_shuffle(logger, [ 1, 2, 3, 4, 5 ],
[ 3, 2, 1, 5, 4 ]);
do_test_shuffle(logger, [ 1, 2, 3, 4, 5 ],
[ 1, 4, 5, 2, 3 ]);
return true;
}
[/code]