rdf4h-3.0.0: 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.HashS_Test as HashS
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'
, graphTests "HashS"
HashS.triplesOf'
HashS.uniqTriplesOf'
HashS.empty'
HashS.mkRdf'
, 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
])