1 USING: math tools.test classes.algebra words kernel sequences assocs
2 accessors eval definitions compiler.units generic ;
3 IN: classes.predicate.tests
5 PREDICATE: negative < integer 0 < ;
6 PREDICATE: positive < integer 0 > ;
8 [ t ] [ negative integer class< ] unit-test
9 [ t ] [ positive integer class< ] unit-test
10 [ f ] [ integer negative class< ] unit-test
11 [ f ] [ integer positive class< ] unit-test
12 [ f ] [ negative negative class< ] unit-test
13 [ f ] [ positive negative class< ] unit-test
15 GENERIC: abs ( n -- n )
17 M: negative abs -1 * ;
20 [ 10 ] [ -10 abs ] unit-test
21 [ 10 ] [ 10 abs ] unit-test
22 [ 0 ] [ 0 abs ] unit-test
24 ! Bug report from Bruno Deferrari
26 TUPLE: tuple-b < tuple-a ;
28 PREDICATE: tuple-c < tuple-b slot>> ;
30 GENERIC: ptest ( tuple -- )
31 M: tuple-a ptest drop ;
32 M: tuple-c ptest drop ;
34 [ ] [ tuple-b new ptest ] unit-test