FiniteCategories-0.1.0.0: test/ExampleDiagram/ExampleConstantDiagram.hs
{-| Module : FiniteCategories
Description : An example of constant diagram.
Copyright : Guillaume Sabbagh 2021
License : GPL-3
Maintainer : guillaumesabbagh@protonmail.com
Stability : experimental
Portability : portable
An example of constant diagram.
-}
module ExampleDiagram.ExampleConstantDiagram
(
constantDiag,
main
)
where
import RandomCompositionGraph.RandomCompositionGraph
import System.Random
import ExportGraphViz.ExportGraphViz (catToPdf,diagToPdf,diagToPdf2)
import Diagram.Diagram (mkConstantDiagram)
import CompositionGraph.CompositionGraph
import Utils.Sample
import FiniteCategory.FiniteCategory
import Data.Maybe (fromJust)
(rcg1,newGen) = (defaultMkRandomCompositionGraph (mkStdGen 8))
(rcg2,newGen1) = (defaultMkRandomCompositionGraph newGen)
-- | The constant diagram from a random composition graph to a random object.
constantDiag = fromJust $ mkConstantDiagram rcg1 rcg2 (fst (pickOne (ob rcg2) newGen1))
-- | Export the constant diagram as a pdf with GraphViz.
main = do
putStrLn "Start of ExampleConstantDiagram"
catToPdf rcg1 "OutputGraphViz/Examples/Diagram/ConstantDiagram/rcg1"
catToPdf rcg2 "OutputGraphViz/Examples/Diagram/ConstantDiagram/rcg2"
diagToPdf constantDiag "OutputGraphViz/Examples/Diagram/ConstantDiagram/functor"
diagToPdf2 constantDiag "OutputGraphViz/Examples/Diagram/ConstantDiagram/diag"
putStrLn "End of ExampleConstantDiagram"