comparison service/mqtt_to_rdf/inference_test.py @ 1605:449746d1598f

WIP move evaluation to new file
author drewp@bigasterisk.com
date Mon, 06 Sep 2021 01:13:55 -0700
parents e78464befd24
children 6cf39d43fd40
comparison
equal deleted inserted replaced
1604:e78464befd24 1605:449746d1598f
4 import unittest 4 import unittest
5 5
6 from rdflib import RDF, BNode, ConjunctiveGraph, Graph, Literal, Namespace 6 from rdflib import RDF, BNode, ConjunctiveGraph, Graph, Literal, Namespace
7 from rdflib.parser import StringInputSource 7 from rdflib.parser import StringInputSource
8 8
9 from inference import Inference, _parseList 9 from inference import Inference
10 from rdflib_debug_patches import patchBnodeCounter, patchSlimReprs 10 from rdflib_debug_patches import patchBnodeCounter, patchSlimReprs
11 11
12 patchSlimReprs() 12 patchSlimReprs()
13 patchBnodeCounter() 13 patchBnodeCounter()
14 14
176 def testAsFarenheit(self): 176 def testAsFarenheit(self):
177 inf = makeInferenceWithRules("{ :a :b ?x . ?x room:asFarenheit ?f } => { :new :stmt ?f } .") 177 inf = makeInferenceWithRules("{ :a :b ?x . ?x room:asFarenheit ?f } => { :new :stmt ?f } .")
178 self.assertGraphEqual(inf.infer(N3(":a :b 12 .")), N3(":new :stmt 53.6 .")) 178 self.assertGraphEqual(inf.infer(N3(":a :b 12 .")), N3(":new :stmt 53.6 ."))
179 179
180 180
181 class TestParseList(unittest.TestCase):
182
183 def test0Elements(self):
184 g = N3(":a :b () .")
185 bn = g.value(EX['a'], EX['b'])
186 elems, used = _parseList(g, bn)
187 self.assertEqual(elems, [])
188 self.assertFalse(used)
189
190 def test1Element(self):
191 g = N3(":a :b (0) .")
192 bn = g.value(EX['a'], EX['b'])
193 elems, used = _parseList(g, bn)
194 self.assertEqual(elems, [Literal(0)])
195 used = sorted(used)
196 self.assertEqual(used, [
197 (bn, RDF.first, Literal(0)),
198 (bn, RDF.rest, RDF.nil),
199 ])
200
201
202 class TestUseCases(WithGraphEqual): 181 class TestUseCases(WithGraphEqual):
203 182
204 def testSimpleTopic(self): 183 def testSimpleTopic(self):
205 inf = makeInferenceWithRules(''' 184 inf = makeInferenceWithRules('''
206 { ?msg :body "online" . } => { ?msg :onlineTerm :Online . } . 185 { ?msg :body "online" . } => { ?msg :onlineTerm :Online . } .