ó
    ±“,j$  ã                   ó¤   • S r SSKJrJrJr  SSKJr  SSKJrJ	r	J
r
  SSKJrJr  SSKJr  SSKJr  SSKJr  SS	KrSS	KrSS	KrS
 r " S S\5      rg	)z/Test everything about packs reading and writingé    )ÚTestBaseÚwith_rw_directoryÚfixture_path)ÚDeltaApplyReader)Ú
PackEntityÚPackIndexFileÚPackFile)ÚOInfoÚOStream)Údelta_types)ÚUnsupportedOperation)Ú
to_bin_shaNc                 ó˜   • [        [        R                  R                  [        R                  R	                  U 5      5      S   SS  5      $ )Nr   é   )r   ÚosÚpathÚsplitextÚbasename)Úfilenames    Ú¢C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\gitdb/test/test_pack.pyÚbin_sha_from_filenamer   $   s7   € Ü”b—g‘g×&Ñ&¤r§w¡w×'7Ñ'7¸Ó'AÓBÀ1ÑEÀaÀbÐIÓJÐJó    c                   óØ   • \ rS rSr\" S5      SS4r\" S5      SS4r\" S5      SS	4r\" S
5      S\S   4r\" S5      S\S   4r	\" S5      S\S   4r
S rS rS rS r\S 5       rS rSrg)ÚTestPacké)   z7packs/pack-c0438c19fb16422b6bbcce24387b3264416d485b.idxé   éC   z7packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idxé   é   z7packs/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.idxé*   z8packs/pack-c0438c19fb16422b6bbcce24387b3264416d485b.packz8packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.packz8packs/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.packc                 ó@  • UR                  5       UR                  5       :w  d   e[        UR                  5       5      S:X  d   e[        UR                  5       5      S:X  d   eUR                  5       U:X  d   eUR	                  5       U:X  d   e[        UR                  5       5      U:X  d   e[        UR	                  5       5       H²  nUR                  U5      nXAR                  U5      :X  d   eUR                  U5      n[        U5      S:X  d   eUS   UR                  U5      :X  d   eUS   U:X  d   eUS   UR                  U5      :X  d   eS H!  nUR                  US U US-  5      U:X  a  M!   e   M´     U R                  [        UR                  SS5        g )Né   é   r   r   r   )é   é   é   é   r"   Ú )Úpackfile_checksumÚindexfile_checksumÚlenÚversionÚsizeÚoffsetsÚrangeÚshaÚsha_to_indexÚentryÚoffsetÚcrcÚpartial_sha_to_indexÚassertRaisesÚ
ValueError)ÚselfÚindexr,   r-   Úoidxr0   r2   Úls           r   Ú_assert_index_fileÚTestPack._assert_index_file3   s†  € Ø×&Ñ&Ó(¨E×,DÑ,DÓ,FÓFÐFÐFÜ�5×*Ñ*Ó,Ó-°Ó3Ð3Ð3Ü�5×+Ñ+Ó-Ó.°"Ó4Ð4Ð4Ø�}‰}‹ 'Ó)Ð)Ð)Ø�z‰z‹|˜tÓ#Ð#Ð#Ü�5—=‘=“?Ó# tÓ+Ð+Ð+ô ˜%Ÿ*™*›,Ö'ˆDØ—)‘)˜D“/ˆCØ×-Ñ-¨cÓ2Ó2Ð2Ð2à—K‘K Ó%ˆEÜ�u“: “?Ð"�?à˜‘8˜uŸ|™|¨DÓ1Ó1Ð1Ð1Ø˜‘8˜s“?Ð"�?Ø˜‘8˜uŸy™y¨›Ó.Ð.Ð.ó (�Ø×1Ñ1°#°b°q°'¸1¸q¹5ÓAÀTÕIÐIÐIó (ñ (ð  	×Ñœ* e×&@Ñ&@À$ÈÕJr   c                 óp  • UR                  5       S:X  d   eUR                  5       U:X  d   e[        UR                  5       5      S:X  d   eSnUR	                  5        GH;  nUS-  nUR                  UR                  5      nUR                  UR                  5      nUR                  UR                  :X  d   eUR                  UR                  :X  d   e[        US5      (       d   eUR                  5       UR                  5       :X  d   eUR                  UR                  5      nU(       d   e [        R                  " U5      n	U	R                  5       n
[        U
5      U	R                  :X  d   eU	R                  S5        U	R                  5       U
:X  a  GM<   e   XC:X  d   eg ! [         a     GMV  f = f)Nr   r"   r   r   Úread)r,   r-   r+   ÚchecksumÚstream_iterÚinfoÚpack_offsetÚstreamÚtype_idÚhasattrr?   Úcollect_streamsr   Únewr7   Úseek)r8   Úpackr,   r-   Únum_objÚobjrB   rD   ÚstreamsÚdstreamÚdatas              r   Ú_assert_pack_fileÚTestPack._assert_pack_fileN   s~  € Ø�|‰|‹~ Ó"Ð"Ð"Ø�y‰y‹{˜dÓ"Ð"Ð"Ü�4—=‘=“?Ó# rÓ)Ð)Ð)àˆØ×#Ñ#×%ˆCØ�q‰LˆGØ—9‘9˜SŸ_™_Ó-ˆDØ—[‘[ §¡Ó1ˆFà×#Ñ# v×'9Ñ'9Ó9Ð9Ð9Ø—<‘< 6§>¡>Ó1Ð1Ð1Ü˜6 6×*Ñ*Ð*Ð*ð —8‘8“: §¡£Ó.Ð.Ð.à×*Ñ*¨3¯?©?Ó;ˆGÞˆN�7ðÜ*×.Ò.¨wÓ7�ð —<‘<“>ˆDÜ�t“9 §¡Ó,Ð,Ð,ð �L‰L˜ŒOØ—<‘<“> TÖ)Ð)Ð)ñ? &ðL ‹Ð‰øô) ó ó ð	ús   Ä1F&Æ&
F5Æ4F5c                 ó‚   • U R                   U R                  4 H#  u  pn[        U5      nU R                  XBU5        M%     g ©N)Úpackindexfile_v1Úpackindexfile_v2r   r<   )r8   Ú	indexfiler,   r-   r9   s        r   Útest_pack_indexÚTestPack.test_pack_index|   s=   € à)-×)>Ñ)>À×@UÑ@UÓ(VÑ$ˆI Ü! )Ó,ˆEØ×#Ñ# E°DÖ9ò )Wr   c                 ó˜   • U R                   U R                  U R                  4 H#  u  pn[        U5      nU R	                  XBU5        M%     g rS   )Úpackfile_v2_3_asciiÚpackfile_v2_1Úpackfile_v2_2r	   rP   )r8   Úpackfiler,   r-   rJ   s        r   Ú	test_packÚTestPack.test_packƒ   sF   € à(,×(@Ñ(@À$×BTÑBTÐVZ×VhÑVhÓ'iÑ#ˆH˜tÜ˜HÓ%ˆDØ×"Ñ" 4°$Ö7ò (jr   c           	      ó  ^• [        5       mU R                  U R                  4U R                  U R                  4U R
                  U R                  44 GH9  u  p#Uu  pEnUu  pun[        U5      nUR                  5       R                  5       U:X  d   eUR                  5       R                  5       U:X  d   eTR                  UR                  5       5        Sn	[        UR                  5       UR                  5       5       GH�  u  p«U	S-  n	U
R                  UR                  :X  d   e[!        U
R                  5      S:X  d   eU
R"                  UR"                  :X  d   eU
R$                  UR$                  :X  d   eU
R"                  [&        ;  d   e[!        UR)                  U
R                  5      5      (       d   eUR+                  U
R                  5      n[-        U[.        5      (       d   eUR                  c   eUR1                  U
R                  5      n[-        U[2        5      (       d   eUR                  c   e UR5                  U
R                  SS9(       d   e UR5                  U
R                  SS9(       a  GM‚   e   X–:X  a  GM:   e   [8        R:                  " SSU5      n[8        R:                  " SS	U5      n[8        R:                  " SS
U5      nSnU4S jn[        Xï4US 4[!        T5      S 45       GHÒ  u  nnnS nU(       a  [=        US5      nUR>                  nUS:”  a  U" 5         US-  n[=        US5       n[        R@                  " TUR>                  UUS9u  nnS S S 5        [B        R                  RE                  U5      S:”  d   e[G        U5      nUR%                  5       [!        T5      :X  d   eURI                  5       [F        RJ                  :X  d   eURM                  5       W:X  d   eURO                  5         Uc  GM  WRO                  5         [B        R                  RE                  U5      S:”  d   e[Q        U5      nURI                  5       [P        RR                  :X  d   eURU                  5       U:X  d   eURW                  5       W:X  d   eUR%                  5       [!        T5      :X  d   eURO                  5         GMÕ     U" 5         [        RX                  " TU5      nSn	UR                  5        H=  n
U	S-  n	[[        S5       H&  nUR5                  U
R                  U5      (       a  M&   e   M?     U	[!        T5      :X  d   eURO                  5         g ! [6         a     GNf = f! , (       d  f       GN= f)Nr   r   r"   T)Úuse_crcFÚ Úpack1Úpack2r9   c                  óN   >• T H  n U R                   R                  S5        M      g )Nr   )rD   rI   )rL   Ú	pack_objss    €r   Úrewind_streamsÚ1TestPack.test_pack_entity.<locals>.rewind_streams¾   s   ø€ Û �Ø—
‘
—‘ Ö"ò !r   Úwb)Úobject_countéd   r   ).Úlistr[   rT   r\   rU   rZ   Úpackindexfile_v2_3_asciir   rJ   r   r9   ÚextendrA   ÚzipÚ	info_iterÚbinshar+   rE   r-   r   rG   rB   Ú
isinstancer
   rD   r   Úis_valid_streamr   ÚtempfileÚmktempÚopenÚwriteÚ
write_packr   Úgetsizer	   r,   Úpack_version_defaultr@   Úcloser   Úindex_version_defaultr)   r*   Úcreater/   )r8   Úrw_dirÚpackinfoÚ	indexinfor]   r,   r-   rV   ÚentityÚcountrB   rD   ÚoinfoÚostreamÚ
pack_path1Ú
pack_path2Ú
index_pathÚ	iterationrg   ÚppathÚipathrK   ÚiwriteÚifileÚpfileÚpack_shaÚ	index_shaÚpfÚidxra   rf   s                                 @r   Útest_pack_entityÚTestPack.test_pack_entityŠ   sÝ  ø€ ä“Fˆ	Ø%)×%7Ñ%7¸×9NÑ9NÐ$OØ%)×%7Ñ%7¸×9NÑ9NÐ$OØ%)×%=Ñ%=¸t×?\Ñ?\Ð$]ô$_ÑˆHð '/Ñ#ˆH˜tØ'0Ñ$ˆI Ü Ó)ˆFØ—;‘;“=×%Ñ%Ó'¨8Ó3Ð3Ð3Ø—<‘<“>×&Ñ&Ó(¨IÓ5Ð5Ð5Ø×Ñ˜V×/Ñ/Ó1Ô2àˆEÜ # F×$4Ñ$4Ó$6¸×8JÑ8JÓ8L× M‘�Ø˜‘
�Ø—{‘{ f§m¡mÓ3Ð3Ð3Ü˜4Ÿ;™;Ó'¨2Ó-Ð-Ð-Ø—|‘| v§~¡~Ó5Ð5Ð5Ø—y‘y F§K¡KÓ/Ð/Ð/ð  Ÿ<™<¬;Ó6Ð6Ð6ô ˜6×1Ñ1°$·+±+Ó>×?Ñ?Ð?Ð?ØŸ™ D§K¡KÓ0�Ü! %¬×/Ñ/Ð/Ð/Ø—|‘|Ñ/Ð/Ð/Ø Ÿ-™-¨¯©Ó4�Ü! '¬7×3Ñ3Ð3Ð3Ø—~‘~Ñ1Ð1Ð1ðØ!×1Ñ1°$·+±+ÀtÐ1ÖLÐLÑLð ×-Ñ-¨d¯k©kÀ5Ð-×IÑIÐIÐIñ3 !Nð6 –=Ð �=ñM$_ôX —_’_ R¨°&Ó9ˆ
Ü—_’_ R¨°&Ó9ˆ
Ü—_’_ R¨°&Ó9ˆ
Øˆ	õ	#ô &)¨*Ð)AØ*4°dÐ);Ü*-¨i«.¸$Ð)?÷&AÑ!ˆE�5˜'ð ˆFÞÜ˜U DÓ)�ØŸ™�ð ˜1‹}ÙÔ à˜‰NˆIä�e˜TÔ" eÜ&0×&;Ò&;¸IÀuÇ{Á{ÐTZÐipÑ&qÑ#�˜)÷ #ä—7‘7—?‘? 5Ó)¨CÓ/Ð/Ð/ô ˜%“ˆBØ—7‘7“9¤ I£Ó.Ð.Ð.Ø—:‘:“<¤8×#@Ñ#@Ó@Ð@Ð@Ø—;‘;“= HÓ,Ð,Ð,Ø�H‰HŒJð Ô Ø—‘”Ü—w‘w—‘ uÓ-°Ó3Ð3Ð3Ü# EÓ*�Ø—{‘{“}¬×(KÑ(KÓKÐKÐKØ×,Ñ,Ó.°(Ó:Ð:Ð:Ø×-Ñ-Ó/°9Ó<Ð<Ð<Ø—x‘x“z¤S¨£^Ó3Ð3Ð3Ø—	‘	—ñG&AñP 	ÔÜ×"Ò" 9¨fÓ5ˆØˆØ×$Ñ$Ö&ˆDØ�Q‰JˆEÜ  ž8�Ø×-Ñ-¨d¯k©k¸7×CÓCÐCÐCó $ñ 'ð œ˜I›Ó&Ð&Ð&Ø�‰�øôM ,ó Úðú÷F #Ö"ús   È=!U&Í%U7Õ&
U4Õ3U4Õ7
V	c                 ó0   • [         R                  " S5        g )Nznot implemented)ÚpytestÚskip)r8   s    r   Útest_pack_64ÚTestPack.test_pack_64ö   s   € ô 	�ŠÐ%Õ&r   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   rT   rU   rm   r[   r\   rZ   r<   rP   rW   r^   r   r’   r—   Ú__static_attributes__r™   r   r   r   r   )   sÅ   † á$Ð%^Ó_ÐabÐdfÐgÐÙ$Ð%^Ó_ÐabÐdfÐgÐÙ ,Ð-fÓ gÐijÐlnÐoÐÙ!Ð"\Ó]Ð_`ÐbrÐstÑbuÐv€MÙ!Ð"\Ó]Ð_`ÐbrÐstÑbuÐv€MáÐOÓPÐRSÐUmÐnoÑUpðrÐòKò6,ò\:ò8ð ñió ðiõV'r   r   )Ú__doc__Úgitdb.test.libr   r   r   Úgitdb.streamr   Ú
gitdb.packr   r   r	   Ú
gitdb.baser
   r   Ú	gitdb.funr   Ú	gitdb.excr   Ú
gitdb.utilr   r•   r   rt   r   r   r™   r   r   Ú<module>r§      sP   ðñ
 6÷ñ õ *÷ñ ÷õ
 "Ý *Ý !ã ã 	Û òKô
P'ˆxõ P'r   