/** randomly shuffle an array * for correctness, see Donald E. Knuth, The Art of Computer Programming */ static void scramble_fighters(quicklist * ql) { int qi, qlen = ql_length(ql); for (qi = 0; qi != qlen; ++qi) { int qj = qi + (rng_int() % (qlen - qi)); void *a = ql_get(ql, qi); void *b = ql_replace(ql, qj, a); ql_replace(ql, qi, b); } }
static void test_replace(CuTest * tc) { struct quicklist *ql = NULL; void * a; ql_push(&ql, (void *)data); a = ql_replace(ql, 0, (void *)(data + 1)); CuAssertPtrEquals(tc, (void *)data, a); CuAssertPtrEquals(tc, (void *)(data + 1), ql_get(ql, 0)); ql_free(ql); }