content: import Algebra.Graph.Test.Acyclic.AdjacencyMap
  import Algebra.Graph.Test.AdjacencyIntMap
  import Algebra.Graph.Test.AdjacencyMap
  import Algebra.Graph.Test.Bipartite.AdjacencyMap
  import Algebra.Graph.Test.Example.Todo
  import Algebra.Graph.Test.Export
  import Algebra.Graph.Test.Graph
  import Algebra.Graph.Test.Internal
  import Algebra.Graph.Test.Label
  import Algebra.Graph.Test.Labelled.AdjacencyMap
  import Algebra.Graph.Test.Labelled.Graph
  import Algebra.Graph.Test.NonEmpty.AdjacencyMap
  import Algebra.Graph.Test.NonEmpty.Graph
  import Algebra.Graph.Test.Relation
  import Algebra.Graph.Test.Relation.Symmetric
  import Algebra.Graph.Test.Undirected
  import Data.Graph.Test.Typed
  
  import Control.Monad
  import System.Environment
  
  -- | By default, all testsuites will be executed, which takes a few minutes. If
  -- you would like to execute only some specific testsuites, you can specify
  -- their names in the command line. For example:
  --
  -- > stack test --test-arguments "Graph Symmetric.Relation"
  --
  -- will test the modules "Algebra.Graph" and "Algebra.Graph.Symmetric.Relation".
  main :: IO ()
  main = do
      selected <- getArgs
      let go current = when (null selected || current `elem` selected)
      go "Acyclic.AdjacencyMap"             testAcyclicAdjacencyMap
      go "AdjacencyIntMap"                  testAdjacencyIntMap
      go "AdjacencyMap"                     testAdjacencyMap
      go "Bipartite.AdjacencyMap"           testBipartiteAdjacencyMap
      go "Bipartite.AdjacencyMap.Algorithm" testBipartiteAdjacencyMapAlgorithm
      go "Export"                           testExport
      go "Graph"                            testGraph
      go "Internal"                         testInternal
      go "Label"                            testLabel
      go "Labelled.AdjacencyMap"            testLabelledAdjacencyMap
      go "Labelled.Graph"                   testLabelledGraph
      go "NonEmpty.AdjacencyMap"            testNonEmptyAdjacencyMap
      go "NonEmpty.Graph"                   testNonEmptyGraph
      go "Relation"                         testRelation
      go "Symmetric.Relation"               testSymmetricRelation
      go "Todo"                             testTodo
      go "Typed"                            testTyped
      go "Undirected"                       testUndirected
  