2009-01-06 11:19:19 -05:00
|
|
|
|
USING: tools.test unicode.breaks sequences math kernel splitting
|
|
|
|
|
unicode.categories io.pathnames io.encodings.utf8 io.files
|
2009-01-07 13:23:07 -05:00
|
|
|
|
strings quotations math.parser locals ;
|
2009-01-06 11:19:19 -05:00
|
|
|
|
IN: unicode.breaks.tests
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
2008-02-01 16:00:02 -05:00
|
|
|
|
[ "\u001112\u001161\u0011abA\u000300a\r\r\n" ]
|
|
|
|
|
[ "\r\n\raA\u000300\u001112\u001161\u0011ab" string-reverse ] unit-test
|
2007-09-20 18:09:08 -04:00
|
|
|
|
[ "dcba" ] [ "abcd" string-reverse ] unit-test
|
2008-02-01 16:00:02 -05:00
|
|
|
|
[ 3 ] [ "\u001112\u001161\u0011abA\u000300a"
|
2008-01-28 00:54:38 -05:00
|
|
|
|
dup last-grapheme head last-grapheme ] unit-test
|
2009-01-06 11:19:19 -05:00
|
|
|
|
|
2009-03-31 22:48:43 -04:00
|
|
|
|
[ 3 ] [ 2 "hello" first-grapheme-from ] unit-test
|
|
|
|
|
[ 1 ] [ 2 "hello" last-grapheme-from ] unit-test
|
|
|
|
|
|
2009-07-03 22:22:46 -04:00
|
|
|
|
[ 4 ] [ 2 "what am I saying" first-word-from ] unit-test
|
|
|
|
|
[ 0 ] [ 2 "what am I saying" last-word-from ] unit-test
|
|
|
|
|
[ 16 ] [ 11 "what am I saying" first-word-from ] unit-test
|
|
|
|
|
[ 10 ] [ 11 "what am I saying" last-word-from ] unit-test
|
|
|
|
|
|
2009-01-06 11:19:19 -05:00
|
|
|
|
: grapheme-break-test ( -- filename )
|
2009-02-15 20:53:21 -05:00
|
|
|
|
"vocab:unicode/breaks/GraphemeBreakTest.txt" ;
|
2009-01-06 11:19:19 -05:00
|
|
|
|
|
2009-01-07 13:23:07 -05:00
|
|
|
|
: word-break-test ( -- filename )
|
2009-02-15 20:53:21 -05:00
|
|
|
|
"vocab:unicode/breaks/WordBreakTest.txt" ;
|
2009-01-07 13:23:07 -05:00
|
|
|
|
|
|
|
|
|
: parse-test-file ( file-name -- tests )
|
|
|
|
|
utf8 file-lines
|
2009-01-06 11:19:19 -05:00
|
|
|
|
[ "#" split1 drop ] map harvest [
|
|
|
|
|
"÷" split
|
|
|
|
|
[ "×" split [ [ blank? ] trim hex> ] map harvest >string ] map
|
|
|
|
|
harvest
|
|
|
|
|
] map ;
|
|
|
|
|
|
2009-01-07 13:23:07 -05:00
|
|
|
|
:: test ( tests quot -- )
|
|
|
|
|
tests [
|
|
|
|
|
[ 1quotation ]
|
|
|
|
|
[ concat [ quot call [ "" like ] map ] curry ] bi unit-test
|
|
|
|
|
] each ;
|
|
|
|
|
|
2009-04-22 08:05:00 -04:00
|
|
|
|
: grapheme-test ( tests -- )
|
2009-01-06 11:19:19 -05:00
|
|
|
|
[
|
|
|
|
|
[ 1quotation ]
|
|
|
|
|
[ concat [ >graphemes [ "" like ] map ] curry ] bi unit-test
|
|
|
|
|
] each ;
|
|
|
|
|
|
2009-01-07 13:23:07 -05:00
|
|
|
|
grapheme-break-test parse-test-file [ >graphemes ] test
|
2009-01-07 16:08:08 -05:00
|
|
|
|
word-break-test parse-test-file [ >words ] test
|
2009-03-11 16:51:54 -04:00
|
|
|
|
|
|
|
|
|
[ { t f t t f t } ] [ 6 [ "as df" word-break-at? ] map ] unit-test
|