38 lines
984 B
Scheme
38 lines
984 B
Scheme
(define-module (tests test-uniseg)
|
|
#:use-module (uniseg)
|
|
#:use-module (srfi srfi-64))
|
|
|
|
(test-begin "test-uniseg")
|
|
|
|
(test-equal "linefeed"
|
|
'line-feed (char->grapheme-property #\x000a) )
|
|
|
|
(test-equal "zerowidth joiner"
|
|
'zero-width-joiner (char->grapheme-property #\x200d))
|
|
|
|
(test-equal "doublewidth"
|
|
2 (char-width #\〈))
|
|
|
|
(test-equal "japanese widths"
|
|
36 (string-width "トランスジェンダーの権利は人権です!"))
|
|
|
|
(test-equal "korean/hangul"
|
|
27 (string-width "트랜스젠더 권리는 인권이다!"))
|
|
|
|
(test-equal "ascii"
|
|
30 (string-width "Trans rights are human rights!"))
|
|
|
|
(test-equal "emoji"
|
|
33 (string-width "Trans 🏳️⚧️ rights are human rights!"))
|
|
|
|
(test-equal "cjk tone mark"
|
|
0 (char-width #\x302B))
|
|
|
|
;; TODO: get practical sentences, sorry to native speakers
|
|
(test-equal "cjk with tone mark"
|
|
2 (string-width "⺏〫"))
|
|
|
|
(test-equal "cjk tone mark property"
|
|
'extend (char->grapheme-property #\x302B))
|
|
|
|
(test-end "test-uniseg")
|