packages feed

web-routing-0.1.2: tests/Tree.hs

module Tree(test) where

import Network.Routing.Tree
import Test.Tasty
import Test.Tasty.QuickCheck
import Unsafe.Coerce

mkTestTree :: Int -> Tree
mkTestTree i = foldr cons Tip $ map unsafeCoerce [0..i]

testTreeToList :: Int -> Tree -> [Int]
testTreeToList l t = foldr (\i b -> unsafeCoerce (t `index` i) : b) [] [0..l]

test :: TestTree
test = testProperty "Data.Apiary.Tree" $ \len ->
    testTreeToList len (mkTestTree len) == [0..len]