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