From ac082c94008c11765c050d2f6c3dd5e4f2de937e Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Sun, 12 Feb 2017 13:19:43 +0000 Subject: [PATCH] Add tests for the remaining is* APIs. --- tests/printcdata.c | 3 ++- tests/printucddata.c | 3 ++- tests/printucddata_cpp.cpp | 3 ++- tools/printdata.py | 39 +++++++++++++++++++++++++++++++++++--- 4 files changed, 42 insertions(+), 6 deletions(-) diff --git a/tests/printcdata.c b/tests/printcdata.c index 8580ac62..f9af2d08 100644 --- a/tests/printcdata.c +++ b/tests/printcdata.c @@ -248,7 +248,8 @@ int main(int argc, char **argv) else { for (codepoint_t c = 0; c <= 0x10FFFF; ++c) - uprintf(stdout, c, format ? format : "%pH %s %C %c %UH %LH %TH %id %ix %is %ib %iu %il\n"); + uprintf(stdout, c, format ? format : + "%pH %s %C %c %UH %LH %TH %id %ix %ic %is %ib %ip %iP %ig %iA %ia %iu %il\n"); } return 0; } diff --git a/tests/printucddata.c b/tests/printucddata.c index 62aaab8d..e410480c 100644 --- a/tests/printucddata.c +++ b/tests/printucddata.c @@ -243,7 +243,8 @@ int main(int argc, char **argv) else { for (codepoint_t c = 0; c <= 0x10FFFF; ++c) - uprintf(stdout, c, format ? format : "%pH %s %C %c %UH %LH %TH %id %ix %is %ib %iu %il\n"); + uprintf(stdout, c, format ? format : + "%pH %s %C %c %UH %LH %TH %id %ix %ic %is %ib %ip %iP %ig %iA %ia %iu %il\n"); } return 0; } diff --git a/tests/printucddata_cpp.cpp b/tests/printucddata_cpp.cpp index e5542b61..03214bae 100644 --- a/tests/printucddata_cpp.cpp +++ b/tests/printucddata_cpp.cpp @@ -243,7 +243,8 @@ int main(int argc, char **argv) else { for (ucd::codepoint_t c = 0; c <= 0x10FFFF; ++c) - uprintf(stdout, c, format ? format : "%pH %s %C %c %UH %LH %TH %id %ix %is %ib %iu %il\n"); + uprintf(stdout, c, format ? format : + "%pH %s %C %c %UH %LH %TH %id %ix %ic %is %ib %ip %iP %ig %iA %ia %iu %il\n"); } return 0; } diff --git a/tools/printdata.py b/tools/printdata.py index ebe61e92..f9db6191 100755 --- a/tools/printdata.py +++ b/tools/printdata.py @@ -43,6 +43,9 @@ if '--with-csur' in sys.argv: for codepoint in data['CodePoint']: unicode_chars[codepoint] = data +def iscntrl(data): + return 1 if data.get('Name', '') == '' else 0 + def isdigit(data): return 1 if data['CodePoint'].char() in '0123456789' else 0 @@ -63,6 +66,36 @@ def isblank(data): # word separator else: return 0 +def ispunct(data): + if data.get('GeneralCategory', 'Cn')[0] in 'P': + return 1 + else: + return 0 + +def isprint(data): + if data.get('GeneralCategory', 'Cn')[0] in 'LMNPSZ': # not in 'CI' + return 1 + else: + return 0 + +def isgraph(data): + if data.get('GeneralCategory', 'Cn')[0] in 'LMNPS': # not in 'CZI' + return 1 + else: + return 0 + +def isalnum(data): + if data.get('GeneralCategory', 'Cn')[0] in 'LN': + return 1 + else: + return 0 + +def isalpha(data): + if data.get('GeneralCategory', 'Cn')[0] in 'L': + return 1 + else: + return 0 + def isupper(data): if data.get('LowerCase', null) != null: return 1 @@ -92,10 +125,10 @@ if __name__ == '__main__': if title == null: title = codepoint if upper == null: upper = codepoint if lower == null: lower = codepoint - print('%s %s %s %s %s %s %s %s %s %s %s %s %s' % ( + print('%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s' % ( codepoint, script, data.get('GeneralCategory', 'Cn')[0], data.get('GeneralCategory', 'Cn'), upper, lower, title, isdigit(data), isxdigit(data), - isspace(data), isblank(data), - isupper(data), islower(data))) + iscntrl(data), isspace(data), isblank(data), ispunct(data), + isprint(data), isgraph(data), isalnum(data), isalpha(data), isupper(data), islower(data)))