Skip to content
Snippets Groups Projects
Select Git revision
  • 9a8790e832cc422491aeb19eb3ccf8256e618733
  • main default protected
2 results

construct_graph_unittest.py

  • Forked from Ockenden, Samuel / CiS Projekt
    214 commits behind the upstream repository.
    user avatar
    Malte Schokolowski authored
    9a8790e8
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    construct_graph_unittest.py 3.74 KiB
    import unittest
    
    import sys  
    from pathlib import Path
    sys.path.append("../")
    
    from verarbeitung.construct_new_graph.initialize_graph import init_graph_construction
    
    class ConstructionTest(unittest.TestCase):
         maxDiff = None
    
    
         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'],1,0,True)
              doi_nodes = keep_only_dois(nodes)
              self.assertCountEqual(doi_nodes,['doi_h01'])
              self.assertCountEqual(edges, [])
    
              nodes, edges = init_graph_construction(['doi_h02'],1,0,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'],2,0,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'],0,1,True)
              doi_nodes = keep_only_dois(nodes)
              self.assertCountEqual(doi_nodes,['doi_d01'])
              self.assertCountEqual(edges, [])
    
              nodes, edges = init_graph_construction(['doi_d02'],0,1,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'],0,2,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']])
    
    
    
    
    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__":
         unittest.main()