From 0c4e5c85ae84e36772204d06a285e190cb8a1531 Mon Sep 17 00:00:00 2001
From: Jacob Theisen <jacobth@stud.ntnu.no>
Date: Tue, 9 Nov 2021 23:52:41 +0100
Subject: [PATCH] sjo2

---
 ov8/HM_compression.py   |  31 -------------------------------
 ov8/HM_uncompression.py |   1 +
 ov8/hm_uncomp           | Bin 1735 -> 1411 bytes
 3 files changed, 1 insertion(+), 31 deletions(-)

diff --git a/ov8/HM_compression.py b/ov8/HM_compression.py
index ccb3147..2506d20 100644
--- a/ov8/HM_compression.py
+++ b/ov8/HM_compression.py
@@ -49,22 +49,12 @@ for i in all_strings:
 table = sorted(table,key=lambda x: x.freq)
 
 
-# A Huffman Tree Node
 class node:
 	def __init__(self, freq, symbol, left=None, right=None):
-		# frequency of symbol
 		self.freq = freq
-
-		# symbol name (character)
 		self.symbol = symbol
-
-		# node left of current node
 		self.left = left
-
-		# node right of current node
 		self.right = right
-
-		# tree direction (0/1)
 		self.huff = ''
 
 
@@ -76,59 +66,38 @@ class rep_tree():
 
 
 def printNodes(node, val=''):
-	# huffman code for current node
     newVal = val + str(node.huff)
 
-	# if node is not an edge node
-	# then traverse inside it
     if(node.left):
         printNodes(node.left, newVal)   
     if(node.right):
         printNodes(node.right, newVal)
 
-		# if node is edge node then
-		# display its huffman code
     if(not node.left and not node.right):
         rep_tree_arr.append(rep_tree(node.symbol, newVal))
 
 
-
-
-# list containing unused nodes
 nodes = []
-
 for j in table:
 	nodes.append(node(j.freq, j.char))
 
 while len(nodes) > 1:
 
-
-	# pick 2 smallest nodes
 	left = nodes[0]
 	right = nodes[1]
-
-	# assign directional value to these nodes
 	left.huff = 0
 	right.huff = 1
-
-	# combine the 2 smallest nodes to create
-	# new node as their parent
 	newNode = node(left.freq+right.freq, left.symbol+right.symbol, left, right)
-
-	# remove the 2 nodes and add their
-	# parent as new node among others
 	nodes.remove(left)
 	nodes.remove(right)
 	nodes.append(newNode)
 
-# Huffman Tree is ready!
 printNodes(nodes[0])
 
 
 bit_string = ''
 		
 
-
 for i in all_strings:
     a = [a for a in rep_tree_arr if a.symb == i]
     bit_string += a[0].val
diff --git a/ov8/HM_uncompression.py b/ov8/HM_uncompression.py
index 4eeebcf..7cb1e4c 100644
--- a/ov8/HM_uncompression.py
+++ b/ov8/HM_uncompression.py
@@ -101,6 +101,7 @@ for i in range(0,len(lz_code),6):
         elif k not in string.printable:
             print('extende')
             counter +=1
+    print(counter)
     with open('./hm_uncomp', 'a') as file:
         file.write(huff_string[:value-counter])
     huff_string = huff_string[value-counter:]
diff --git a/ov8/hm_uncomp b/ov8/hm_uncomp
index 1cfe83f1d08f9bcbc6c8dce44dc3445c2ba2a659..6f681179d724e9a01a8cfcf37f85ba105e6dbae3 100644
GIT binary patch
delta 939
zcmX@k+sr*7Nqpgd4hDV(E)Y;qc+{{+!L2B><jwzyjT)|}|BEtkFeH{FCM6c97CrvY
z#=yl8e0WE8YHof>e$o5?JPeWy3aKR}sYMD!sRgMesYNBJ3dJQwsd?$CMNa=Y85kHu
z|4;lU#rS`+G^2sY!~X&dj10LC|Fbc$GGtelDHPxNKRKJxlIg|&$*UNpm@faHe2P(;
z>CykmuNk#C`~R~sFfwF@{hzGDWWn*|KL-N?!|VT(bC?wCzy0TAU}Pxz2)5zTe+~vg
z1}<GV&<3%zzy0T8U|@LjUxa~|0VKesprD{&prD|z`M)3oBSXy_u<;5IW#9g@GcYhD
z|IcS&WH3wybK?H1!G(;H|MM^~FvR^=1PjH2lo==g7X*vRfW<&UCdvQBz(V41A=Bjl
z(qJJW1_p+pKl2zE820=zW?*1Y`wJo`fXQEAGUcBM0|P_B&&dawMeBco>|6U2<f<<}
z*%%lYuKj0Y;AQYA%Pdw%Ni9*x%+5~T{*#k|l_4#svZUnfe_jRwhT_9Z6><{u(n}P|
zG8M8D^J;#wGcYo6#e)6w<F7gc3j-(+e*QILU}jKIF!=RXAIvb+`v+kd=|dUy#>xM*
z85kH;|A0ch{~tF41H+Vm91PqH#i<GfhnFhkr52Y2{9|KaVaP8o(=++U!@vn~TuEwr
zUi3c>1{Q|2%)Da#e|!ua3_2jkD3oP-{9|L_U`SQSRVXe=P45CHgS4X5Tr2lK><j`R
zx78@*Dk#(_q}GGT5=b=X2ZLif^Z9>H1~!HgkWBH7|9lLb44EKyo`M3G#Xo%p1_t3j
zpctF@Uy^}=Vdg(ju>bfi#lXOD3mgSA|ARbq_czExwf}V)7#L3c14W(oKOqJIuwxZU
zGIJElQuB&SigZ)weFMdS+CKpX28R1zLGA`8pyI<zcmCxD1!Qh&%DJx~!{+{<%*Uqc
z`v(+P%fLZ>=06()CxfR#K~Z9Mac1$E{{jqr45>M(3W+&siAkv?sU<pl{<AT#F{Gp_
pq~)Z}{mse1%>Xt&J+nw5wdBC>$+OtxxX=A(V_;`UIka1o3jlh1BfJ0r

literal 1735
zcmYdb2uaN@E-5~|BU?woC9xziJ3qIeD782%KaY#cBQ+;IRly@Mtt2xqor}veuec<$
zq_m_&AuYd1AtkXSu_QG+FFz+gJyRh+T_H0sEx#x?u_QA)n~N(rH5+7xf}z6u{d?c<
z-^;<k&%gx&3JQ-J7Ad$DWtKoB*cnt96fzZ3^0P~GQ}aqvi*yw7QcFsTGgDHFK&Iwo
zrst*RrKCbsi!yL9B$gy5B^IX^K}6UXxEO*D@5oNg%`eG^it#W=GAN{$l%y6Z6r~oV
zmZTPyq$(7b6s6{+rxrQA-@liWfq_Bv{r<f?45ADW2f6q;>gFbvBxitq%H{ul|6X<m
z9Z29<DHJ6pB^D(WB`Sb`Mowy8dP=H7o+cNUf&$p?{Gt>qs7D1D7#VV5PGe=rt}Ih1
zhH*_9QcDza67$lF6-q#%o|>nlP@JlepR16PTB1;pSX`W1#04@G;--?+^gM;)e5h&c
z3}OsA3T2tasl^JpsVNF+sU-@<*+rRY(17G%5NAj`yrZbNBvm0TH8TgSD7&<%II|35
zKL>*vLrQ*9Qff{~&fy)|*{R@Y%+t+PD9A6)1jQC8@bl9Zpcb+*FfwF@z2Co=i@}6J
zPXXjEu;V;Zb5a%3i&8Tabrk$#a#GVuH1cASQ}Rm`a$|}z(=$pmbz=N;Q_~Y+)-o_a
zSZoZk3}90f6x{NQKuJzPp+=zyL?nWUB#1Ij21W*GM1tZ8BFMoY$iSrw2ihQ(Hbjbx
z0cL>+0~Z5Gf(sN)1_}z$C=p~}WT=6t1^EdoiqOW+z`&6Fe*fNl21W)$5CbF-_kRCg
zH6#fmkOU6{0|Q7x5lO-rBq0cukU^3#0ZE8KCB%^=OhFRTPzfOh28JMr<KX@<W?*1Y
zd%u4#h=xd^vQpmf-)q9az)%2A$^s0a92K0ZP;hvuLUCqsNvbzEX~RMV<Qs@7Y;YSu
zxyGX`vlyK4GPARx*^85bl_4#svILr>xEKT&iVrUZC)pB(vP^~S#5_<yvNJF;aK(bN
z2+R_71{MZTs6#9=Vqj)aP%waS^uZiMz4!a~LYPMSa3(nLv>6x}RNsTj2$*TyaEEd*
za5EG`yq1?*ToUkp|6Vo*7KZ%dGCdQpFF6^&{s85bXs{V93~8Bp#ULyA7&sVoKyFqj
z%k%(i<X}iu$W<sVNlk}1jSb}AqSRa~cd%y!KwhX($OR?FR1g6T2T+R44+aM|BSR)c
zD<=aRLkUO?G<Wkca57|q_<0HnTozytGB5~36A?s<B-~e^$cKnYVG#p`2Sk>Gfq|j+
z{r<hWa8;lL21@rr3<6+(DwJgAD3qn<fl4=s9#9$uB_08|9ySIJ25^=rKD-p7h8q-H
zxv8LZ1P(J;xU(}TFob0)WF!`WVmmcYp(HUWH75sLP-K+l7b)acrka6+3ZVnWVq@TB
z@Kh)$O3W_KgocR#10MsZut>~FOH4{FNiETVSkK15#*mV#kd^~acH9sLre_u@q(TFo
mok5xbl%jL>6f}ZT(^GRm<>aB&rQl*R4`vWML&~Aunp^<SD6nw=

-- 
GitLab