mirror of
https://github.com/dankamongmen/notcurses.git
synced 2024-11-08 01:10:23 +00:00
69 lines
1.8 KiB
C++
69 lines
1.8 KiB
C++
#include "main.h"
|
|
#include "internal.h"
|
|
|
|
// some simple tests to ensure the libunistring we've compiled/linked against
|
|
// behaves as expected.
|
|
|
|
TEST_CASE("Libunistring") {
|
|
auto nc_ = testing_notcurses();
|
|
if(!nc_){
|
|
return;
|
|
}
|
|
ncplane* ncp_ = notcurses_stdplane(nc_);
|
|
REQUIRE(ncp_);
|
|
|
|
SUBCASE("WordbreakChars") {
|
|
const wchar_t breakers[] = {
|
|
// L'\u0009', // horizontal tab
|
|
L'\u0020', // space
|
|
// L'\u007c', // vertical line
|
|
// L'\u00ad', // soft hyphen
|
|
// L'\u058a', // armenian hyphen
|
|
// L'\u0f0b', // tibetan mark intersyllabic tsheg
|
|
// L'\u1361', // ethiopic wordspace
|
|
L'\u1680', // ogham space mark
|
|
//L'\u17d5', // khmer sign bariyoosan
|
|
L'\u2000', // en quad
|
|
L'\u2001', // em quad
|
|
L'\u2002', // en quad
|
|
L'\u2003', // em quad
|
|
L'\u2004', // three-per-em space
|
|
L'\u2005', // four-per-em space
|
|
L'\u2006', // six-per-em space
|
|
L'\u2008', // punctuation space
|
|
L'\u2009', // thin space
|
|
L'\u200a', // hair space
|
|
//L'\u2010', // hyphen
|
|
//L'\u2027', // hyphenation point
|
|
0
|
|
}, *b;
|
|
for(b = breakers ; *b ; ++b){
|
|
if(!iswordbreak(*b)){
|
|
fprintf(stderr, "Unexpectedly fails to wordbreak: U+%04x [%lc]\n", *b, *b);
|
|
}
|
|
CHECK(iswordbreak(*b));
|
|
}
|
|
CHECK(!islinebreak(L'\u000d'));
|
|
}
|
|
|
|
// \u000d carriage return is *not* a linebreaker
|
|
SUBCASE("LinebreakChars") {
|
|
const wchar_t breakers[] = {
|
|
L'\u000a', // linefeed
|
|
L'\u000b', // vertical tab
|
|
L'\u000c', // formfeed
|
|
0
|
|
}, *b;
|
|
for(b = breakers ; *b ; ++b){
|
|
if(!islinebreak(*b)){
|
|
fprintf(stderr, "Unexpectedly fails to linebreak: U+%04x [%lc]\n", *b, *b);
|
|
}
|
|
CHECK(islinebreak(*b));
|
|
}
|
|
CHECK(!islinebreak(L'\u000d'));
|
|
}
|
|
|
|
CHECK(0 == notcurses_stop(nc_));
|
|
|
|
}
|