:: 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)
  ==
--