From a9346eb73bf557ef62a4bf287928467395c37dc2 Mon Sep 17 00:00:00 2001
From: Julianne <julianne.cocq@gmail.com>
Date: Thu, 13 Feb 2025 12:03:11 +0100
Subject: [PATCH] Correction construction_mphf

---
 __pycache__/tp_2_miso_mphf.cpython-311.pyc | Bin 0 -> 6616 bytes
 tp_2_miso_mphf.py                          |  38 ++++++++++-----------
 2 files changed, 19 insertions(+), 19 deletions(-)
 create mode 100644 __pycache__/tp_2_miso_mphf.cpython-311.pyc

diff --git a/__pycache__/tp_2_miso_mphf.cpython-311.pyc b/__pycache__/tp_2_miso_mphf.cpython-311.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..8cc2c8273a168eef66b40fbd77ce425a83fe872c
GIT binary patch
literal 6616
zcmZ3^%ge>Uz`$T~acz3J1Ovlk5C?{tpp4HI3=9m@8B!Qh7;_kM8KamOA#CO-7O)s=
z6f2l!i(&)Q>{09~oGC0Vj8PmZtSt;toGENA3{hMu>@5sY+$kI_3{gB_b-Yo$Obn^K
zS$t4?7?v?GFsz1g7#JB+7=sx!xn6=q{9b}w^OBi?fgza%Bml+i3=9k)!OwG;L2j&J
zSOAqkrBF?-Wl3kKWi0{egDOLlXDeZaN-!`m)G#k&WMEj$2orH(h}~DqUIMZiDpbRQ
zsv?Ck8|=oSmH1TEa-=Y&GuANGa8$7}Fo19^XAO%BLu`00R|zN7Xa)v`5^e;$h6~ju
zR9-E24L6F7oT&0uYzz#wJT;s(Jd$uDQ<$>B;ZP)2!?u78E{w!Lx08{fC#Z%SWQq*~
z14B<l4eJ7=us~?6L9?Bap@xmP*ufVwJ^RxcYI)NcYWZqdT^M4;Yx!&V7H}YJMX+l4
zQGL(I&?Aw~P%DtaSSy&qSSwV+;KC4FN_JQa*9h0}l`#|r*YGVsiY+Ajg;DLV6{+D%
zVXP5pWkQ7h0&wm_=z*|On9y{J)`--IR&g;f)QZ*c;s|Zw8nHAqeT)n>f+@^ZybKJr
zf<0y6v}IMxg%Be<mEm#&ca2~=h8udUYj}ehG+9b#F)=W3aXRPc6_*s1W|k<F=A|m6
z<>w`rWaj57q@*fjBqnDhrl%_8X69w)Cg!9n6eJd<C1#eSDrooyc(`dQ6y%o{DU{|Z
zq~;Z;<|gH&f;468=B5@E>v3^$1|$|G=BAdU78P4@aTceR#AoNG7Aa^Hr<Q11DY#<M
z!kMR_k(mdQ4N1(*ff$#gj?Hk+^u*lUM3`!~#N?9H(jt)UMTb|Wl)^oblc-RFFbTwg
zIuhzLJq4H4w8YY!5-SBGJuc3?r1-qdved-V3Yf`$`MF6&U~j=BQc@Mjw!;_{DnY3w
zrA2w5AjvJrNK??r$t;HW7}aT*fezB_T9KGrkdq41ZD(hv01s4Kh3evxB8^N<g|z%4
zg-nIaJcXjfy!2EJLj%oPE>4izJOx_?LjwpKY_qLGG9>1~!4(e@1H}zEmUI;IG$Be0
ziZb&`6f{7xnp~U^v7FRAh=78vtwJ6bXGl?LDnuqRCr86T!Nyhrq&_+`Hrg;&!A2nu
z-Bo#-n#j7an^y#`VE+IA|NkYZsMqAa#gd#~P<e~FIJM*!E7*Itm~&F|ZZRh&72jgX
zNG#5{#hjRua*Hjopdd9b<rZ6NMG1&z&CE+lt+>USoL`z(qA7lh0~Tzz81rtif>Y8h
zE=1hl5`f9aC+C+ICFYgf;wVW>$^oT|Tb#-HIXRidnfZCQ7~^j-=G+p5O2vZ$Dmk+t
zG3OQwD4pM8%(%s#m{OElT%3A~1r!{&c+-m#^HSoW8g8+}7+}8?-{QzktcVAB>lS0?
zEv5{kB0&ZQhFgruw^%@e#o`PM3<}u6*8os0Y!wq)oLW>IlU16NnHb}eTAW>yUl8MK
zsNm}v>>m?cQkq;+3Q5Z;`FVMVSEd%ngajDHloS}n7pKIO6vP|F=Vlh?gA;;YLFFw$
zjO0<I#lXM-Dj<smm>3uu7(Q4rh{{g)o#Z>we~SMFM!^R>d<_y$c?CK{dqNu|pK|d}
z;JU~qeT7T<1A`QkD41vne9Fpkfm8A#tJD=%sTqNnSmiFT$~|T0y1*@ckzM8ryG(=O
z0|}`KB{NDF6wa)?D6V;dS>yq~{09bZ78NkjQ1X<6yVqrcNT*kiS0{fDe}m%#eu1gN
z7ev)A3aVcbRKLit-r)X#U1Em#6?Vl1L6_LoFR-gWVC8F%ZHk>>a*<Wy3ai8gF#5p8
zpsaF%Rcu1}MOOI>tnwe&7+84P?VIc`2&-IVR=vWkdVyK>ftdXCyh(W%#ni5dsa;?e
ze#$S@S=v+DVEN+%2LmT}gUACx;Re|U0umn>n3xp6L__!kCjRS8VwadeMl;D@VUoW9
zMjzN1xOf^wAMo%tNIYO=YY=?EEBb+fmq`#zG=w~5=jt_?z|v{eW7SySQs1ETfR(+&
z7UI|k+!EKh<t}l{%_zFat#pN3sloICyU2vV38fRludvHrXIH+&uDrnMBD?w(cJ&6s
z8(jPo6gxE=Odc?^w_7(^Phgth(ouDhS?UV2)CFd#2h7|Zg^jii7C%0)G4RQKU|?gC
z1rrS+516<*5*u|JG@i0?_NsK0bZYfzHRiYEHz+<}Vr$oK((WjnpwW?gkxAwXlgtG$
zdceWcApIFsS0;lpEr<capll0j%X|hkW2Qq|k4&X28NszqVoq{tPO3r<sG2FxP)JcP
z%~Jr^9SVmRDCDRoW~QWq1xc%tK!qeqy#va5Bo(rppxmpVQCw1_X{F!|s?0zR0+lYQ
zMIh4=<#%RYiIsv!BFOQj5T}FWk&0+#P`L{$OcV%|(O|`}LK@5gJDqST4OR<ww5@`Y
zsS+0_SODZ;a8_2ZRY*@QiHGySCAW?ONP{L+Ex5#nD*zSPT%5{~LfvmAgC<jv0s{j>
zkt_oPLoq0N6%>jzK}8cUin&F43=9mVAT^-IR|CTb4F)E*29Y9dP}v0121*eij6GE}
zGBPl5a&m&IuXsfD1*#dqrMIT06&EKbCucIqJIKYT9=KH3&^6Qqw^j7GxIkqjJd!{h
zPz`IP5CST~K}`f`-LH^bba>_Am8qcEEl4aX$pp0@iXrh>3^oK5{#FV(iQvi%VlE<b
zK?Z{Z8aaN|9YdVm)pZoqL)@JmLA1Mbh@*Nf*fg+WX#B!8L#qG<TZQDJ)WnihNHl>(
zQR`y34p4}I<r7OaA=NKf3LINt7AVbus$ozBg8~w&7+eLz#9(gLgt!c@*{?{KfdLfZ
z!k`Ej0YxS#=3o&nh~da00|o|$Zjd@?q$@G7ayGbNMmnej02c)xz+Kl8P$B>&1_lPS
zPG&6=a%ZCkt?^pJkPX&V6q3TY0OT|<51B||YGFX>axtPd-CfY^LzS&%u3=gL?kXai
z31XvnIvE*=ap#7R8m3?dP39_DF3$ASywsvpP;<FBwFHz9q2*mM7w0X8WTXIL06D;z
zfq~((9RmY{Hv=QXbcPy+SczIj<Y3E!>quch^+XuMbVf#o9!YR-o#_?}C{g-pGTmYW
z<(vH6TWrZ0`I*V7noPHt^bCrmK(Pl3N@y(q;<N#|w4$KMu1W#KDoQN^w+V~&Y;y9G
z6LX5~^x!H$g9F7n3=9k}7+x?mFkBF@ydYq?!f>kC6xkVN7X{U>2&zHEkV$ar&}1zF
zC7B{nU-}kHR(@t)5vXNR1R8tLWGMory<3dgw^%_*wir_OfPw{-#Nnk6C_JHVD*|<W
zmx8>K$pC7aeC1%^;_Vde5p58?%g)td+E~?6HNml|uA%M*CwISimpH^hTUj?GZsgd)
zaY4ZHqJZTU0n3Y=mRC3}8&qyEvA1hBX?D0Y>bK}O=znEp;NV6!<pUc7CtrgM*efV?
z9;oLHPU!!bK;s|j47E(@47JSZ47DsNjJ2%DF_^+s!;r$fjG2L9HAn|2m4SM|b8Fd9
zk``MH>oO(=hSi`r0;{QIM;Q%auVF)#k6~h9sO6~TtYKOJHy5lCO4P8SrWZzr8fNS&
zk^7@r@DZ3A4pjX(RH2PFRDrTO%D4?9Lk$Z__Oheei^^kU=$Ti-3-uxc149-lCcxYp
zrW)oHmNl%XA<f8uQ#DHp8v)hu@r@KTH=&sdO5#vAfX3Nsn9z%#6wWnVc-;lc6krol
zxY7NK;(ky*f~e!ctBwb(2ox7+V|ys3!Naizt@uRqA1Jqi4MZKU1C2)pGidVqy%c3&
zV0f9rz`&6Cf|-G#iXT!7CzhoqD}aX(7;mxWBqpWi++uObOfCUudz7LOl;}W}(PvO0
zGo2wFR1gZH7KG?doXFH86wCmr$rx`jgBo&7MdqLe3u6Ux`{fsx4X9<1oS$1@SEU4^
z5{pvfA>#!|MIBttK~U);2QFPMh#5f80>!DtGYlt|O(}!$FNhg{i-ecpdX(`NM^S!B
zB4{`T<a6+lhDLsJNoq;4W~nm+1H<9YvizJ<kUXe9AT(N`01q|=Pz6$|kdm2PqR9^_
zH$mkexHc~02YHpbxU%>bXL@Q$ab{I&e%dYOf}E0DECo6FCAZirAR*3HQIeUQU3`nJ
z62fOK$t=l9y~UQ3nhxqUvll0prKV-3-(pS9$uCaT<hsS07oVG0af>f4GdUwOwJ5$g
zzo;ZL^%h57d|6^nX=?E;E^u2T9%SV$PLSik%pxmTW1<KYlSN7(E~rIW3`*Oe0v&=O
z#X28qL=;6ZFfeQYg?u6-s9e7R>SEsD6KIgS!OPzud4rX`K@il@WS$T@!{s8E;uS7M
zP&Y;gOf&@E<&~OYI3w{Qufi2xg$9kgLdpv~Rs>!Y(!V04->BQ5-eK~9iK|_|Nq>Uk
zMJACeOd=PUL~bzgTxSx##3Ve`d5Z4>^@}1}S46bd8n3b4A#zdM?uxeEMG?D;O!ilp
z>@P6c-(cdt&Lnh+NocC^6x#(77lpO12y0zr(!Ro^eF2P~GP1NtbZAWQx}au$fzje3
zqs0|QiwlevccJ2*3&Jii>Re>hxx%P(fl&t}EY;!MDBmLAAP?bqK$6yiiVI=}7sU*&
zh#BlKy1;06k<so7qum8YJFuz?JhB%V<*qQwU0{?02}oYx4!Fn|c!e?W0%IUZK&nxu
zMW#Up#FXxcyT~YWg;C}LBbYDQDBU960EXbitI1RZsyB*2^{poVEy3Kx5>Ud)$xPBK
zs06WYu|en}FHllr%`43<sJz9LS8$7^Br`X)$O9C?rXT_|UI6YFKvE_+je;Wd7JCXP
z8x)t^VlPQ8F3HVL0cTgR?cikai^C>2KczG$)vhRkfq?<k)G6M=z`*c<nURt427~+s
zRCI$u=mHGgVBl^5!y61-4PbbKfwut+KX7F*GV*?4z#zkzMHtyWFu(~NK}OCG3~<7P
qgOTq81Dp^O0~rD*%orH?8~8x*1_OTsdkg<X2Ei)~f)`*2>?;6)Lmzqo

literal 0
HcmV?d00001

diff --git a/tp_2_miso_mphf.py b/tp_2_miso_mphf.py
index 22b9806..f69368b 100644
--- a/tp_2_miso_mphf.py
+++ b/tp_2_miso_mphf.py
@@ -27,7 +27,7 @@ def construction_mphf(set_kmer, n, gamma=2, nb_niveaux=3):
 	>>> mphf = construction_mphf(set_kmer, n)
 	>>> len(mphf) == n
 	True
-	>>> all(0 <= mphf[i] < n for i in range(n))
+	>>> all(0 <= mphf[i][1] < n for i in range(n))
 	True
 	>>> len(mphf) == n
 	True
@@ -56,7 +56,7 @@ def construction_mphf(set_kmer, n, gamma=2, nb_niveaux=3):
 				# si le tableau principal est déjà rempli à l'adresse:
 				if tableau_principal[adresse] != -1:
 					# mettre le kmer dans collision()
-					collision.add(h)
+					collision.add(kmer)
 					#sinon, écrire le hash à l'adresse dans le tableau principal
 				else : 
 					tableau_principal[adresse] = h
@@ -89,14 +89,14 @@ def construction_mphf(set_kmer, n, gamma=2, nb_niveaux=3):
 		# hacher le kmer
 		h2 = abs(hash(kmer))
 		# si le hash est dans le grand_tableau
-		if h in grand_tableau:
+		if h2 in grand_tableau:
 			# récupérer son index
-			index = grand_tableau[h]
+			index = grand_tableau.index(h2)
 			# récupérer son rang (utiliser la fonction count())
 			c = grand_tableau[0:index].count(-1)
 			rang = index - c
 			# ajouter à la mphf [h, rang]
-			mphf.append((h, rang))
+			mphf.append((h2, rang))
 			# mettre à jour max_rang
 			max_rang += 1
 
@@ -124,13 +124,13 @@ def get_hash_mphf(mphf, kmer):
 	int: Hash du k-mer.
 
 	Examples:
-	>>> set_kmer = {str(i) for i in range(10)}
-	>>> n = 10
-	>>> mphf = construction_mphf(set_kmer, n)
-	>>> kmer = "5"
-	>>> hash_mphf = get_hash_mphf(mphf, kmer)
-	>>> 0 <= hash_mphf < n
-	True
+	#>>> set_kmer = {str(i) for i in range(10)}
+	#>>> n = 10
+	#>>> mphf = construction_mphf(set_kmer, n)
+	#>>> kmer = "5"
+	#>>> hash_mphf = get_hash_mphf(mphf, kmer)
+	#>>> 0 <= hash_mphf < n
+	#True
 	"""
 	pass # TODO modifier
 
@@ -143,13 +143,13 @@ def create_hash_table(set_kmer, n):
     mphf: la mphf
 
     Examples:
-    >>> set_kmer = {'ATCG', 'TGCA', 'GCTA'}
-    >>> n = 10
-    >>> tableau = create_hash_table(set_kmer, n)
-    >>> len(tableau) == n
-    True
-    >>> all(kmer in tableau for kmer in set_kmer)
-    True
+    #>>> set_kmer = {'ATCG', 'TGCA', 'GCTA'}
+    #>>> n = 10
+    #>>> tableau = create_hash_table(set_kmer, n)
+    #>>> len(tableau) == n
+    #True
+    #>>> all(kmer in tableau for kmer in set_kmer)
+    #True
     """
     pass # TODO modifier
     # créer la mphf pour les kmers
-- 
GitLab