@@ -53,8 +53,8 @@ variable ^f<>
5353: F<>: ' ^f<> ! ;
5454F<>: f<>
5555
56- : compare-result { e* a* d -- d' } e* @ a* @ <> d + ;
57- : compare -result.f { e* a* d -- d' } e* f@ a* f@ ^f<> @ ^ d + ;
56+ : compare-result { e* a* d -- d' } e* @ a* @ <> d + ;
57+ : fcompare -result { e* a* d -- d' } e* f@ a* f@ ^f<> @ ^ d + ;
5858: compare-results { e[] a[] 'cmp } e[] []> a[] []> { #e s ec e* #a _ ac a* } ( #p #f #r -- #p' #f' #r' )
5959 #e #a = #e 0 >= #e ec <= and and if
6060 0 e* a* #e 0 +do { d p* q* } p* q* d 'cmp ^ p* s + q* s + loop 2drop
@@ -63,41 +63,41 @@ F<>: f<>
6363
6464\ default reporting
6565
66- : passed$ ." Test Passed" cr ;
67- : (different$ ) { e[] a[] '@ '. } e[] []> a[] [0] { n s c e* a* } n if ?lf# ." Expected " e[] '@ '. []. ." , got " a[] '@ '. []. cr lf ++ then ;
68- : different$ expecteds[] actuals[] ['] @ ['] . (different$ ) ;
69- : different.f$ expecteds.f[] actuals.f[] ['] f@ ['] f. (different$ ) ;
70- : (#results$ ) { e[] a[] s* s# } e[] []> a[] []> { #e es ec e* #a as ac a* }
66+ : passed. ." Test Passed" cr ;
67+ : (different. ) { e[] a[] '@ '. } e[] []> a[] [0] { n s c e* a* } n if ?lf# ." Expected " e[] '@ '. []. ." , got " a[] '@ '. []. cr lf ++ then ;
68+ : different. expecteds[] actuals[] ['] @ ['] . (different. ) ;
69+ : fdifferent. expecteds.f[] actuals.f[] ['] f@ ['] f. (different. ) ;
70+ : (#results. ) { e[] a[] s* s# } e[] []> a[] []> { #e es ec e* #a as ac a* }
7171 #a ac > if ?lf# ." Too many " s* s# type ." results to test" cr lf ++ exit then
7272 #e ec > if ?lf# ." Too many expected " s* s# type ." results to test" cr lf ++ exit then
7373 #e #a - dup if
7474 ?lf# ." Wrong number of " s* s# type ." results, expected " #e .
7575 ." , got " #a dup 0< if negate ." a " . s* s# type ." stack underflow" else . then cr lf ++
7676 else drop then ;
77- : #results$ expecteds[] actuals[] s" cell" (#results$ ) ;
78- : #results.f$ expecteds.f[] actuals.f[] s" float" (#results$ ) ;
77+ : #results. expecteds[] actuals[] s" cell" (#results. ) ;
78+ : #fresults. expecteds.f[] actuals.f[] s" float" (#results. ) ;
7979
8080\ custom reporting
8181
82- variable ^passed$ ' passed$ ^passed$ !
83- variable ^different$ ' different$ ^different$ !
84- variable ^different.f$ ' different.f$ ^different.f$ !
85- variable ^#results$ ' #results$ ^#results$ !
86- variable ^#results.f$ ' #results.f$ ^#results.f$ !
82+ variable ^passed. ' passed. ^passed. !
83+ variable ^different. ' different. ^different. !
84+ variable ^fdifferent. ' fdifferent. ^fdifferent. !
85+ variable ^#results. ' #results. ^#results. !
86+ variable ^#fresults. ' #fresults. ^#fresults. !
8787
88- : #results sp@ sp% @ swap - cell / ;
89- : #results.f fp% @ fp@ - float / ;
88+ : #results sp@ sp% @ swap - cell / ;
89+ : #fresults fp% @ fp@ - float / ;
9090
9191\ testest unit test
9292
9393: <{ mark-stacks ;
94- : -> #results actuals[] tuck ! #results.f actuals.f[] tuck ! store-stacks reset-stacks ;
94+ : -> #results actuals[] tuck ! #fresults actuals.f[] tuck ! store-stacks reset-stacks ;
9595: }>
96- #results expecteds[] tuck ! #results.f expecteds.f[] tuck ! store-stacks reset-stacks
97- 0 0 0 expecteds[] actuals[] ['] compare-result compare-results { #p #f #r } \ compare cells
98- #p 0 0 expecteds.f[] actuals.f[] ['] compare -result.f compare-results { #pt #ff #rf } \ compare floats
99- #r #rf + #f #ff + + if failed# #r ^#results$ ?@^ #rf ^#results.f$ ?@^ #f ^different$ ?@^ #ff ^different.f$ ?@^
100- else #pt 2 = if passed# ^passed$ @ ^ then then reset-stacks ;
96+ #results expecteds[] tuck ! #fresults expecteds.f[] tuck ! store-stacks reset-stacks
97+ 0 0 0 expecteds[] actuals[] ['] compare-result compare-results { #p #f #r } \ compare cells
98+ #p 0 0 expecteds.f[] actuals.f[] ['] fcompare -result compare-results { #pt #ff #rf } \ compare floats
99+ #r #rf + #f #ff + + if failed# #r ^#results. ?@^ #rf ^#fresults. ?@^ #f ^different. ?@^ #ff ^fdifferent. ?@^
100+ else #pt 2 = if passed# ^passed. @ ^ then then reset-stacks ;
101101
102102\ testest utility words
103103
0 commit comments