-- How to use: runghc testComplete.hs

import Data.List (sort)
import TestLib

import Complete
import Trie

tests =
    [ "enumerate empty trie" ~:
      enumerate (Node NotMember []) ~?= []
    , "enumerate trie having just empty string" ~:
      enumerate (Node Member []) ~?= [""]
    , "enumerate albertTrie" ~:
      sort (enumerate albertTrie) ~?= ["","ace","pi","pit","ton","top"]
    , "enumerate bertieTrie" ~:
      sort (enumerate bertieTrie) ~?= ["ace","pi","pit","ton","top"]
    , "complete albertTrie \"\"" ~:
      sort (complete albertTrie "") ~?= ["","ace","pi","pit","ton","top"]
    , "complete bertieTrie \"\"" ~:
      sort (complete bertieTrie "") ~?= ["ace","pi","pit","ton","top"]
    , "complete albertTrie \"pi\"" ~:
      sort (complete albertTrie "pi") ~?= ["pi","pit"]
    , "complete albertTrie \"to\"" ~:
      sort (complete albertTrie "to") ~?= ["ton","top"]
    , "complete albertTrie \"c\"" ~:
      sort (complete albertTrie "c") ~?= []
    ]

main = testlibMain tests