Hoon101/201/week6/tests/lib/dfs.hoon

45 lines
1.1 KiB
Plaintext

:: Hoon 201 - Week 6
:: ~bannum-magtus | s@p7.co.nz
::
/+ *test, dfs
::
|%
++ test-dfs-search ^- tang
=/ null-tree=(tree @) *(tree @)
=/ fill-tree=(tree @) [12 [8 [4 ~ ~] ~] [14 ~ [16 ~ ~]]]
;: weld
:: cant find something in an empty tree
%+ expect-eq
!> %.n
!> (search:dfs null-tree 42)
:: cant find something thats not in a tree
%+ expect-eq
!> %.n
!> (search:dfs fill-tree 42)
:: can find something that is in a tree
%+ expect-eq
!> %.y
!> (search:dfs fill-tree 12)
==
++ test-dfs-traverse ^- tang
=/ null-tree=(tree @) *(tree @)
=/ a-tree=(tree @) [12 [8 [4 ~ ~] ~] [14 ~ [16 ~ ~]]]
=/ b-tree=(tree @) [8 [4 [12 ~ ~] ~] [16 ~ [14 ~ ~]]]
=/ a-list=(list @) [4 8 16 14 12 ~]
=/ b-list=(list @) [12 4 14 16 8 ~]
;: weld
:: null tree has empty traversal
%+ expect-eq
!> ~
!> (traverse:dfs null-tree)
:: tree a has traversal a
%+ expect-eq
!> a-list
!> (traverse:dfs a-tree)
:: tree b has traversal b
%+ expect-eq
!> b-list
!> (traverse:dfs b-tree)
==
--