Source code for tests.testStatistics

'''
Created on 2021-07-31

@author: wf
'''
import unittest
from tests.datasourcetoolbox import DataSourceTest
from corpus.lookup import CorpusLookup
from corpus.event import EventStorage
from lodstorage.query import Query
import copy
import json

[docs]class TestStatistics(DataSourceTest): ''' test statistics '''
[docs] @classmethod def setUpClass(cls): super().setUpClass() cls.lookup=CorpusLookup()
[docs] def setUp(self, debug:bool=False, profile:bool=True, **kwargs): DataSourceTest.setUp(self, debug=debug, profile=profile, **kwargs) self.lookup=TestStatistics.lookup pass
[docs] def testIssue255(self): ''' test issue 255 problem list ''' show=False lookup=self.lookup sqlQuery="""select url,endDate-startdate+1 as duration from event_orclone where endDate is not Null and startDate is not Null and duration<0 or duration>7 order by duration""" query=Query(name="issue #255",query=sqlQuery,lang='sql') qlod=lookup.getLod4Query(query.query) prefix="https://confident.dbis.rwth-aachen.de/or/index.php?title=" for tablefmt in ["mediawiki","github","latex"]: lod=copy.deepcopy(qlod) query.prefixToLink(lod, prefix, tablefmt) qdoc=query.documentQueryResult(lod,tablefmt=tablefmt) if show: print(qdoc)
[docs] def testMultiQuery(self): ''' test MultiQuery ''' lookup=self.lookup multiQuery="""SELECT count(*) AS count,ordinal FROM {event} GROUP BY ordinal ORDER by 1""" dictOfLod=lookup.getDictOfLod4MultiQuery(multiQuery) debug=self.debug #debug=True if debug: jsonStr=json.dumps(dictOfLod, sort_keys=True, indent=2,default=str) print(jsonStr)
[docs] def testStatistics(self): ''' test statistics ''' lookup=self.lookup qm=EventStorage.getQueryManager() self.assertIsNotNone(qm) self.assertTrue(len(qm.queriesByName)>1) showMarkup=False # showMarkup=True failCount=0 for _name,query in qm.queriesByName.items(): try: qlod=lookup.getLod4Query(query.query) for tablefmt in ["mediawiki","github","latex"]: qdoc=query.documentQueryResult(qlod,tablefmt=tablefmt) if showMarkup: print(qdoc) except Exception as ex: print(f"query: {query.query} failed:\n{ex}") failCount+=1 self.assertTrue(failCount<=3) pass
if __name__ == "__main__": #import sys;sys.argv = ['', 'Test.testName'] unittest.main()