FiniteCategories-0.1.0.0: test/ExampleDiagram/ExampleSelectTwoDiagram.hs
{-| Module : FiniteCategories
Description : An example of select2 diagram.
Copyright : Guillaume Sabbagh 2021
License : GPL-3
Maintainer : guillaumesabbagh@protonmail.com
Stability : experimental
Portability : portable
An example of select2 diagram.
-}
module ExampleDiagram.ExampleSelectTwoDiagram
(
selectTwo,
main
)
where
import RandomCompositionGraph.RandomCompositionGraph
import System.Random
import ExportGraphViz.ExportGraphViz (catToPdf,diagToPdf,diagToPdf2)
import Diagram.Diagram (mkSelect2, src)
import Utils.Sample
import FiniteCategory.FiniteCategory
import Data.List ((\\))
import Data.Maybe (fromJust)
(rcg1,newGen) = (mkRandomCompositionGraph 10 10 3 (mkStdGen 56767898))
-- | We select an arrow in the category.
selectTwo = fromJust $ mkSelect2 rcg1 (fst (pickOne ((arrows rcg1)\\(identities rcg1)) newGen))
-- | Export the diagram as a pdf with GraphViz.
main = do
putStrLn "Start of ExampleSelectTwoDiagram"
catToPdf rcg1 "OutputGraphViz/Examples/Diagram/SelectTwoDiagram/rcg1"
catToPdf (src selectTwo) "OutputGraphViz/Examples/Diagram/SelectTwoDiagram/Two"
diagToPdf selectTwo "OutputGraphViz/Examples/Diagram/SelectTwoDiagram/functor"
diagToPdf2 selectTwo "OutputGraphViz/Examples/Diagram/SelectTwoDiagram/diag"
putStrLn "End of ExampleSelectTwoDiagram"