35 lines
1.0 KiB
Factor
35 lines
1.0 KiB
Factor
USING: arrays sequences tools.test compiler.cfg.checker compiler.cfg.debugger
|
|
compiler.cfg.def-use sets kernel kernel.private fry slots.private vectors
|
|
sequences.private math sbufs math.private slots.private strings ;
|
|
IN: compiler.cfg.optimizer.tests
|
|
|
|
! Miscellaneous tests
|
|
|
|
: more? ( x -- ? ) ;
|
|
|
|
: test-case-1 ( -- ? ) f ;
|
|
|
|
: test-case-2 ( -- )
|
|
test-case-1 [ test-case-2 ] [ ] if ; inline recursive
|
|
|
|
{
|
|
[ 1array ]
|
|
[ 1 2 ? ]
|
|
[ { array } declare [ ] map ]
|
|
[ { array } declare dup 1 slot [ 1 slot ] when ]
|
|
[ [ dup more? ] [ dup ] produce ]
|
|
[ vector new over test-case-1 [ test-case-2 ] [ ] if ]
|
|
[ [ [ nth-unsafe ".." = 0 ] dip set-nth-unsafe ] 2curry (each-integer) ]
|
|
[
|
|
{ fixnum sbuf } declare 2dup 3 slot fixnum> [
|
|
over 3 fixnum* over dup [ 2 slot resize-string ] dip 2 set-slot
|
|
] [ ] if
|
|
]
|
|
[ [ 2 fixnum* ] when 3 ]
|
|
[ [ 2 fixnum+ ] when 3 ]
|
|
[ [ 2 fixnum- ] when 3 ]
|
|
[ 10000 [ ] times ]
|
|
} [
|
|
[ [ ] ] dip '[ _ test-mr first check-mr ] unit-test
|
|
] each
|