core/queue: Call g_random_int_range() rather than random_range()
Using somebody else's library is probably better than relying on my own random number function. Implements #32: Remove custom RNG code Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
bc513532c1
commit
f1bcc7746e
|
@ -222,7 +222,7 @@ struct track *queue_next(struct queue *queue)
|
|||
if (size == 1)
|
||||
_q_iter_set(&queue->q_tracks, &queue->q_cur, 0);
|
||||
else if (queue_has_flag(queue, Q_RANDOM)) {
|
||||
pos = random_range(1, (size < 15) ? size : size / 3);
|
||||
pos = g_random_int_range(1, (size < 15) ? size : size / 3);
|
||||
pos += queue->q_cur.it_pos;
|
||||
_q_iter_set(&queue->q_tracks, &queue->q_cur, pos % size);
|
||||
} else {
|
||||
|
|
|
@ -298,7 +298,7 @@ static void test_rand_select()
|
|||
unsigned int i;
|
||||
struct queue q;
|
||||
|
||||
random_seed(0);
|
||||
g_random_set_seed(0);
|
||||
queue_init(&q, Q_ENABLED | Q_RANDOM, &test_ops);
|
||||
|
||||
/* Call next() on an empty queue. */
|
||||
|
@ -318,56 +318,56 @@ static void test_rand_select()
|
|||
* [val]: The value picked by q.next().
|
||||
*/
|
||||
|
||||
/* rand() = 2, q = { <>, 1, [2], 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 } */
|
||||
test_equal(queue_next(&q)->tr_track, 2);
|
||||
/* rand() = 9, q = { <>, 1, 2, 3, 4, 5, 6, 7, 8, [9], 10, 11, 12, 13 } */
|
||||
test_equal(queue_next(&q)->tr_track, 9);
|
||||
test_equal(queue_size(&q), 12);
|
||||
|
||||
/* select = 6, q = { <1>, 3, 4, 5, 6, 7, (8), 9, 10, 11, 12, 13 } */
|
||||
test_equal(queue_selected(&q, 6)->tr_track, 8);
|
||||
/* select = 6, q = { 1, 2, 3, 4, 5, 6, (7), <8>, 10, 11, 12, 13 } */
|
||||
test_equal(queue_selected(&q, 6)->tr_track, 7);
|
||||
test_equal(queue_size(&q), 11);
|
||||
|
||||
/* rand() = 2, q = { 1, 3, 4, 5, 6, <7>, 9, 10, [11], 12, 13 } */
|
||||
test_equal(queue_next(&q)->tr_track, 11);
|
||||
/* rand() = 10, q = { 1, 2, 3, 4, [5], <6>, 8, 10, 11, 12, 13 } */
|
||||
test_equal(queue_next(&q)->tr_track, 5);
|
||||
test_equal(queue_size(&q), 10);
|
||||
|
||||
/* select = 7, q = { 1, 3, 4, 5, 6, 7, 9, (<10>), 12, 13 } */
|
||||
test_equal(queue_selected(&q, 7)->tr_track, 10);
|
||||
/* select = 7, q = { 1, 2, 3, <4>, 6, 8, 10, (11), 12, 13 } */
|
||||
test_equal(queue_selected(&q, 7)->tr_track, 11);
|
||||
test_equal(queue_size(&q), 9);
|
||||
|
||||
/* rand() = 4, q = { 1, [3], 4, 5, 6, 7, <9>, 12, 13 } */
|
||||
test_equal(queue_next(&q)->tr_track, 3);
|
||||
/* rand() = 6, q = { 1, 2, 3, [4], 6, 8, <10>, 12, 13 } */
|
||||
test_equal(queue_next(&q)->tr_track, 4);
|
||||
test_equal(queue_size(&q), 8);
|
||||
|
||||
/* select = 2, q = { <1>, 4, (5), 6, 7, 9, 12, 13 } */
|
||||
test_equal(queue_selected(&q, 2)->tr_track, 5);
|
||||
/* select = 2, q = { 1, 2, (<3>), 6, 8, 10, 12, 13 } */
|
||||
test_equal(queue_selected(&q, 2)->tr_track, 3);
|
||||
test_equal(queue_size(&q), 7);
|
||||
|
||||
/* rand() = 5, q = { 1, <4>, 6, 7, 9, 12, [13] } */
|
||||
test_equal(queue_next(&q)->tr_track, 13);
|
||||
/* rand() = 1, q = { 1, <2>, [6], 8, 10, 12, 13 } */
|
||||
test_equal(queue_next(&q)->tr_track, 6);
|
||||
test_equal(queue_size(&q), 6);
|
||||
|
||||
/* select = 1, q = { 1, (4), 6, 7, 9, <12> } */
|
||||
test_equal(queue_selected(&q, 1)->tr_track, 4);
|
||||
/* select = 1, q = { 1, (<2>), 8, 10, 12, 13 } */
|
||||
test_equal(queue_selected(&q, 1)->tr_track, 2);
|
||||
test_equal(queue_size(&q), 5);
|
||||
|
||||
/* rand() = 2, q = { <1>, 6, [7], 9, 12 } */
|
||||
test_equal(queue_next(&q)->tr_track, 7);
|
||||
/* rand() = 4, q = { <1>, 8, 10, 12, [13] } */
|
||||
test_equal(queue_next(&q)->tr_track, 13);
|
||||
test_equal(queue_size(&q), 4);
|
||||
|
||||
/* rand() = 1, q = { 1, <6>, [9], 12 } */
|
||||
test_equal(queue_next(&q)->tr_track, 9);
|
||||
/* rand() = 1, q = { [1], 8, 10, <12> } */
|
||||
test_equal(queue_next(&q)->tr_track, 1);
|
||||
test_equal(queue_size(&q), 3);
|
||||
|
||||
/* select = 1, q = { 1, (<6>), 12 } */
|
||||
test_equal(queue_selected(&q, 1)->tr_track, 6);
|
||||
/* select = 1, q = { <>, 8, (10), 12 } */
|
||||
test_equal(queue_selected(&q, 1)->tr_track, 10);
|
||||
test_equal(queue_size(&q), 2);
|
||||
|
||||
/* rand() = 1, q = { <1>, [12] } */
|
||||
/* rand() = 1, q = { <8>, [12] } */
|
||||
test_equal(queue_next(&q)->tr_track, 12);
|
||||
test_equal(queue_size(&q), 1);
|
||||
|
||||
/* select = 0, q = { <1> } */
|
||||
test_equal(queue_selected(&q, 0)->tr_track, 1);
|
||||
/* select = 0, q = { (<8>) } */
|
||||
test_equal(queue_selected(&q, 0)->tr_track, 8);
|
||||
test_equal(queue_size(&q), 0);
|
||||
|
||||
/* q = { } */
|
||||
|
|
Loading…
Reference in New Issue