MCPcopy Create free account
hub / github.com/JuliaStrings/utf8proc / main

Function main

test/normtest.c:10–64  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8}
9
10int main(int argc, char **argv)
11{
12 unsigned char buf[8192];
13 FILE *f = argc > 1 ? fopen(argv[1], "r") : NULL;
14 unsigned char source[1024], NFC[1024], NFD[1024], NFKC[1024], NFKD[1024];
15
16 check(f != NULL, "error opening NormalizationTest.txt");
17 while (simple_getline(buf, f) > 0) {
18 size_t offset;
19 lineno += 1;
20
21 if (buf[0] == '@') {
22 printf("line %zd: %s", lineno, buf + 1);
23 continue;
24 }
25 else if (lineno % 1000 == 0)
26 printf("checking line %zd...\n", lineno);
27
28 if (buf[0] == '#') continue;
29
30 size_t len;
31 offset = encode(source, &len, buf);
32 offset += encode(NFC, &len, buf + offset);
33 offset += encode(NFD, &len, buf + offset);
34 offset += encode(NFKC, &len, buf + offset);
35 offset += encode(NFKD, &len, buf + offset);
36
37 CHECK_NORM(NFC, NFC, source);
38 CHECK_NORM(NFC, NFC, NFC);
39 CHECK_NORM(NFC, NFC, NFD);
40 CHECK_NORM(NFC, NFKC, NFKC);
41 CHECK_NORM(NFC, NFKC, NFKD);
42
43 CHECK_NORM(NFD, NFD, source);
44 CHECK_NORM(NFD, NFD, NFC);
45 CHECK_NORM(NFD, NFD, NFD);
46 CHECK_NORM(NFD, NFKD, NFKC);
47 CHECK_NORM(NFD, NFKD, NFKD);
48
49 CHECK_NORM(NFKC, NFKC, source);
50 CHECK_NORM(NFKC, NFKC, NFC);
51 CHECK_NORM(NFKC, NFKC, NFD);
52 CHECK_NORM(NFKC, NFKC, NFKC);
53 CHECK_NORM(NFKC, NFKC, NFKD);
54
55 CHECK_NORM(NFKD, NFKD, source);
56 CHECK_NORM(NFKD, NFKD, NFC);
57 CHECK_NORM(NFKD, NFKD, NFD);
58 CHECK_NORM(NFKD, NFKD, NFKC);
59 CHECK_NORM(NFKD, NFKD, NFKD);
60 }
61 fclose(f);
62 printf("Passed tests after %zd lines!\n", lineno);
63 return 0;
64}

Callers

nothing calls this directly

Calls 3

checkFunction · 0.85
simple_getlineFunction · 0.85
encodeFunction · 0.85

Tested by

no test coverage detected