Some dlists unit tests added
parent
1bd8176b4a
commit
0ef46b4234
|
@ -1,4 +1,6 @@
|
||||||
USING: dlists dlists.private kernel tools.test ;
|
USING: dlists dlists.private kernel tools.test random assocs
|
||||||
|
hashtables sequences namespaces sorting debugger io prettyprint
|
||||||
|
math ;
|
||||||
IN: temporary
|
IN: temporary
|
||||||
|
|
||||||
[ t ] [ <dlist> dlist-empty? ] unit-test
|
[ t ] [ <dlist> dlist-empty? ] unit-test
|
||||||
|
@ -59,3 +61,23 @@ IN: temporary
|
||||||
[ 0 ] [ <dlist> dlist-length ] unit-test
|
[ 0 ] [ <dlist> dlist-length ] unit-test
|
||||||
[ 1 ] [ <dlist> 1 over push-front dlist-length ] unit-test
|
[ 1 ] [ <dlist> 1 over push-front dlist-length ] unit-test
|
||||||
[ 0 ] [ <dlist> 1 over push-front dup pop-front* dlist-length ] unit-test
|
[ 0 ] [ <dlist> 1 over push-front dup pop-front* dlist-length ] unit-test
|
||||||
|
|
||||||
|
: assert-same-elements
|
||||||
|
[ prune natural-sort ] 2apply assert= ;
|
||||||
|
|
||||||
|
: dlist-push-all [ push-front ] curry each ;
|
||||||
|
|
||||||
|
: dlist-delete-all [ dlist-delete drop ] curry each ;
|
||||||
|
|
||||||
|
: dlist>array [ [ , ] dlist-slurp ] { } make ;
|
||||||
|
|
||||||
|
[ ] [
|
||||||
|
5 [ drop 30 random >fixnum ] map prune
|
||||||
|
6 [ drop 30 random >fixnum ] map prune 2dup nl . . nl
|
||||||
|
[
|
||||||
|
<dlist>
|
||||||
|
[ dlist-push-all ] keep
|
||||||
|
[ dlist-delete-all ] keep
|
||||||
|
dlist>array
|
||||||
|
] 2keep seq-diff assert-same-elements
|
||||||
|
] unit-test
|
||||||
|
|
|
@ -121,6 +121,9 @@ PRIVATE>
|
||||||
: delete-node ( quot dlist -- obj/f )
|
: delete-node ( quot dlist -- obj/f )
|
||||||
delete-node* drop ; inline
|
delete-node* drop ; inline
|
||||||
|
|
||||||
|
: dlist-delete ( obj dlist -- obj/f )
|
||||||
|
>r [ eq? ] curry r> delete-node ;
|
||||||
|
|
||||||
: dlist-each ( dlist quot -- )
|
: dlist-each ( dlist quot -- )
|
||||||
[ dlist-node-obj ] swap compose dlist-each-node ; inline
|
[ dlist-node-obj ] swap compose dlist-each-node ; inline
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue