FiniteCategories-0.1.0.0: test/ExampleDiagram/ExampleSelectOneDiagram.hs
{-| Module : FiniteCategories
Description : An example of select1 diagram.
Copyright : Guillaume Sabbagh 2021
License : GPL-3
Maintainer : guillaumesabbagh@protonmail.com
Stability : experimental
Portability : portable
An example of select1 diagram.
-}
module ExampleDiagram.ExampleSelectOneDiagram
(
selectOne,
main
)
where
import RandomCompositionGraph.RandomCompositionGraph
import System.Random
import ExportGraphViz.ExportGraphViz (catToPdf,diagToPdf,diagToPdf2)
import Diagram.Diagram (mkSelect1, src)
import Utils.Sample
import FiniteCategory.FiniteCategory
import Data.Maybe (fromJust)
(rcg1,newGen) = (mkRandomCompositionGraph 10 10 3 (mkStdGen 567678))
-- | We select one object in a random category.
selectOne = fromJust $ mkSelect1 rcg1 (fst (pickOne (ob rcg1) newGen))
-- | Export the diagram as a pdf with GraphViz.
main = do
putStrLn "Start of ExampleSelectOneDiagram"
catToPdf rcg1 "OutputGraphViz/Examples/Diagram/SelectOneDiagram/rcg1"
catToPdf (src selectOne) "OutputGraphViz/Examples/Diagram/SelectOneDiagram/One"
diagToPdf selectOne "OutputGraphViz/Examples/Diagram/SelectOneDiagram/functor"
diagToPdf2 selectOne "OutputGraphViz/Examples/Diagram/SelectOneDiagram/diag"
putStrLn "End of ExampleSelectOneDiagram"