USING: tools.test sequences.parser unicode.categories kernel accessors ; IN: sequences.parser.tests [ "hello" ] [ "hello" [ take-rest ] parse-sequence ] unit-test [ "hi" " how are you?" ] [ "hi how are you?" [ [ [ current blank? ] take-until ] [ take-rest ] bi ] parse-sequence ] unit-test [ "foo" ";bar" ] [ "foo;bar" [ [ CHAR: ; take-until-object ] [ take-rest ] bi ] parse-sequence ] unit-test [ "foo " "and bar" ] [ "foo and bar" [ [ "and" take-until-sequence ] [ take-rest ] bi ] parse-sequence ] unit-test [ "foo " " bar" ] [ "foo and bar" [ [ "and" take-until-sequence ] [ "and" take-sequence drop ] [ take-rest ] tri ] parse-sequence ] unit-test [ "foo " " bar" ] [ "foo and bar" [ [ "and" take-until-sequence* ] [ take-rest ] bi ] parse-sequence ] unit-test [ { 1 2 } ] [ { 1 2 3 4 } { 3 4 } take-until-sequence ] unit-test [ f "aaaa" ] [ "aaaa" [ "b" take-until-sequence ] [ take-rest ] bi ] unit-test [ 6 ] [ " foo " [ skip-whitespace n>> ] parse-sequence ] unit-test [ { 1 2 } ] [ { 1 2 3 } [ current 3 = ] take-until ] unit-test [ "ab" ] [ "abcd" "ab" take-sequence ] unit-test [ f ] [ "abcd" "lol" take-sequence ] unit-test [ "ab" ] [ "abcd" [ "lol" take-sequence drop ] [ "ab" take-sequence ] bi ] unit-test [ "" ] [ "abcd" "" take-sequence ] unit-test [ "cd" ] [ "abcd" [ "ab" take-sequence drop ] [ "cd" take-sequence ] bi ] unit-test [ f ] [ "" take-rest ] unit-test [ f ] [ "abc" dup "abc" take-sequence drop take-rest ] unit-test [ f ] [ "abc" "abcdefg" take-sequence ] unit-test [ "1234" ] [ "1234f" take-integer ] unit-test [ "yes" ] [ "yes1234f" [ take-integer drop ] [ "yes" take-sequence ] bi ] unit-test [ f ] [ "" 4 take-n ] unit-test [ "abcd" ] [ "abcd" 4 take-n ] unit-test [ "abcd" "efg" ] [ "abcdefg" [ 4 take-n ] [ take-rest ] bi ] unit-test [ f ] [ "\n" take-integer ] unit-test [ "\n" ] [ "\n" [ ] take-while ] unit-test [ f ] [ "\n" [ not ] take-while ] unit-test