From 8b99457aa6ea15085ff854ec65f50b5b326c0c1a Mon Sep 17 00:00:00 2001
From: Alina Molkentin <alina.molkentin@studium.uni-hamburg.de>
Date: Sun, 28 Nov 2021 21:00:51 +0100
Subject: [PATCH] =?UTF-8?q?Unittest=20Datei=20hinzugef=C3=BCgt?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 verarbeitung/Processing.py                    |  22 +++++++++++++----
 verarbeitung/Processing_unittest.py           |  23 ++++++++++++++++++
 .../__pycache__/Processing.cpython-36.pyc     | Bin 0 -> 3693 bytes
 .../__pycache__/input_test.cpython-36.pyc     | Bin 2359 -> 2579 bytes
 .../__pycache__/unittest.cpython-36.pyc       | Bin 0 -> 646 bytes
 verarbeitung/json_text.json                   |   2 +-
 6 files changed, 41 insertions(+), 6 deletions(-)
 create mode 100644 verarbeitung/Processing_unittest.py
 create mode 100644 verarbeitung/__pycache__/Processing.cpython-36.pyc
 create mode 100644 verarbeitung/__pycache__/unittest.cpython-36.pyc

diff --git a/verarbeitung/Processing.py b/verarbeitung/Processing.py
index ac85f52..753bbe9 100644
--- a/verarbeitung/Processing.py
+++ b/verarbeitung/Processing.py
@@ -63,7 +63,7 @@ def create_graph_structure_citations(pub, search_height, search_height_max):
                 edges.append([citation.doi_url,pub.doi_url])
 
         # adds only edge if citation already exists         
-        else:
+        elif [citation.doi_url,pub.doi_url] not in edges:
             edges.append([citation.doi_url,pub.doi_url])   
 
 
@@ -85,7 +85,7 @@ def create_graph_structure_references(pub, search_depth, search_depth_max):
                 edges.append([pub.doi_url,reference.doi_url])
 
         # adds only edge if citation already exists           
-        else:
+        elif [pub.doi_url,reference.doi_url] not in edges:
             edges.append([pub.doi_url,reference.doi_url])      
     
 
@@ -182,13 +182,20 @@ def process_main(doi_input_list, search_height, search_depth, test_var = False):
     output_to_json(nodes,edges)
 
     # only for internal testing
-    return(nodes,edges)
+    doi_nodes = []
+    for node in nodes:
+        doi_nodes.append(node.doi_url)
+    return(doi_nodes,edges)
+
+
+
+    
 
 def print_graph(nodes, edges):
     print("Knoten:\n")
     for node in nodes:
         print(node.title, "\n")
-    print("\n Kanten:\n")
+    print("\nKanten:\n")
     for edge in edges:
         print(edge,"\n")
    
@@ -201,6 +208,8 @@ def test_cycle():
 
     nodes,edges = process_main(arr,1,1,True)
 
+    print(nodes, edges)
+
     print_graph(nodes, edges)
     
 # program test, because there is no connection to the input yet.
@@ -222,5 +231,8 @@ def test_print():
     print_graph(nodes, edges)
 
 #test_print()
-test_cycle()
+#test_cycle()
+print(process_main(['doiz1'],1,1,True))
+print(process_main(['doi1'],0,0,True))
+
         
\ No newline at end of file
diff --git a/verarbeitung/Processing_unittest.py b/verarbeitung/Processing_unittest.py
new file mode 100644
index 0000000..b9f8104
--- /dev/null
+++ b/verarbeitung/Processing_unittest.py
@@ -0,0 +1,23 @@
+import unittest
+from Processing import process_main
+
+class ProcessingTest(unittest.TestCase):
+    def testCycle(self):
+        self.assertEqual(process_main(['doiz1'],1,1,True), (['doiz1', 'doiz2'], [['doiz2', 'doiz1'], ['doiz1', 'doiz2']]))
+        self.assertEqual(process_main(['doiz1'],2,2,True), (['doiz1', 'doiz2'], [['doiz2', 'doiz1'], ['doiz1', 'doiz2']]))
+
+    #def testBigCycle(self):
+
+    #def testEmptyHeight(self):
+
+    #def testEmptyDepth(self):
+
+    def testEmptyDepthHeight(self):
+        self.assertEqual(process_main(['doi1'],0,0,True), (['doi1'], []))
+        self.assertEqual(process_main(['doi1', 'doi2'],0,0,True), (['doi1','doi2'], [['doi1', 'doi2']]))
+        self.assertEqual(process_main(['doi1', 'doi2', 'doi3'],0,0,True), (['doi1','doi2', 'doi3'], [['doi3', 'doi1'], ['doi1', 'doi2']]))
+
+    #def testInnerEdges(self):
+
+if __name__ == "__main__":
+    unittest.main()
\ No newline at end of file
diff --git a/verarbeitung/__pycache__/Processing.cpython-36.pyc b/verarbeitung/__pycache__/Processing.cpython-36.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..eb6d8a0418a1340b746f2f664997515622356d8a
GIT binary patch
literal 3693
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
L`Ch}jw!!`l1wlr^

literal 0
HcmV?d00001

diff --git a/verarbeitung/__pycache__/input_test.cpython-36.pyc b/verarbeitung/__pycache__/input_test.cpython-36.pyc
index 9dd609c5b2fe3d7530f4120f8993c04d58f4600c..85878d6d127d9d2bd5efe9130672d982bb70c5fa 100644
GIT binary patch
delta 360
zcmdlkG+9L1n3tF9v*V(~eVhyoj~S2v2axRm#KqSpD);-O$fU@o$fd}qGo>h`D5fZ-
zGlH>jI!6>|ic*Slib{$qP);pHJw*m62f`pZu2i;E_Ee5k&Qz{+)+p{2jbH{%&B?!+
z3^#tZW@n6=tk0pt9>tQ9pJ@~|If)~*{uV2cU1b=>UXodolUik1#h;v?S5lOjR9cc>
zRAs1#Az&26nU!B!l$V$T)Ww#PSOU}(1vbP8W{450Ax7wi80o<c;mfHqf|_FFr^z#U
z7l*w_6nj-=c1~$A&`}VEQIYKA^GxEJw>WHa^HWN5QtcQ)!6XJG_=Na4_&7M&IXE~t
Or5Gg`C75IwWtaeV4Q0vz

delta 117
zcmbO%vRz2on3tF9W9hua9UKe{j~S2vkk8-%#Kp5FD)$SdvZb=8a-=gyai+)wGib_g
z{FlSdcx!SthYtHKmX!QVqg#{bafCAaX>v_&;IyB7kyArV2&kD)h>wGhgM*!egM(9w
JQG!u|2>>+=85IBk

diff --git a/verarbeitung/__pycache__/unittest.cpython-36.pyc b/verarbeitung/__pycache__/unittest.cpython-36.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..245eb7f9be9221daa930d9fa83c77368ba463af7
GIT binary patch
literal 646
zcmY*Wy-ve05I#Fj32k9OOuRvbO8Ai&5JHtI#8!}C%3_7u4QZ1U>;yr@*1ic7FTsO&
zW#Sc>xJyA4NB8;8&VBdY`DkOKdHntw?=pZ7SXl!79-2KtP@q@_5$!x<IgdDl3s9aC
z3s6GC*qeKi(7y5~+#F-vm;=L{Yv?pSF&_pU=GymWI@H$6JWh)to&GM4P7lp)BWQ@2
zf`}`o_yQtNdB`H%=G8JgEs`5;%OUEm7wrwSKAPP}c!4pLOtA#>@$=>anM6W-gcv0}
z;UhlB9uy$AKXAU9rn7@j;<{M|haK)(v9;Qi=MPn!8PbSN2&=Qv8<=$rzb?bOX|BUK
zOAE5<DeR}$T@*UjlQJBpUE9T;Dd;|G6PsI|mQ|62|AMMW%Mv@<yMJ~qa(){1v4W+l
zz-BxDo8MdcZGf{0q%7iGOX-?Y=2KN=<hP|H<;xq>LZVvr3N-1=L!ig5YXz*1iIHAO
z%Fdb#eigdrpNx7QE}*CA$2cWoF>M4VC~>6-P0COu7o0A&oza|afDo`Y-x2})20ucc
A$^ZZW

literal 0
HcmV?d00001

diff --git a/verarbeitung/json_text.json b/verarbeitung/json_text.json
index 8f648bf..5b81672 100644
--- a/verarbeitung/json_text.json
+++ b/verarbeitung/json_text.json
@@ -1 +1 @@
-{"nodes": [{"name": "titlez1", "author": ["contributorz1.1", "contributorz1.2"], "year": "datez1", "journal": "journalz1", "doi": "doiz1", "group": "input"}, {"name": "titlez2", "author": ["contributorz2.1", "contributorz2.2"], "year": "datez2", "journal": "journalz2", "doi": "doiz2", "group": "depth"}], "links": [{"source": "doiz1", "target": "doiz2"}]}
\ No newline at end of file
+{"nodes": [{"name": "title1", "author": ["contributor1"], "year": "date1", "journal": "journal1", "doi": "doi1", "group": "input"}, {"name": "title2", "author": ["contributor2"], "year": "date2", "journal": "journal2", "doi": "doi2", "group": "input"}, {"name": "title3", "author": ["contributor3"], "year": "date3", "journal": "journal3", "doi": "doi3", "group": "input"}], "links": [{"source": "doi3", "target": "doi1"}, {"source": "doi1", "target": "doi2"}]}
\ No newline at end of file
-- 
GitLab