X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Flibpspp%2Fstringi-set-test.c;h=fd2645b51f74ae0b3106698d6793bb5503b65460;hb=b525a9596e60d5ae4c6c464b4a426b77ade3dd72;hp=d7526bbf59da5ca2f2b1adc981dac007d902a10a;hpb=89c05dfe33f9542e60e66dd383f7a514849b5947;p=pspp diff --git a/tests/libpspp/stringi-set-test.c b/tests/libpspp/stringi-set-test.c index d7526bbf59..fd2645b51f 100644 --- a/tests/libpspp/stringi-set-test.c +++ b/tests/libpspp/stringi-set-test.c @@ -103,18 +103,18 @@ swap (int *a, int *b) *b = t; } -/* Reverses the order of the CNT integers starting at VALUES. */ +/* Reverses the order of the N integers starting at VALUES. */ static void -reverse (int *values, size_t cnt) +reverse (int *values, size_t n) { size_t i = 0; - size_t j = cnt; + size_t j = n; while (j > i) swap (&values[i++], &values[--j]); } -/* Arranges the CNT elements in VALUES into the lexicographically +/* Arranges the N elements in VALUES into the lexicographically next greater permutation. Returns true if successful. If VALUES is already the lexicographically greatest permutation of its elements (i.e. ordered from greatest to @@ -122,26 +122,26 @@ reverse (int *values, size_t cnt) permutation (i.e. ordered from smallest to largest) and returns false. */ static bool -next_permutation (int *values, size_t cnt) +next_permutation (int *values, size_t n) { - if (cnt > 0) + if (n > 0) { - size_t i = cnt - 1; + size_t i = n - 1; while (i != 0) { i--; if (values[i] < values[i + 1]) { size_t j; - for (j = cnt - 1; values[i] >= values[j]; j--) + for (j = n - 1; values[i] >= values[j]; j--) continue; swap (values + i, values + j); - reverse (values + (i + 1), cnt - (i + 1)); + reverse (values + (i + 1), n - (i + 1)); return true; } } - reverse (values, cnt); + reverse (values, n); } return false; @@ -157,18 +157,18 @@ factorial (unsigned int n) return value; } -/* Randomly shuffles the CNT elements in ARRAY, each of which is +/* Randomly shuffles the N elements in ARRAY, each of which is SIZE bytes in size. */ static void -random_shuffle (void *array_, size_t cnt, size_t size) +random_shuffle (void *array_, size_t n, size_t size) { char *array = array_; char *tmp = xmalloc (size); size_t i; - for (i = 0; i < cnt; i++) + for (i = 0; i < n; i++) { - size_t j = rand () % (cnt - i) + i; + size_t j = rand () % (n - i) + i; if (i != j) { memcpy (tmp, array + j * size, size); @@ -195,17 +195,17 @@ check_set_contains (struct stringi_set *set, const char *string) check (!utf8_strcasecmp (string, stringi_set_node_get_string (node))); } -/* Checks that SET contains the CNT strings in DATA, that its structure is +/* Checks that SET contains the N strings in DATA, that its structure is correct, and that certain operations on SET produce the expected results. */ static void -check_stringi_set (struct stringi_set *set, const int data[], size_t cnt) +check_stringi_set (struct stringi_set *set, const int data[], size_t n) { size_t i; - check (stringi_set_is_empty (set) == (cnt == 0)); - check (stringi_set_count (set) == cnt); + check (stringi_set_is_empty (set) == (n == 0)); + check (stringi_set_count (set) == n); - for (i = 0; i < cnt; i++) + for (i = 0; i < n; i++) { const char *s; char copy[16]; @@ -226,7 +226,7 @@ check_stringi_set (struct stringi_set *set, const int data[], size_t cnt) check (!stringi_set_contains (set, "xxx")); check (stringi_set_find_node (set, "") == NULL); - if (cnt == 0) + if (n == 0) { check (stringi_set_first (set) == NULL); free (stringi_set_get_array (set)); @@ -239,9 +239,9 @@ check_stringi_set (struct stringi_set *set, const int data[], size_t cnt) int left; array = stringi_set_get_array (set); - data_copy = xmemdup (data, cnt * sizeof *data); - left = cnt; - for (node = stringi_set_first (set), i = 0; i < cnt; + data_copy = xmemdup (data, n * sizeof *data); + left = n; + for (node = stringi_set_first (set), i = 0; i < n; node = stringi_set_next (set, node), i++) { const char *s = stringi_set_node_get_string (node); @@ -264,7 +264,7 @@ check_stringi_set (struct stringi_set *set, const int data[], size_t cnt) free (array); array = stringi_set_get_sorted_array (set); - for (i = 0; i < cnt; i++) + for (i = 0; i < n; i++) { if (i > 0) check (utf8_strcasecmp (array[i - 1], array[i]) < 0); @@ -274,29 +274,29 @@ check_stringi_set (struct stringi_set *set, const int data[], size_t cnt) } } -/* Inserts the CNT strings from 0 to CNT - 1 (inclusive) into a set in the +/* Inserts the N strings from 0 to N - 1 (inclusive) into a set in the order specified by INSERTIONS, then deletes them in the order specified by DELETIONS, checking the set's contents for correctness after each operation. */ static void test_insert_delete (const int insertions[], const int deletions[], - size_t cnt) + size_t n) { struct stringi_set set; size_t i; stringi_set_init (&set); check_stringi_set (&set, NULL, 0); - for (i = 0; i < cnt; i++) + for (i = 0; i < n; i++) { check (stringi_set_insert (&set, make_string (insertions[i]))); check_stringi_set (&set, insertions, i + 1); } - for (i = 0; i < cnt; i++) + for (i = 0; i < n; i++) { check (stringi_set_delete (&set, make_string (deletions[i]))); - check_stringi_set (&set, deletions + i + 1, cnt - i - 1); + check_stringi_set (&set, deletions + i + 1, n - i - 1); } stringi_set_destroy (&set); } @@ -307,37 +307,37 @@ static void test_insert_any_remove_any (void) { const int max_elems = 5; - int cnt; + int n; - for (cnt = 0; cnt <= max_elems; cnt++) + for (n = 0; n <= max_elems; n++) { int *insertions, *deletions; unsigned int ins_n_perms; int i; - insertions = xnmalloc (cnt, sizeof *insertions); - deletions = xnmalloc (cnt, sizeof *deletions); - for (i = 0; i < cnt; i++) + insertions = xnmalloc (n, sizeof *insertions); + deletions = xnmalloc (n, sizeof *deletions); + for (i = 0; i < n; i++) insertions[i] = i; for (ins_n_perms = 0; - ins_n_perms == 0 || next_permutation (insertions, cnt); + ins_n_perms == 0 || next_permutation (insertions, n); ins_n_perms++) { unsigned int del_n_perms; int i; - for (i = 0; i < cnt; i++) + for (i = 0; i < n; i++) deletions[i] = i; for (del_n_perms = 0; - del_n_perms == 0 || next_permutation (deletions, cnt); + del_n_perms == 0 || next_permutation (deletions, n); del_n_perms++) - test_insert_delete (insertions, deletions, cnt); + test_insert_delete (insertions, deletions, n); - check (del_n_perms == factorial (cnt)); + check (del_n_perms == factorial (n)); } - check (ins_n_perms == factorial (cnt)); + check (ins_n_perms == factorial (n)); free (insertions); free (deletions); @@ -350,23 +350,23 @@ static void test_insert_any_remove_same (void) { const int max_elems = 7; - int cnt; + int n; - for (cnt = 0; cnt <= max_elems; cnt++) + for (n = 0; n <= max_elems; n++) { int *values; unsigned int n_permutations; int i; - values = xnmalloc (cnt, sizeof *values); - for (i = 0; i < cnt; i++) + values = xnmalloc (n, sizeof *values); + for (i = 0; i < n; i++) values[i] = i; for (n_permutations = 0; - n_permutations == 0 || next_permutation (values, cnt); + n_permutations == 0 || next_permutation (values, n); n_permutations++) - test_insert_delete (values, values, cnt); - check (n_permutations == factorial (cnt)); + test_insert_delete (values, values, n); + check (n_permutations == factorial (n)); free (values); } @@ -379,29 +379,29 @@ static void test_insert_any_remove_reverse (void) { const int max_elems = 7; - int cnt; + int n; - for (cnt = 0; cnt <= max_elems; cnt++) + for (n = 0; n <= max_elems; n++) { int *insertions, *deletions; unsigned int n_permutations; int i; - insertions = xnmalloc (cnt, sizeof *insertions); - deletions = xnmalloc (cnt, sizeof *deletions); - for (i = 0; i < cnt; i++) + insertions = xnmalloc (n, sizeof *insertions); + deletions = xnmalloc (n, sizeof *deletions); + for (i = 0; i < n; i++) insertions[i] = i; for (n_permutations = 0; - n_permutations == 0 || next_permutation (insertions, cnt); + n_permutations == 0 || next_permutation (insertions, n); n_permutations++) { - memcpy (deletions, insertions, sizeof *insertions * cnt); - reverse (deletions, cnt); + memcpy (deletions, insertions, sizeof *insertions * n); + reverse (deletions, n); - test_insert_delete (insertions, deletions, cnt); + test_insert_delete (insertions, deletions, n); } - check (n_permutations == factorial (cnt)); + check (n_permutations == factorial (n)); free (insertions); free (deletions); @@ -414,27 +414,27 @@ test_random_sequence (void) { const int max_elems = 64; const int max_trials = 8; - int cnt; + int n; - for (cnt = 0; cnt <= max_elems; cnt += 2) + for (n = 0; n <= max_elems; n += 2) { int *insertions, *deletions; int trial; int i; - insertions = xnmalloc (cnt, sizeof *insertions); - deletions = xnmalloc (cnt, sizeof *deletions); - for (i = 0; i < cnt; i++) + insertions = xnmalloc (n, sizeof *insertions); + deletions = xnmalloc (n, sizeof *deletions); + for (i = 0; i < n; i++) insertions[i] = i; - for (i = 0; i < cnt; i++) + for (i = 0; i < n; i++) deletions[i] = i; for (trial = 0; trial < max_trials; trial++) { - random_shuffle (insertions, cnt, sizeof *insertions); - random_shuffle (deletions, cnt, sizeof *deletions); + random_shuffle (insertions, n, sizeof *insertions); + random_shuffle (deletions, n, sizeof *deletions); - test_insert_delete (insertions, deletions, cnt); + test_insert_delete (insertions, deletions, n); } free (insertions);