2005-05-14 21:15:50 -04:00
|
|
|
IN: temporary
|
2006-05-15 01:01:47 -04:00
|
|
|
USING: arrays kernel math namespaces sequences
|
2005-10-14 04:05:02 -04:00
|
|
|
sequences-internals strings test vectors ;
|
2005-05-14 21:15:50 -04:00
|
|
|
|
2006-01-02 00:51:03 -05:00
|
|
|
[ V{ 1 2 3 4 } ] [ 1 5 dup <slice> >vector ] unit-test
|
|
|
|
|
[ 3 ] [ 1 4 dup <slice> length ] unit-test
|
2005-05-15 21:17:56 -04:00
|
|
|
[ 2 ] [ 1 3 { 1 2 3 4 } <slice> length ] unit-test
|
2005-10-29 23:25:38 -04:00
|
|
|
[ V{ 2 3 } ] [ 1 3 { 1 2 3 4 } <slice> >vector ] unit-test
|
2006-07-29 20:36:25 -04:00
|
|
|
[ V{ 4 5 } ] [ { 1 2 3 4 5 } 2 tail-slice* >vector ] unit-test
|
2006-01-02 00:51:03 -05:00
|
|
|
[ V{ 3 4 } ] [ 2 4 1 10 dup <slice> subseq >vector ] unit-test
|
|
|
|
|
[ V{ 3 4 } ] [ 0 2 2 4 1 10 dup <slice> <slice> subseq >vector ] unit-test
|
2006-07-29 20:36:25 -04:00
|
|
|
[ "cba" ] [ "abcdef" 3 head-slice reverse ] unit-test
|
2005-06-22 02:32:17 -04:00
|
|
|
|
2005-06-25 20:39:53 -04:00
|
|
|
[ 5040 ] [ [ 1 2 3 4 5 6 7 ] 1 [ * ] reduce ] unit-test
|
|
|
|
|
|
|
|
|
|
[ [ 1 1 2 6 24 120 720 ] ]
|
2005-07-13 15:34:38 -04:00
|
|
|
[ [ 1 2 3 4 5 6 7 ] 1 [ * ] accumulate ] unit-test
|
2005-07-16 22:16:18 -04:00
|
|
|
|
|
|
|
|
[ -1 f ] [ [ ] [ ] find ] unit-test
|
|
|
|
|
[ 0 1 ] [ [ 1 ] [ ] find ] unit-test
|
|
|
|
|
[ 1 "world" ] [ [ "hello" "world" ] [ "world" = ] find ] unit-test
|
|
|
|
|
[ 2 3 ] [ [ 1 2 3 ] [ 2 > ] find ] unit-test
|
|
|
|
|
[ -1 f ] [ [ 1 2 3 ] [ 10 > ] find ] unit-test
|
|
|
|
|
|
|
|
|
|
[ 1 CHAR: e ]
|
|
|
|
|
[ "aeiou" "hello world" [ swap member? ] find-with ] unit-test
|
|
|
|
|
|
|
|
|
|
[ 4 CHAR: o ]
|
|
|
|
|
[ "aeiou" 3 "hello world" [ swap member? ] find-with* ] unit-test
|
|
|
|
|
|
|
|
|
|
[ f ] [ 3 [ ] member? ] unit-test
|
|
|
|
|
[ f ] [ 3 [ 1 2 ] member? ] unit-test
|
|
|
|
|
[ t ] [ 1 [ 1 2 ] member? ] unit-test
|
|
|
|
|
[ t ] [ 2 [ 1 2 ] member? ] unit-test
|
|
|
|
|
|
|
|
|
|
[ t ]
|
|
|
|
|
[ [ "hello" "world" ] [ second ] keep memq? ] unit-test
|
|
|
|
|
|
|
|
|
|
[ 4 ] [ CHAR: x "tuvwxyz" >vector index ] unit-test
|
|
|
|
|
|
|
|
|
|
[ -1 ] [ CHAR: x 5 "tuvwxyz" >vector index* ] unit-test
|
|
|
|
|
|
|
|
|
|
[ -1 ] [ CHAR: a 0 "tuvwxyz" >vector index* ] unit-test
|
|
|
|
|
|
|
|
|
|
[ f ] [ [ "Hello" { } 4/3 ] [ string? ] all? ] unit-test
|
|
|
|
|
[ t ] [ [ ] [ ] all? ] unit-test
|
|
|
|
|
[ t ] [ [ "hi" t 1/2 ] [ ] all? ] unit-test
|
|
|
|
|
|
|
|
|
|
[ [ 1 2 3 ] ] [ [ 1 4 2 5 3 6 ] [ 4 < ] subset ] unit-test
|
|
|
|
|
[ { 4 2 6 } ] [ { 1 4 2 5 3 6 } [ 2 mod 0 = ] subset ] unit-test
|
|
|
|
|
|
|
|
|
|
[ [ 3 ] ] [ 2 [ 1 2 3 ] [ < ] subset-with ] unit-test
|
2005-07-24 22:44:33 -04:00
|
|
|
|
|
|
|
|
[ "hello world how are you" ]
|
|
|
|
|
[ { "hello" "world" "how" "are" "you" } " " join ]
|
|
|
|
|
unit-test
|
2005-07-27 01:46:06 -04:00
|
|
|
|
|
|
|
|
[ "" ] [ { } "" join ] unit-test
|
|
|
|
|
|
2005-07-30 02:08:59 -04:00
|
|
|
[ { } ] [ { } flip ] unit-test
|
2005-07-28 18:20:31 -04:00
|
|
|
|
2005-10-29 23:25:38 -04:00
|
|
|
[ { "b" "e" } ] [ 1 { { "a" "b" "c" } { "d" "e" "f" } } flip nth ] unit-test
|
2005-07-30 02:08:59 -04:00
|
|
|
|
2005-10-29 23:25:38 -04:00
|
|
|
[ { { 1 4 } { 2 5 } { 3 6 } } ]
|
|
|
|
|
[ { { 1 2 3 } { 4 5 6 } } flip ] unit-test
|
2005-08-12 18:02:03 -04:00
|
|
|
|
2005-09-18 01:37:28 -04:00
|
|
|
[ f ] [ [ { } { } "Hello" ] all-equal? ] unit-test
|
|
|
|
|
[ f ] [ [ { 2 } { } { } ] all-equal? ] unit-test
|
|
|
|
|
[ t ] [ [ ] all-equal? ] unit-test
|
|
|
|
|
[ t ] [ [ 1/2 ] all-equal? ] unit-test
|
|
|
|
|
[ t ] [ [ 1.0 10/10 1 ] all-equal? ] unit-test
|
2005-09-03 17:00:49 -04:00
|
|
|
[ t ] [ { 1 2 3 4 } [ < ] monotonic? ] unit-test
|
|
|
|
|
[ f ] [ { 1 2 3 4 } [ > ] monotonic? ] unit-test
|
2005-08-12 18:02:03 -04:00
|
|
|
[ [ 2 3 4 ] ] [ 1 [ 1 2 3 ] [ + ] map-with ] unit-test
|
|
|
|
|
|
|
|
|
|
[ 1 ] [ 0 [ 1 2 ] nth ] unit-test
|
|
|
|
|
[ 2 ] [ 1 [ 1 2 ] nth ] unit-test
|
|
|
|
|
|
|
|
|
|
[ [ ] ] [ [ ] [ ] append ] unit-test
|
|
|
|
|
[ [ 1 ] ] [ [ 1 ] [ ] append ] unit-test
|
|
|
|
|
[ [ 2 ] ] [ [ ] [ 2 ] append ] unit-test
|
|
|
|
|
[ [ 1 2 3 4 ] ] [ [ 1 2 3 ] [ 4 ] append ] unit-test
|
|
|
|
|
[ [ 1 2 3 4 ] ] [ [ 1 2 3 ] { 4 } append ] unit-test
|
|
|
|
|
|
|
|
|
|
[ [ ] ] [ 1 [ ] remove ] unit-test
|
|
|
|
|
[ [ ] ] [ 1 [ 1 ] remove ] unit-test
|
|
|
|
|
[ [ 3 1 1 ] ] [ 2 [ 3 2 1 2 1 ] remove ] unit-test
|
|
|
|
|
|
|
|
|
|
[ [ ] ] [ [ ] reverse ] unit-test
|
|
|
|
|
[ [ 1 ] ] [ [ 1 ] reverse ] unit-test
|
|
|
|
|
[ [ 3 2 1 ] ] [ [ 1 2 3 ] reverse ] unit-test
|
|
|
|
|
|
2006-07-29 20:36:25 -04:00
|
|
|
[ f ] [ f 0 head ] unit-test
|
|
|
|
|
[ [ ] ] [ [ 1 ] 0 head ] unit-test
|
|
|
|
|
[ [ 1 2 3 ] ] [ [ 1 2 3 4 ] 3 head ] unit-test
|
|
|
|
|
[ [ ] ] [ [ 1 2 3 ] 3 tail ] unit-test
|
|
|
|
|
[ [ 3 ] ] [ [ 1 2 3 ] 2 tail ] unit-test
|
2005-08-12 18:02:03 -04:00
|
|
|
|
|
|
|
|
[ t ] [ [ 1 2 3 ] [ 1 2 3 ] sequence= ] unit-test
|
|
|
|
|
[ t ] [ [ 1 2 3 ] { 1 2 3 } sequence= ] unit-test
|
|
|
|
|
[ t ] [ { 1 2 3 } [ 1 2 3 ] sequence= ] unit-test
|
|
|
|
|
[ f ] [ [ ] [ 1 2 3 ] sequence= ] unit-test
|
2005-08-13 23:39:46 -04:00
|
|
|
|
2005-08-22 01:17:08 -04:00
|
|
|
[ { 1 3 2 4 } ] [ { 1 2 3 4 } clone 1 2 pick exchange ] unit-test
|
|
|
|
|
|
|
|
|
|
[ 3 ] [ { 1 2 3 4 } midpoint ] unit-test
|
|
|
|
|
|
2005-08-22 20:54:01 -04:00
|
|
|
[ -1 ] [ 3 { } [ - ] binsearch ] unit-test
|
|
|
|
|
[ 0 ] [ 3 { 3 } [ - ] binsearch ] unit-test
|
|
|
|
|
[ 1 ] [ 2 { 1 2 3 } [ - ] binsearch ] unit-test
|
|
|
|
|
[ 3 ] [ 4 { 1 2 3 4 5 6 } [ - ] binsearch ] unit-test
|
|
|
|
|
[ 1 ] [ 3.5 { 1 2 3 4 5 6 7 8 } [ - ] binsearch ] unit-test
|
|
|
|
|
[ 3 ] [ 5.5 { 1 2 3 4 5 6 7 8 } [ - ] binsearch ] unit-test
|
|
|
|
|
[ 10 ] [ 10 20 >vector [ - ] binsearch ] unit-test
|
|
|
|
|
|
2005-09-16 22:47:28 -04:00
|
|
|
: seq-sorter 0 over length 1- <sorter> ;
|
2005-08-22 01:17:08 -04:00
|
|
|
|
|
|
|
|
[ { 4 2 3 1 } ]
|
|
|
|
|
[ { 1 2 3 4 } clone dup seq-sorter sorter-exchange ] unit-test
|
|
|
|
|
|
|
|
|
|
[ -1 ] [ [ - ] { 1 2 3 4 } seq-sorter 1 compare ] unit-test
|
|
|
|
|
|
|
|
|
|
[ 1 ] [ [ - ] { -5 4 -3 5 } seq-sorter sort-up sorter-start nip ] unit-test
|
|
|
|
|
|
|
|
|
|
[ 3 ] [ [ - ] { -5 4 -3 -6 5 } seq-sorter sort-down sorter-end nip ] unit-test
|
|
|
|
|
|
|
|
|
|
[ { 1 2 3 4 5 6 7 8 9 } ] [
|
|
|
|
|
[ - ] { 9 8 7 6 5 4 3 2 1 } clone seq-sorter sort-step
|
2005-10-29 23:25:38 -04:00
|
|
|
sorter-seq >array nip
|
2005-08-22 01:17:08 -04:00
|
|
|
] unit-test
|
|
|
|
|
|
|
|
|
|
[ { 1 2 3 4 5 6 7 8 9 } ] [
|
|
|
|
|
[ - ] { 1 2 3 4 5 6 7 8 9 } clone seq-sorter sort-step
|
2005-10-29 23:25:38 -04:00
|
|
|
sorter-seq >array nip
|
2005-08-22 01:17:08 -04:00
|
|
|
] unit-test
|
|
|
|
|
|
2006-01-19 23:28:45 -05:00
|
|
|
[ [ ] ] [ [ ] natural-sort ] unit-test
|
2005-08-22 01:17:08 -04:00
|
|
|
|
|
|
|
|
[ t ] [
|
2005-08-22 20:54:01 -04:00
|
|
|
100 [
|
2005-08-22 01:17:08 -04:00
|
|
|
drop
|
2006-01-19 23:28:45 -05:00
|
|
|
100 [ drop 20 random-int [ drop 1000 random-int ] map ] map natural-sort [ <=> 0 <= ] monotonic?
|
2005-08-22 01:17:08 -04:00
|
|
|
] all?
|
|
|
|
|
] unit-test
|
2005-09-11 20:46:55 -04:00
|
|
|
|
2005-10-29 23:25:38 -04:00
|
|
|
[ { "" "a" "aa" "aaa" } ]
|
2005-12-24 18:29:31 -05:00
|
|
|
[ 4 [ CHAR: a <string> ] map ]
|
2005-09-11 20:46:55 -04:00
|
|
|
unit-test
|
2005-09-14 00:37:50 -04:00
|
|
|
|
2005-10-29 23:25:38 -04:00
|
|
|
[ V{ } ] [ "f" V{ } clone [ delete ] keep ] unit-test
|
|
|
|
|
[ V{ } ] [ "f" V{ "f" } clone [ delete ] keep ] unit-test
|
|
|
|
|
[ V{ } ] [ "f" V{ "f" "f" } clone [ delete ] keep ] unit-test
|
|
|
|
|
[ V{ "x" } ] [ "f" V{ "f" "x" "f" } clone [ delete ] keep ] unit-test
|
|
|
|
|
[ V{ "y" "x" } ] [ "f" V{ "y" "f" "x" "f" } clone [ delete ] keep ] unit-test
|
2005-09-16 20:49:24 -04:00
|
|
|
|
|
|
|
|
[ { 1 4 9 } ] [ { 1 2 3 } clone dup [ sq ] inject ] unit-test
|
|
|
|
|
|
2005-09-17 04:15:05 -04:00
|
|
|
[ { "one" "two" "three" 4 5 6 } ]
|
|
|
|
|
[
|
|
|
|
|
{ "one" "two" "three" }
|
|
|
|
|
{ 1 2 3 } { 1 2 3 4 5 6 } clone [ subst ] keep
|
|
|
|
|
] unit-test
|
2005-09-24 16:34:10 -04:00
|
|
|
|
|
|
|
|
[ ] [ { 1 2 } [ 2drop 1 ] sort drop ] unit-test
|
|
|
|
|
|
|
|
|
|
[ 5 ] [ 1 >bignum { 1 5 7 } nth-unsafe ] unit-test
|
2005-10-29 23:25:38 -04:00
|
|
|
[ 5 ] [ 1 >bignum { 1 5 7 } nth-unsafe ] unit-test
|
2005-09-24 16:34:10 -04:00
|
|
|
[ 5 ] [ 1 >bignum "\u0001\u0005\u0007" nth-unsafe ] unit-test
|
2005-10-01 01:44:49 -04:00
|
|
|
|
|
|
|
|
[ "before&after" ] [ "&" 6 11 "before and after" replace-slice ] unit-test
|
|
|
|
|
|
|
|
|
|
[ 3 "a" ] [ { "a" "b" "c" "a" "d" } [ "a" = ] find-last ] unit-test
|
|
|
|
|
|
|
|
|
|
[ -1 f ] [ -1 { 1 2 3 } [ 1 = ] find* ] unit-test
|
2005-10-03 19:53:32 -04:00
|
|
|
|
2005-10-09 21:27:14 -04:00
|
|
|
[ 0 ] [ { "a" "b" "c" } { "A" "B" "C" } mismatch ] unit-test
|
|
|
|
|
|
|
|
|
|
[ 1 ] [ { "a" "b" "c" } { "a" "B" "C" } mismatch ] unit-test
|
|
|
|
|
|
|
|
|
|
[ -1 ] [ { "a" "b" "c" } { "a" "b" "c" } mismatch ] unit-test
|
|
|
|
|
|
2005-10-29 23:25:38 -04:00
|
|
|
[ V{ } V{ } ] [ { "a" "b" } { "a" "b" } drop-prefix [ >vector ] 2apply ] unit-test
|
2005-10-09 21:27:14 -04:00
|
|
|
|
2005-10-29 23:25:38 -04:00
|
|
|
[ V{ "C" } V{ "c" } ] [ { "a" "b" "C" } { "a" "b" "c" } drop-prefix [ >vector ] 2apply ] unit-test
|
2005-10-09 21:27:14 -04:00
|
|
|
|
|
|
|
|
[ -1 1 "abc" <slice> ] unit-test-fails
|
|
|
|
|
|
2005-10-29 23:25:38 -04:00
|
|
|
[ V{ "a" "b" } V{ } ] [ { "X" "a" "b" } { "X" } drop-prefix [ >vector ] 2apply ] unit-test
|
2005-10-12 00:14:46 -04:00
|
|
|
|
2006-01-09 01:34:23 -05:00
|
|
|
[ -1 ] [ "ab" "abc" <=> ] unit-test
|
|
|
|
|
[ 1 ] [ "abc" "ab" <=> ] unit-test
|
2005-10-14 04:05:02 -04:00
|
|
|
|
2005-10-29 23:25:38 -04:00
|
|
|
[ 1 4 9 16 16 V{ f 1 4 9 16 } ] [
|
|
|
|
|
V{ } clone "cache-test" set
|
2005-10-14 04:05:02 -04:00
|
|
|
1 "cache-test" get [ sq ] cache-nth
|
|
|
|
|
2 "cache-test" get [ sq ] cache-nth
|
|
|
|
|
3 "cache-test" get [ sq ] cache-nth
|
|
|
|
|
4 "cache-test" get [ sq ] cache-nth
|
|
|
|
|
4 "cache-test" get [ "wrong" ] cache-nth
|
|
|
|
|
"cache-test" get
|
|
|
|
|
] unit-test
|
2005-11-05 03:52:41 -05:00
|
|
|
|
|
|
|
|
[ 1 ] [ 1/2 { 1 2 3 } nth ] unit-test
|
2005-11-19 04:09:30 -05:00
|
|
|
|
2006-07-29 20:36:25 -04:00
|
|
|
[ { } ] [ { } 0 group ] unit-test
|
2005-12-31 20:51:58 -05:00
|
|
|
|
|
|
|
|
! Pathological case
|
2006-05-14 23:25:34 -04:00
|
|
|
[ "ihbye" ] [ "hi" <reversed> "bye" append ] unit-test
|
2006-01-02 00:51:03 -05:00
|
|
|
|
|
|
|
|
[ 10 "hi" "bye" copy-into ] unit-test-fails
|
2006-05-19 21:08:42 -04:00
|
|
|
|
2006-06-04 03:46:06 -04:00
|
|
|
[ { 1 2 3 5 6 } ] [ 3 { 1 2 3 4 5 6 } remove-nth ] unit-test
|
2006-05-25 23:25:00 -04:00
|
|
|
|
|
|
|
|
[ V{ 1 2 3 } ]
|
|
|
|
|
[ 3 V{ 1 2 } clone [ push-new ] keep ] unit-test
|
|
|
|
|
|
|
|
|
|
[ V{ 1 2 3 } ]
|
|
|
|
|
[ 3 V{ 1 3 2 } clone [ push-new ] keep ] unit-test
|