summaryrefslogtreecommitdiff
path: root/tests/uninorm/test-u32-nfc.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/uninorm/test-u32-nfc.c')
-rw-r--r--tests/uninorm/test-u32-nfc.c124
1 files changed, 60 insertions, 64 deletions
diff --git a/tests/uninorm/test-u32-nfc.c b/tests/uninorm/test-u32-nfc.c
index 119af6b2..89f0d652 100644
--- a/tests/uninorm/test-u32-nfc.c
+++ b/tests/uninorm/test-u32-nfc.c
@@ -1,5 +1,5 @@
/* Test of canonical normalization of UTF-32 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -256,71 +256,67 @@ test_u32_nfc (void)
#endif
/* Check that the sorting is not O(n²) but O(n log n). */
- {
- int pass;
- for (pass = 0; pass < 3; pass++)
- {
- size_t repeat = 1;
- size_t m = 100000;
- uint32_t *input = (uint32_t *) malloc (2 * m * sizeof (uint32_t));
- if (input != NULL)
- {
- uint32_t *expected = input + m;
- size_t m1 = m / 2;
- size_t m2 = (m - 1) / 2;
- /* NB: m1 + m2 == m - 1. */
- uint32_t *p;
- size_t i;
-
- input[0] = 0x0041;
- p = input + 1;
- switch (pass)
- {
- case 0:
- for (i = 0; i < m1; i++)
+ for (int pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint32_t *input = (uint32_t *) malloc (2 * m * sizeof (uint32_t));
+ if (input != NULL)
+ {
+ uint32_t *expected = input + m;
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint32_t *p;
+
+ input[0] = 0x0041;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ break;
+
+ case 1:
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ case 2:
+ for (size_t i = 0; i < m2; i++)
+ {
*p++ = 0x0319;
- for (i = 0; i < m2; i++)
- *p++ = 0x0300;
- break;
-
- case 1:
- for (i = 0; i < m2; i++)
*p++ = 0x0300;
- for (i = 0; i < m1; i++)
- *p++ = 0x0319;
- break;
-
- case 2:
- for (i = 0; i < m2; i++)
- {
- *p++ = 0x0319;
- *p++ = 0x0300;
- }
- for (; i < m1; i++)
- *p++ = 0x0319;
- break;
-
- default:
- abort ();
- }
-
- expected[0] = 0x00C0;
- p = expected + 1;
- for (i = 0; i < m1; i++)
- *p++ = 0x0319;
- for (i = 0; i < m2 - 1; i++)
- *p++ = 0x0300;
-
- for (; repeat > 0; repeat--)
- {
- ASSERT (check (input, m, expected, m - 1) == 0);
- ASSERT (check (expected, m - 1, expected, m - 1) == 0);
- }
-
- free (input);
- }
- }
- }
+ }
+ for (size_t i = m2; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x00C0;
+ p = expected + 1;
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (size_t i = 0; i < m2 - 1; i++)
+ *p++ = 0x0300;
+
+ for (; repeat > 0; repeat--)
+ {
+ ASSERT (check (input, m, expected, m - 1) == 0);
+ ASSERT (check (expected, m - 1, expected, m - 1) == 0);
+ }
+
+ free (input);
+ }
+ }
}
#else