-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy pathTest.hs
115 lines (109 loc) · 4.18 KB
/
Test.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Data.Maybe (fromJust)
import Data.RDF
import Data.RDF.BlankNodeTests
import Data.RDF.GraphImplTests
import Data.RDF.IRITests
import Data.RDF.PropertyTests
import qualified Data.Text as T
import System.Directory (getCurrentDirectory)
import System.FilePath ((</>))
import Test.Tasty (defaultMain, testGroup)
import qualified Text.RDF.RDF4H.TurtleParser_ConformanceTest as TurtleUnitTest
import qualified Text.RDF.RDF4H.TurtleSerializerTest as TurtleSerializerTest
import qualified Text.RDF.RDF4H.XmlParser_Test as XmlUnitTest
import W3C.Manifest
import qualified W3C.NTripleTest as W3CNTripleTest
import qualified W3C.RdfXmlTest as W3CRdfXmlTest
import qualified W3C.TurtleTest as W3CTurtleTest
suiteFilesDirTurtle, suiteFilesDirXml, suiteFilesDirNTriples :: T.Text
suiteFilesDirTurtle = "rdf-tests/turtle/"
suiteFilesDirXml = "rdf-tests/rdf-xml/"
suiteFilesDirNTriples = "rdf-tests/ntriples/"
mfPathTurtle, mfPathXml, mfPathNTriples :: T.Text
mfPathTurtle = mconcat [suiteFilesDirTurtle, "manifest.ttl"]
mfPathXml = mconcat [suiteFilesDirXml, "manifest.ttl"]
mfPathNTriples = mconcat [suiteFilesDirNTriples, "manifest.ttl"]
mfBaseURITurtle, mfBaseURIXml, mfBaseURINTriples :: BaseUrl
mfBaseURITurtle = W3CTurtleTest.mfBaseURITurtle
mfBaseURIXml = W3CRdfXmlTest.mfBaseURIXml
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 =
fromJust . filePathToUri $ (dir </> T.unpack suitesDir)
turtleManifest <- loadManifest mfPathTurtle (unBaseUrl mfBaseURITurtle)
xmlManifest <- loadManifest mfPathXml (unBaseUrl mfBaseURIXml)
nTriplesManifest <-
loadManifest mfPathNTriples (fileSchemeUri suiteFilesDirNTriples)
-- run tests
defaultMain
( testGroup
"rdf4h tests"
-- RDF graph API tests
[ testGroup
"property-tests"
[ ( graphTests
"TList"
(empty :: RDF TList)
(mkRdf :: Triples -> Maybe BaseUrl -> PrefixMappings -> RDF TList)
),
( graphTests
"AdjHashMap"
(empty :: RDF AdjHashMap)
(mkRdf :: Triples -> Maybe BaseUrl -> PrefixMappings -> RDF AdjHashMap)
),
( graphTests
"AlgebraicGraph"
(empty :: RDF AlgebraicGraph)
(mkRdf :: Triples -> Maybe BaseUrl -> PrefixMappings -> RDF AlgebraicGraph)
)
],
testGroup
"graph-impl-unit-tests"
[graphImplTests],
testGroup
"iri"
[iriTests],
testGroup
"bnode"
[blankNodeTests],
-- RDF parser unit tests
testGroup
"parser-unit-tests-turtle"
TurtleUnitTest.tests,
testGroup
"parser-unit-tests-xml"
XmlUnitTest.tests,
-- RDF serializer unit tests
testGroup "serializer-unit-tests-turtle" [TurtleSerializerTest.tests],
-- RDF parser W3C tests
testGroup
"parser-w3c-tests-ntriples"
[ testGroup
"parser-w3c-tests-ntriples-parsec"
[W3CNTripleTest.testsParsec nTriplesManifest],
testGroup
"parser-w3c-tests-ntriples-attoparsec"
[W3CNTripleTest.testsAttoparsec nTriplesManifest]
],
testGroup
"parser-w3c-tests-turtle"
[ testGroup
"parser-w3c-tests-turtle-parsec"
[W3CTurtleTest.testsParsec (dir </> T.unpack suiteFilesDirTurtle) turtleManifest],
testGroup
"parser-w3c-tests-turtle-attoparsec"
[W3CTurtleTest.testsAttoparsec (dir </> T.unpack suiteFilesDirTurtle) turtleManifest]
],
testGroup
"parser-w3c-tests-xml"
[ W3CRdfXmlTest.tests (dir </> T.unpack suiteFilesDirXml) xmlManifest
]
]
)