(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")