Mercurial > code > home > repos > homeauto
diff service/mqtt_to_rdf/stmt_chunk_test.py @ 1659:15e84c71beee
parse lists from graph into the Chunks
author | drewp@bigasterisk.com |
---|---|
date | Sun, 19 Sep 2021 14:42:39 -0700 |
parents | 15e195fb24bb |
children | 00a5624d1d14 |
line wrap: on
line diff
--- a/service/mqtt_to_rdf/stmt_chunk_test.py Sun Sep 19 13:33:10 2021 -0700 +++ b/service/mqtt_to_rdf/stmt_chunk_test.py Sun Sep 19 14:42:39 2021 -0700 @@ -1,3 +1,4 @@ +from time import clock_gettime import unittest from rdflib.term import Variable @@ -41,6 +42,35 @@ self.assertFalse(cg.noPredicatesAppear([ROOM.b, ROOM.d])) +class TestListCollection(unittest.TestCase): + + def testSubjList(self): + cg = ChunkedGraph(N3('(:u :v) :b :c .'), functionsFor) + expected = Chunk((None, ROOM.b, ROOM.c), subjList=[ROOM.u, ROOM.v]) + self.assertEqual(cg.staticChunks, set([expected])) + + def testObjList(self): + cg = ChunkedGraph(N3(':a :b (:u :v) .'), functionsFor) + expected = Chunk((ROOM.a, ROOM.b, None), objList=[ROOM.u, ROOM.v]) + self.assertSetEqual(cg.staticChunks, set([expected])) + + def testVariableInListMakesAPatternChunk(self): + cg = ChunkedGraph(N3(':a :b (?x :v) .'), functionsFor) + expected = Chunk((ROOM.a, ROOM.b, None), objList=[Variable('x'), ROOM.v]) + self.assertSetEqual(cg.patternChunks, set([expected])) + + def testListUsedTwice(self): + cg = ChunkedGraph(N3('(:u :v) :b :c, :d .'), functionsFor) + + self.assertSetEqual(cg.staticChunks, set([ + Chunk((None, ROOM.b, ROOM.c), subjList=[ROOM.u, ROOM.v]), + Chunk((None, ROOM.b, ROOM.d), subjList=[ROOM.u, ROOM.v]) + ])) + + def testUnusedListFragment(self): + cg = ChunkedGraph(N3(':a rdf:first :b .'), functionsFor) + self.assertFalse(cg) + class TestApplyChunky(unittest.TestCase): binding = CandidateBinding({Variable('x'): ROOM.xval})