Newer
Older
import unittest
import sys
from pathlib import Path
from verarbeitung.construct_new_graph.initialize_graph import init_graph_construction, initialize_nodes_list
class ConstructionTest(unittest.TestCase):
def testCycle(self):
nodes, edges = init_graph_construction(['doiz1'],1,1,True)
doi_nodes = keep_only_dois(nodes)
self.assertCountEqual(doi_nodes, ['doiz1', 'doiz2'])
self.assertCountEqual(edges, [['doiz1', 'doiz2'], ['doiz2', 'doiz1']])
nodes, edges = init_graph_construction(['doiz1'],2,2,True)
doi_nodes = keep_only_dois(nodes)
self.assertCountEqual(doi_nodes, ['doiz1', 'doiz2'])
self.assertCountEqual(edges, [['doiz2', 'doiz1'], ['doiz1', 'doiz2']])
#def testBigCycle(self):
#def testEmptyHeight(self):
#def testEmptyDepth(self):
def testEmptyDepthHeight(self):
nodes, edges = init_graph_construction(['doi1'],0,0,True)
doi_nodes = keep_only_dois(nodes)
self.assertCountEqual(doi_nodes,['doi1'])
self.assertCountEqual(edges, [])
nodes, edges = init_graph_construction(['doi1', 'doi2'],0,0,True)
doi_nodes = keep_only_dois(nodes)
self.assertCountEqual(doi_nodes, ['doi1','doi2'])
self.assertCountEqual(edges, [['doi1', 'doi2']])
nodes, edges = init_graph_construction(['doi1', 'doi2', 'doi3'],0,0,True)
doi_nodes = keep_only_dois(nodes)
self.assertCountEqual(doi_nodes, ['doi1','doi2', 'doi3'])
self.assertCountEqual(edges, [['doi3', 'doi1'], ['doi1', 'doi2']])
def testInnerEdges(self):
nodes, edges = init_graph_construction(['doi_ie1'],1,1,True)
doi_nodes = keep_only_dois(nodes)
self.assertCountEqual(doi_nodes,['doi_ie1','doi_ie2','doi_ie3'])
self.assertCountEqual(edges,[['doi_ie1','doi_ie2'],['doi_ie3','doi_ie1'],['doi_ie3','doi_ie2']])
def testRightHeight(self):
nodes, edges = init_graph_construction(['doi_h01'],0,1,True)
doi_nodes = keep_only_dois(nodes)
self.assertCountEqual(doi_nodes,['doi_h01'])
self.assertCountEqual(edges, [])
nodes, edges = init_graph_construction(['doi_h02'],0,1,True)
doi_nodes = keep_only_dois(nodes)
self.assertCountEqual(doi_nodes,['doi_h02','doi_h1'])
self.assertCountEqual(edges, [['doi_h1','doi_h02']])
nodes, edges = init_graph_construction(['doi_h02'],0,2,True)
doi_nodes = keep_only_dois(nodes)
self.assertCountEqual(doi_nodes,['doi_h02','doi_h1','doi_h2'])
self.assertCountEqual(edges, [['doi_h1','doi_h02'], ['doi_h2','doi_h1']])
def testRightDepth(self):
nodes, edges = init_graph_construction(['doi_d01'],1,0,True)
doi_nodes = keep_only_dois(nodes)
self.assertCountEqual(doi_nodes,['doi_d01'])
self.assertCountEqual(edges, [])
nodes, edges = init_graph_construction(['doi_d02'],1,0,True)
doi_nodes = keep_only_dois(nodes)
self.assertCountEqual(doi_nodes,['doi_d02','doi_d1'])
self.assertCountEqual(edges, [['doi_d02','doi_d1']])
nodes, edges = init_graph_construction(['doi_d02'],2,0,True)
doi_nodes = keep_only_dois(nodes)
self.assertCountEqual(doi_nodes,['doi_d02','doi_d1','doi_d2'])
self.assertCountEqual(edges, [['doi_d02','doi_d1'], ['doi_d1','doi_d2']])
## Ab hier die Tests für die einzelnen Funktionen ##
# initialize_graph.py:
def test_initialize_nodes_list(self):
references_pub_obj_list, citations_pub_obj_list = initialize_nodes_list(['doi_lg_1_i','doi_lg_2_i'], 0, 0, True)
doi_references = keep_only_dois(references_pub_obj_list)
doi_citations = keep_only_dois(citations_pub_obj_list)
self.assertCountEqual(doi_references, [])
self.assertCountEqual(doi_citations, [])
references_pub_obj_list, citations_pub_obj_list = initialize_nodes_list(['doi_lg_1_i','doi_lg_2_i'], 1, 1, True)
doi_references = keep_only_dois(references_pub_obj_list)
doi_citations = keep_only_dois(citations_pub_obj_list)
self.assertCountEqual(doi_references, ['doi_lg_1_d11','doi_lg_1_d12','doi_lg_2_d11','doi_lg_2_d12'])
self.assertCountEqual(doi_citations, ['doi_lg_1_h11','doi_lg_1_h12','doi_cg_i','doi_lg_2_h11','doi_lg_2_h12'])
def keep_only_dois(nodes):
'''
:param nodes: input list of nodes of type Publication
:type nodes: List[Publication]
gets nodes of type pub and return only their doi
'''
doi_list = []
for node in nodes:
doi_list.append(node.doi_url)
return doi_list
if __name__ == "__main__":