factor/basis/tools/crossref/crossref-tests.factor

60 lines
1.4 KiB
Factor

USING: math kernel sequences io.files io.pathnames
tools.crossref tools.crossref.private tools.test parser
namespaces source-files generic definitions words accessors
compiler.units classes ;
IN: tools.crossref.tests
GENERIC: predicate-test ( a -- b )
M: class predicate-test ;
M: generic predicate-test ;
[ f ] [ \ + irrelevant? ] unit-test
[ t ] [ \ predicate-test "engines" word-prop first irrelevant? ] unit-test
GENERIC: foo ( a b -- c )
M: integer foo + ;
"vocab:tools/crossref/test/foo.factor" run-file
[ t ] [ integer \ foo lookup-method \ + usage member? ] unit-test
[ t ] [ \ foo usage [ pathname? ] any? ] unit-test
! Issues with forget
GENERIC: generic-forget-test-1 ( a b -- c )
M: integer generic-forget-test-1 / ;
[ t ] [
\ / usage [ word? ] filter
[ name>> "integer=>generic-forget-test-1" = ] any?
] unit-test
[ ] [
[ \ generic-forget-test-1 forget ] with-compilation-unit
] unit-test
[ f ] [
\ / usage [ word? ] filter
[ name>> "integer=>generic-forget-test-1" = ] any?
] unit-test
GENERIC: generic-forget-test-2 ( a b -- c )
M: sequence generic-forget-test-2 = ;
[ t ] [
\ = usage [ word? ] filter
[ name>> "sequence=>generic-forget-test-2" = ] any?
] unit-test
[ ] [
[ M\ sequence generic-forget-test-2 forget ] with-compilation-unit
] unit-test
[ f ] [
\ = usage [ word? ] filter
[ name>> "sequence=>generic-forget-test-2" = ] any?
] unit-test