rdf4h-3.0.1: testsuite/tests/Test.hs
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
])