happy-dot-1.0.0.0: tests/Pretty/TestPretty.hs
module Main where
import Data.List
import Data.Either
import Language.Dot.Parser
import Language.Dot.Pretty
import Test.HUnit hiding (Node)
import System.Exit (exitFailure, exitSuccess)
g1Str = "graph \"g1\" {\n}"
g2Str = "strict graph \"g2\" {\n}"
d1Str = "digraph {\n}"
g3Str = "graph {\n \"v1\";\n \"v2\";\n \"v3\";\n}"
g4Str = "graph {\n \"v1\" -- \"v2\";\n}"
g5Str = "graph {\n\
\ \"v1\" : \"port\" : n;\n\
\ \"v2\" : \"other_port\" [\"attr1\" = \"x\", \"attr2\" = \"y\"];\n\
\ \"v3\" : e;\n\
\}"
g6Str = "graph {\n\
\ \"v1\" -- \"v2\" --\n\
\ {\n\
\ \"rank\" = \"same\";\n\
\ \"v3\";\n\
\ \"v4\";\n\
\ } -- \"v5\" [\"attr1\" = \"5.5\"];\n\
\}"
d2Str = "digraph {\n\
\ \"v1\" -> \"v2\" ->\n\
\ {\n\
\ \"v3\";\n\
\ \"v4\";\n\
\ } ->\n\
\ {\n\
\ \"v5\";\n\
\ \"v6\";\n\
\ };\n\
\}"
tests = TestList
[ TestLabel "Undirected Graph 1" $ TestCase
( do
let Right ast = parse g1Str
assertEqual "" g1Str (render ast)
)
, TestLabel "Undirected Graph 2" $ TestCase
( do
let Right ast = parse g2Str
assertEqual "" g2Str (render ast)
)
, TestLabel "Directed Graph 1" $ TestCase
( do
let Right ast = parse d1Str
assertEqual "" d1Str (render ast)
)
, TestLabel "Undirected Graph 3" $ TestCase
( do
let Right ast = parse g3Str
assertEqual "" g3Str (render ast)
)
, TestLabel "Undirected Graph 4" $ TestCase
( do
let Right ast = parse g4Str
assertEqual "" g4Str (render ast)
)
, TestLabel "Undirected Graph 5" $ TestCase
( do
let Right ast = parse g5Str
assertEqual "" g5Str (render ast)
)
, TestLabel "Undirected Graph 6" $ TestCase
( do
let Right ast = parse g6Str
assertEqual "" g6Str (render ast)
)
, TestLabel "Directed Graph 2" $ TestCase
( do
let Right ast = parse d2Str
assertEqual "" d2Str (render ast)
)
]
main = do
counts <- runTestTT tests
if errors counts + failures counts > 0 then exitFailure else exitSuccess