module Biobase.Newick.StaticForest where
import Data.Tree (drawForest,flatten)
import qualified Data.Tree as T
import qualified Data.Vector as V
import Data.Forest.Static
import Biobase.Newick.Types
import Data.Graph.Inductive.Basic
import Biobase.Newick.Import
test = do
let ts = map (addIndices 0 . getNewickTree) $ either error id $ newicksFromText t
let ss = either error id $ newicksFromText t
mapM_ (putStrLn . T.drawTree . fmap show) ts
putStrLn ""
mapM_ (mapM_ (putStrLn . show) . postorder) ts
putStrLn ""
mapM_ (mapM_ (putStrLn . show) . preorder) ts
putStrLn ""
mapM_ (mapM_ print . T.levels) ts
putStrLn ""
print (forestPre $ map getNewickTree ss :: Forest Pre V.Vector Info)
putStrLn ""
print (forestPost $ map getNewickTree ss :: Forest Post V.Vector Info)
where t = "((raccoon:19.19959,bear:6.80041):0.84600,((sea_lion:11.99700, seal:12.00300):7.52973,((monkey:100.85930,cat:47.14069):20.59201, weasel:18.87953):2.09460):3.87382,dog:25.46154)Root;"