2011-10-19 03:57:06 -04:00
|
|
|
USING: destructors eval io io.streams.string kernel math memory
|
|
|
|
namespaces parser sequences strings tools.annotations
|
|
|
|
tools.test tools.time ;
|
2008-03-01 17:00:45 -05:00
|
|
|
IN: tools.annotations.tests
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2009-03-23 01:34:02 -04:00
|
|
|
: foo ( -- ) ;
|
2007-09-20 18:09:08 -04:00
|
|
|
\ foo watch
|
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ } [ foo ] unit-test
|
2008-02-16 16:54:53 -05:00
|
|
|
|
|
|
|
! erg's bug
|
2008-02-17 19:38:29 -05:00
|
|
|
GENERIC: some-generic ( a -- b )
|
2008-02-16 16:54:53 -05:00
|
|
|
|
2009-08-13 20:21:44 -04:00
|
|
|
M: integer some-generic 1 + ;
|
2008-02-16 16:54:53 -05:00
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ 4 } [ 3 some-generic ] unit-test
|
2008-02-16 16:54:53 -05:00
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ } [ \ some-generic watch ] unit-test
|
2008-02-16 16:54:53 -05:00
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ 4 } [ 3 some-generic ] unit-test
|
2008-02-16 16:54:53 -05:00
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ } [ "IN: tools.annotations.tests USE: math M: integer some-generic 1 - ;" eval( -- ) ] unit-test
|
2008-02-16 16:54:53 -05:00
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ 2 } [ 3 some-generic ] unit-test
|
2008-02-16 16:54:53 -05:00
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ } [ \ some-generic reset ] unit-test
|
2008-02-16 16:54:53 -05:00
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ 2 } [ 3 some-generic ] unit-test
|
2008-08-23 21:24:54 -04:00
|
|
|
|
|
|
|
! slava's bug
|
|
|
|
GENERIC: another-generic ( a -- b )
|
|
|
|
|
|
|
|
M: object another-generic ;
|
|
|
|
|
|
|
|
\ another-generic watch
|
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ } [ "IN: tools.annotations.tests GENERIC: another-generic ( a -- b )" eval( -- ) ] unit-test
|
2008-08-23 21:24:54 -04:00
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ } [ \ another-generic reset ] unit-test
|
2008-08-23 21:24:54 -04:00
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ "" } [ [ 3 another-generic drop ] with-string-writer ] unit-test
|
2009-03-06 14:32:07 -05:00
|
|
|
|
2009-05-27 20:36:52 -04:00
|
|
|
! reset should do the right thing for generic words
|
2015-07-03 12:39:59 -04:00
|
|
|
{ } [ \ another-generic watch ] unit-test
|
2009-05-27 20:36:52 -04:00
|
|
|
|
2009-03-06 14:32:07 -05:00
|
|
|
GENERIC: blah-generic ( a -- b )
|
|
|
|
|
|
|
|
M: string blah-generic ;
|
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ } [ M\ string blah-generic watch ] unit-test
|
2009-03-06 14:32:07 -05:00
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ "hi" } [ "hi" blah-generic ] unit-test
|
2009-07-03 23:32:30 -04:00
|
|
|
|
|
|
|
! See how well watch interacts with optimizations.
|
|
|
|
GENERIC: my-generic ( a -- b )
|
|
|
|
M: object my-generic ;
|
|
|
|
|
|
|
|
\ my-generic watch
|
|
|
|
|
|
|
|
: some-code ( -- )
|
|
|
|
f my-generic drop ;
|
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ } [ some-code ] unit-test
|
2010-01-19 02:00:33 -05:00
|
|
|
|
|
|
|
! Make sure annotations work on primitives
|
2011-10-19 03:57:06 -04:00
|
|
|
\ gc reset
|
2010-01-19 02:00:33 -05:00
|
|
|
\ gc watch
|
2015-07-02 13:34:01 -04:00
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ f } [ [ [ gc ] with-error>output ] with-string-writer empty? ] unit-test
|
2010-01-19 02:00:33 -05:00
|
|
|
|
|
|
|
\ gc reset
|