rdf4h-3.1.0: testsuite/tests/Data/RDF/GraphImplTests.hs
{-# LANGUAGE OverloadedStrings #-}
module Data.RDF.GraphImplTests (graphImplTests) where
import Data.RDF
import qualified Data.Map as Map
import Test.Tasty
import qualified Test.Tasty.HUnit as TU
----------------------------------------------------
-- unit test cases --
----------------------------------------------------
graphImplTests :: TestTree
graphImplTests =
testGroup "graph-unit-tests"
[
testGroup "graph-impl-pred"
[ testGroup "adjHashMap" [adjHashMap1,adjHashMap2]
, testGroup "tlist" [tList1,tList2]
]
,
testGroup "quickcheck-cases"
[ testGroup "tlist" [tList3]
]
]
-- https://github.com/robstewart57/rdf4h/issues/49
adjHashMap1 :: TestTree
adjHashMap1 =
let content = "PREFIX ex: <ex:> ex:s1 ex:p1 ex:o1 ; ex:p2 ex:o2 ."
Right g = parseString (TurtleParser Nothing Nothing) content :: Either ParseFailure (RDF AdjHashMap)
res = query g Nothing (Just $ unode "ex:p1") Nothing
in TU.testCase "adjHashMap1" $
TU.assertBool
"adjHashMap1 mkRdf test"
(res
==
[Triple (UNode "ex:s1") (UNode "ex:p1") (UNode "ex:o1")])
-- https://github.com/robstewart57/rdf4h/issues/49
adjHashMap2 :: TestTree
adjHashMap2 =
let g = mkRdf
[ Triple (unode "ex:s1") (unode "ex:p1") (unode "ex:o1")
, Triple (unode "ex:s1") (unode "ex:p2") (unode "ex:o2")
]
Nothing
(PrefixMappings Map.empty) :: RDF AdjHashMap
res = query g Nothing (Just $ unode "ex:p1") Nothing
in TU.testCase "adjHashMap2" $
TU.assertBool
"adjHashMap1 mkRdf test"
(res
==
[Triple (UNode "ex:s1") (UNode "ex:p1") (UNode "ex:o1")])
-- https://github.com/robstewart57/rdf4h/issues/49
tList1 :: TestTree
tList1 =
let content = "PREFIX ex: <ex:> ex:s1 ex:p1 ex:o1 ; ex:p2 ex:o2 ."
Right g = parseString (TurtleParser Nothing Nothing) content :: Either ParseFailure (RDF TList)
res = query g Nothing (Just $ unode "ex:p1") Nothing
in TU.testCase "tList1" $
TU.assertBool
"tList1 mkRdf test"
(res
==
[Triple (UNode "ex:s1") (UNode "ex:p1") (UNode "ex:o1")])
-- https://github.com/robstewart57/rdf4h/issues/49
tList2 :: TestTree
tList2 =
let g = mkRdf
[ Triple (unode "ex:s1") (unode "ex:p1") (unode "ex:o1")
, Triple (unode "ex:s1") (unode "ex:p2") (unode "ex:o2")
]
Nothing
(PrefixMappings Map.empty) :: RDF AdjHashMap
res = query g Nothing (Just $ unode "ex:p1") Nothing
in TU.testCase "tList1" $
TU.assertBool
"tList1 mkRdf test"
(res
==
[Triple (UNode "ex:s1") (UNode "ex:p1") (UNode "ex:o1")])
tList3 :: TestTree
tList3 =
let ts =
[ Triple (BNode ":_genid2") (UNode "http://www.example.org/bar1") (LNode (PlainLL "haskell" "en"))
, Triple (UNode "ex:s1") (UNode "ex:o2") (LNode (TypedL "haskell" "http://www.w3.org/2001/XMLSchema#int"))
, Triple (UNode "ex:p2") (UNode "http://www.example.org/bar1") (LNode (PlainLL "earth" "fr"))
, Triple (UNode "ex:p3") (UNode "ex:s3") (LNode (PlainLL "earth" "fr"))
, Triple (UNode "ex:p2") (UNode "http://www.example.org/bar1") (LNode (PlainLL "earth" "fr"))
]
gr = mkRdf ts Nothing (PrefixMappings Map.empty) :: RDF TList
res = query gr (Just (unode "ex:p2")) (Just (unode "http://www.example.org/bar1")) (Just (lnode (plainLL "earth" "fr")))
in TU.testCase "tList2" $
TU.assertBool
"tList2"
(res == [Triple (UNode "ex:p2") (UNode "http://www.example.org/bar1") (LNode (PlainLL "earth" "fr"))])