packages feed

FiniteCategories-0.1.0.0: test/ExampleDiagram/ExampleConversion.hs

{-| Module  : FiniteCategories
Description : Examples of functor conversion.
Copyright   : Guillaume Sabbagh 2021
License     : GPL-3
Maintainer  : guillaumesabbagh@protonmail.com
Stability   : experimental
Portability : portable

Examples of functor conversion.
-}
module ExampleDiagram.ExampleConversion
(
    main
)
where
    import              RandomDiagram.RandomDiagram
    import              Diagram.Conversion
    import              ExportGraphViz.ExportGraphViz
    import              System.Random
    import              Data.Maybe

    (diag,newGen) = (defaultMkRandomDiagram (mkStdGen 745678))
    finFunct = diagramToFinFunctor diag
    partialFunct = diagramToPartialFunctor diag
    Just finFunct2 = partialFunctorToFinFunctor partialFunct
    partialFunct2 = finFunctorToPartialFunctor finFunct

    -- | Export the diagram as a pdf with GraphViz.
    main = do 
        putStrLn "Start of ExampleConversion"
        diagToPdf diag "OutputGraphViz/Examples/Diagram/Conversion/diag"
        diagToPdf (finFunctorToDiagram finFunct) "OutputGraphViz/Examples/Diagram/Conversion/finFunct"
        diagToPdf (fromJust $ partialFunctorToDiagram partialFunct) "OutputGraphViz/Examples/Diagram/Conversion/partialFunct"
        diagToPdf (finFunctorToDiagram finFunct2) "OutputGraphViz/Examples/Diagram/Conversion/finFunct2"
        diagToPdf (fromJust $ partialFunctorToDiagram partialFunct2) "OutputGraphViz/Examples/Diagram/Conversion/partialFunct2"
        putStrLn "End of ExampleConversion"