module Main where import Test.Tasty (defaultMain,testGroup) import qualified Data.RDF.Graph.TList_Test as TList import qualified Data.RDF.Graph.AdjHashMap_Test as AdjHashMap -- import qualified Data.RDF.Graph.HashSP_Test as HashSP -- import qualified Data.RDF.Graph.SP_Test as SP -- very slow implementation, disabled for now. -- import qualified Data.RDF.Graph.TriplesPatriciaTree_Test as TriplesPatriciaTree import Data.RDF.Types import qualified Text.RDF.RDF4H.XmlParser_Test as XmlParser import qualified Text.RDF.RDF4H.TurtleParser_ConformanceTest as TurtleParser import qualified W3C.TurtleTest as W3CTurtleTest import qualified W3C.RdfXmlTest as W3CRdfXmlTest import qualified W3C.NTripleTest as W3CNTripleTest import Data.RDF.GraphTestUtils import qualified Data.Text as T import System.Directory (getCurrentDirectory) import W3C.Manifest suiteFilesDirTurtle,suiteFilesDirXml,suiteFilesDirNTriples :: T.Text suiteFilesDirTurtle = "rdf-tests/turtle/" suiteFilesDirXml = "rdf-tests/rdf-xml/" suiteFilesDirNTriples = "rdf-tests/ntriples/" mfPathTurtle,mfPathXml,mfPathNTriples :: T.Text mfPathTurtle = T.concat [suiteFilesDirTurtle, "manifest.ttl"] mfPathXml = T.concat [suiteFilesDirXml, "manifest.ttl"] mfPathNTriples = T.concat [suiteFilesDirNTriples, "manifest.ttl"] mfBaseURITurtle,mfBaseURIXml,mfBaseURINTriples :: BaseUrl mfBaseURITurtle = BaseUrl "http://www.w3.org/2013/TurtleTests/" mfBaseURIXml = BaseUrl "http://www.w3.org/2013/RDFXMLTests/" mfBaseURINTriples = BaseUrl "http://www.w3.org/2013/N-TriplesTests/" main :: IO () main = do -- obtain manifest files for W3C tests before running tests -- justification for separation: http://stackoverflow.com/a/33046723 dir <- getCurrentDirectory let fileSchemeUri suitesDir = T.pack ("file://" ++ dir ++ "/" ++ T.unpack suitesDir) turtleManifest <- loadManifest mfPathTurtle (fileSchemeUri suiteFilesDirTurtle) xmlManifest <- loadManifest mfPathXml (fileSchemeUri suiteFilesDirXml) nTriplesManifest <- loadManifest mfPathNTriples (fileSchemeUri suiteFilesDirNTriples) -- run tests defaultMain (testGroup "rdf4h tests" [ -- RDF graph API tests graphTests "TList" TList.triplesOf' TList.uniqTriplesOf' TList.empty' TList.mkRdf' TList.addTriple' TList.removeTriple' , graphTests "AdjHashMap" AdjHashMap.triplesOf' AdjHashMap.uniqTriplesOf' AdjHashMap.empty' AdjHashMap.mkRdf' AdjHashMap.addTriple' AdjHashMap.removeTriple' -- , graphTests "HashSP" -- HashSP.triplesOf' -- HashSP.uniqTriplesOf' -- HashSP.empty' -- HashSP.mkRdf' -- , graphTests "SP" -- SP.triplesOf' -- SP.uniqTriplesOf' -- SP.empty' -- SP.mkRdf' -- , graphTests "TriplesPatriciaTree" -- TriplesPatriciaTree.triplesOf' -- TriplesPatriciaTree.uniqTriplesOf' -- TriplesPatriciaTree.empty' -- TriplesPatriciaTree.mkRdf' -- rdf4h unit tests , TurtleParser.tests , XmlParser.tests -- W3C tests , W3CTurtleTest.tests turtleManifest , W3CRdfXmlTest.tests xmlManifest , W3CNTripleTest.tests nTriplesManifest ])