Chart-tests-1.9.3: tests/DiagramsSVG.hs
module DiagramsSVG where
import Control.Monad (void)
import Graphics.Rendering.Chart.Backend
import Graphics.Rendering.Chart.Backend.Diagrams
import qualified Data.ByteString.Lazy as BS
import Diagrams.Core ( renderDia )
import Diagrams.Backend.SVG
import Graphics.Rendering.Chart.Renderable ( render, Renderable )
import qualified Graphics.Svg as Svg
import System.Environment ( getArgs )
import Tests ( allTests, showTests )
import qualified Tests as T
main = do
args <- getArgs
main1 args
main1 :: [String] -> IO ()
main1 args = do
-- We don't use the renderableToFile function as we want to construct the
-- environment once for speed
env0 <- defaultEnv bitmapAlignmentFns 0 0
showTests (fmap (\(x,_,_) -> x) allTests) (renderDiagram env0)
where
renderDiagram :: DEnv Double -> (String, (Int, Int), T.LineWidth -> Renderable ()) -> IO ()
renderDiagram env0 (n,(w,h),ir) = do
let cr = render (ir 0.25) (fromIntegral w, fromIntegral h)
path = n ++ ".svg"
fo = FileOptions (fromIntegral w, fromIntegral h) Graphics.Rendering.Chart.Backend.Diagrams.SVG loadSansSerifFonts
putStrLn (path ++ "...")
void $ cBackendToFile fo cr path