Ë
    ëmxiF*  ã                   ó~   — d dl mZmZ ddlmZmZmZ ddlmZ ddl	m
Z
 ddlmZ ddlZddlZddlmZ  G d	„ d
e«      Zy)é   )ÚTestBaseÚFileCreatoré    )ÚWindowCursorÚSlidingWindowMapManagerÚStaticWindowMapManager)Úalign_to_mmap)Úrandint)ÚtimeN)Úcopyc                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestMManc                 óh  — t        | j                  d«      5 }t        «       }t        |«      }|j	                  «       rJ ‚|j                  «       rJ ‚|j                  «       dk(  sJ ‚|j                  |j                  «      }|j	                  «       rJ ‚|j                  «       sJ ‚|j                  «       |j                  k(  sJ ‚|j                  «       |j                  k(  sJ ‚	 d d d «       t        «      }|j	                  «       s|j                  «       sJ ‚j                  «       rJ ‚|j                  |«       |j	                  «       s|j                  «       sJ ‚|j                  «        |j                  «        |j                  «        t        «      j                  «        y # 1 sw Y   ŒÅxY w)NÚcursor_testr   )r   Úk_window_test_sizer   r   Úis_validÚis_associatedÚsizeÚmake_cursorÚpathÚ	file_sizer   ÚassignÚunuse_regionÚ_destroy)ÚselfÚfcÚmanÚciÚcvÚcios         úK/home/htdocs/ttos/venv/lib/python3.12/site-packages/smmap/test/test_mman.pyÚtest_cursorzTestMMan.test_cursor   sa  € Ü˜×0Ñ0°-Ó@ð 	(ÀBÜ)Ó+ˆCÜ˜cÓ"ˆBØ—{‘{”}Ð$Ð$Ø×'Ñ'Ô)Ð)Ð)Ø—7‘7“9 ’>Ð!�>à—‘ §¡Ó)ˆBØ—{‘{”}Ð$Ð$Ø×#Ñ#Ô%Ð%Ð%Ø—<‘<“> R§W¡WÒ,Ð,Ð,Ø—7‘7“9 §¡Ò'Ð'Ñ'÷	(ô �2‹hˆØ—<‘<”> c×&7Ñ&7Ô&9Ð9Ð9ð ×#Ñ#Ô%Ð%Ð%Ø
�	‰	�"ŒØ—;‘;”= R×%5Ñ%5Ô%7Ð7Ð7ð 	�‰ÔØ
�‰Ôð 	�‰ŒÜ�SÓ×"Ñ"Õ$÷9	(ð 	(ús   —CF(Æ(F1c           	      ó6  — t        «       }t        «       }||fD �]I  }|j                  «       dk(  sJ ‚|j                  «       dk(  sJ ‚d}t	        |t        «      rd}|j                  «       |kD  sJ ‚|j                  «       dk(  sJ ‚|j                  «       dkD  sJ ‚|j                  d«       |j                  d«       |j                  t        j                  «      dk(  sJ ‚t        | j                  d«      5 }t        j                  |j                  t        j                   «      }	 |j                  |fD ]½  }|j#                  |«      }|j%                  «       |u sJ ‚|j'                  dd«      j)                  «       sJ ‚|j+                  «       dk(  sJ ‚|j-                  «       dk(  sJ ‚t        |j                  d«      5 }	|j/                  «       d d  |	j1                  d«      dd  k(  sJ ‚	 d d d «       Œ¿ t	        t2        «      r!| j5                  t6        j                  «       n | j5                  t6        j8                  «       t        j:                  |«       	 d d d «       �ŒL y # 1 sw Y   �Œ=xY w# t        j:                  |«       w xY w# 1 sw Y   �ŒxY w)Nr   éÿÿÿÿé
   Úmanager_testÚrbé   )r   r   Únum_file_handlesÚnum_open_filesÚ
isinstanceÚwindow_sizeÚmapped_memory_sizeÚmax_mapped_memory_sizeÚ_collect_lru_regionÚsysÚmaxsizer   r   ÚosÚopenr   ÚO_RDONLYr   Ú
path_or_fdÚ
use_regionr   Ú	ofs_beginr   ÚbufferÚreadÚintÚassertRaisesÚ
ValueErrorÚfdÚclose)
r   Ú	slide_manÚ
static_manr   Úwinsize_cmp_valr   r=   ÚitemÚcÚfps
             r!   Útest_memory_managerzTestMMan.test_memory_manager2   sW  € Ü+Ó-ˆ	Ü+Ó-ˆ
à 	Ð*ó '	!ˆCØ×'Ñ'Ó)¨QÒ.Ð.Ð.Ø×%Ñ%Ó'¨1Ò,Ð,Ð,ØˆOÜ˜#Ô5Ô6Ø"$�à—?‘?Ó$ Ò6Ð6Ð6Ø×)Ñ)Ó+¨qÒ0Ð0Ð0Ø×-Ñ-Ó/°!Ò3Ð3Ð3ð ×#Ñ# AÔ&à×#Ñ# BÔ'ð ×*Ñ*¬3¯;©;Ó7¸1Ò<Ð<Ð<ô ˜T×4Ñ4°nÓEð !ÈÜ—W‘W˜RŸW™W¤b§k¡kÓ2�ð!Ø!#§¡¨" ò E˜ØŸO™O¨DÓ1˜Ø Ÿ|™|›~°Ñ5Ð5Ð5Ø Ÿ|™|¨B°Ó3×<Ñ<Ô>Ð>Ð>Ø Ÿ{™{›}°Ò2Ð2Ð2Ø Ÿv™v›x¨2š~Ð-˜~Ü! "§'¡'¨4Ó0ð E°BØ#$§8¡8£:©a =°B·G±G¸B³KÀÀÐ4DÒ#DÐDÑ#D÷Eð EðEô " $¬Ô,Ø×)Ñ)¬*°a·f±fÕ=à×)Ñ)¬*°a·d±dÔ;ô —H‘H˜R•L÷'!ñ !ñ)'	!÷:Eñ Eûô —H‘H˜R•Lú÷'!ñ !ús>   Ã6/JÄ&BI4Æ>+I'	Ç*AI4ÉJÉ'I1É,I4É4JÊJÊJ	c                 óJ  — t        | j                  d«      5 }t        |j                  d«      5 }|j	                  «       }d d d «       t        j                  |j                  t
        j                  «      }	 d}t        d|j                  dz  |fft        |j                  dz  |j                  dz  |fffD �]  \  }}|j                  |fD �]  }t        «      |j                  k(  sJ ‚ ||d   |d   |d   ¬	«      }	|	j                  |«      }
|	j                  «       dk(  sJ ‚|	j                  «       dk(  sJ ‚d
}|	j                  «       dz  }|
j                  ||«      j!                  «       sJ ‚|
j#                  «       }|j%                  «       dk(  sJ ‚|	j                  «       dk(  sJ ‚|	j'                  «       dk(  sJ ‚|	j                  «       |j                  «       k(  sJ ‚|
j)                  «       |k(  sJ ‚|j)                  «       dk(  sJ ‚|	j                  «       r-|j                  «       t+        |	j                  «       d«      k(  s!J ‚|j                  «       |j                  k(  sJ ‚|
j-                  «       d d  ||||xs |
j                  «       z    k(  sJ ‚|xs |j                  dz
  }|
j                  d|«      j!                  «       sJ ‚|
j#                  «       |k(  sJ ‚|	j'                  «       dk(  sJ ‚|
j                  «       |k(  sJ ‚|
j)                  «       dk(  sJ ‚|
j-                  «       d d  |d | k(  sJ ‚d}|j                  |xs |
j                  «       z
  |z   }|
j                  ||«      j!                  «       sJ ‚|	j                  «       rS|	j'                  «       dk(  sJ ‚|
j                  «       |k  sJ ‚|
j#                  «       |usJ ‚|j%                  «       dk(  s!J ‚|
j                  «       |j                  k  sJ ‚|
j#                  «       }|j%                  «       dk(  sJ ‚|j)                  «       |
j)                  «       k  sJ ‚|j/                  «       |j                  k  sJ ‚|
j-                  «       d d  ||||xs |
j                  «       z    k(  sJ ‚|
j1                  «        |
j!                  «       rJ ‚|	j                  «       r|	j'                  «       dk(  sJ ‚d
}|}d}t3        «       }|
j4                  }|	j7                  «       }|	j9                  «       }|	j                  }|	j&                  }|r×|dz  }t;        d|j                  dz
  «      }|	j                  «       r| |«       k\  sJ ‚| |«       k\  sJ ‚|
j                  ||xs |
j                  «       «      j!                  «       sJ ‚|
j                  «       }|
j-                  «       d d  ||||z    k(  sJ ‚||z  } ||«      sJ ‚ |||z   dz
  «      sJ ‚ |||z   «      rJ ‚|rŒ×t=        t3        «       |z
  d«      }t?        d«      }tA        d|||z  |tC        |«      |||z  |z  fz  tD        jF                  ¬«       |
j                  |j                  |«      j!                  «       rJ ‚|	j'                  «       sJ ‚|	jI                  «       sJ ‚|	j'                  «       dk(  r�ŒJ ‚ �Œ 	 t        jJ                  |«       	 d d d «       y # 1 sw Y   �ŒµxY w# t        jJ                  |«       w xY w# 1 sw Y   y xY w)NÚmanager_operation_testr'   é   r   é   éd   r   é   )r,   Úmax_memory_sizeÚmax_open_handlesiˆ  Tr%   i   gü©ñÒMbP?i@B z`%s: Read %i mb of memory with %i random on cursor initialized with %s accesses in %fs (%f mb/s)
)Úfile)&r   r   r3   r   r9   r2   r4   r   r   r   Úlenr   r*   r-   r,   r6   r   ÚregionÚclient_countr)   r7   r	   r8   Úofs_endr   r   Úincludes_ofsr.   Úmax_file_handlesr
   ÚmaxÚfloatÚprintÚtyper0   ÚstderrÚcollectr>   )r   r   rD   Údatar=   Úmax_num_handlesÚmtypeÚargsrB   r   rC   Úbase_offsetr   ÚrrÚnsizeÚ	overshootÚmax_random_accessesÚnum_random_accessesÚmemory_readÚstrS   r.   rT   r-   r)   ÚcsizeÚelapsedÚmbs                               r!   Útest_memman_operationzTestMMan.test_memman_operation`   sø  € ä˜×0Ñ0Ð2JÓKð ~	ÈrÜ�b—g‘g˜tÓ$ð !¨Ø—w‘w“y�÷!ä—‘˜Ÿ™¤"§+¡+Ó.ˆBðzØ"$�ä%;¸aÀÇÁÈAÁÈÐ=_Ð$`Ü%<¸r¿w¹wÈ#¹~ÈrÏwÉwÐZ[É|Ð]lÐ>mÐ$nð$qó s;‘K�E˜4à!#§¡¨" ó q;˜Ü" 4›y¨B¯G©GÒ3Ð3Ð3ñ $°°Q±ÈÈaÉÐcgÐhiÑcjÔk˜ØŸO™O¨DÓ1˜ð  #×1Ñ1Ó3°qÒ8Ð8Ð8Ø"×5Ñ5Ó7¸1Ò<Ð<Ð<à&*˜à"Ÿ™Ó0°AÑ5˜Ø Ÿ|™|¨K¸Ó>×GÑGÔIÐIÐIØŸX™X›Z˜Ø!Ÿ™Ó0°AÒ5Ð5Ð5à"×1Ñ1Ó3°qÒ8Ð8Ð8Ø"×3Ñ3Ó5¸Ò:Ð:Ð:Ø"×5Ñ5Ó7¸2¿7¹7»9ÒDÐDÐDð  !Ÿ{™{›}°Ò;Ð;Ð;Ø!Ÿ|™|›~°Ò2Ð2Ð2ØŸ?™?Ô,à#%§7¡7£9´¸c¿o¹oÓ>OÐQUÓ0VÒ#VÐVÐ#Và#%§7¡7£9°·±Ò#7Ð7Ð#7ð  !Ÿx™x›z©!˜}°°[ÀÐPTÒP`ÐXY×X^ÑX^ÓX`ÑAaÐ0bÒbÐbÐbð "&¢¨¯©°BÑ 6˜Ø Ÿ|™|¨A¨uÓ5×>Ñ>Ô@Ð@Ð@Ø Ÿx™x›z¨RÒ/Ð/Ð/Ø"×3Ñ3Ó5¸Ò:Ð:Ð:Ø Ÿv™v›x¨5Ò0Ð0Ð0Ø Ÿ{™{›}°Ò1Ð1Ð1Ø Ÿx™x›z©!˜}°°V°e°Ò<Ð<Ð<ð %)˜	Ø&(§g¡g°Ò1A¸¿¹»Ñ&BÀYÑ&N˜Ø Ÿ|™|¨K¸Ó>×GÑGÔIÐIÐIØŸ?™?Ô,Ø#&×#7Ñ#7Ó#9¸QÒ#>Ð>Ð#>Ø#$§6¡6£8¨d¢?Ð2 ?Ø#$§8¡8£:°RÑ#7Ð7Ð#7Ø#%§?¡?Ó#4¸Ò#9Ð9Ð#9à#$§6¡6£8¨b¯g©gÒ#5Ð5Ð#5àŸX™X›Z˜Ø!Ÿ™Ó0°AÒ5Ð5Ð5Ø!Ÿ|™|›~°·±³Ò=Ð=Ð=Ø!Ÿz™z›|¨r¯w©wÒ6Ð6Ð6Ø Ÿx™x›z©!˜}°°[ÀÐPTÒP`ÐXY×X^ÑX^ÓX`ÑAaÐ0bÒbÐbÐbð Ÿ™Ô(Ø#$§:¡:¤<Ð/Ð/ØŸ?™?Ô,ð $'×#7Ñ#7Ó#9¸QÒ#>Ð>Ð#>ð
 /3Ð+Ø.AÐ+Ø&'˜Ü!›V˜ð ()§~¡~˜Ø14×1KÑ1KÓ1MÐ.Ø+.×+?Ñ+?Ó+AÐ(Ø-0×-CÑ-CÐ*Ø+.×+?Ñ+?Ð(Ù1Ø/°1Ñ4Ð/Ü*1°!°R·W±W¸q±[Ó*A˜Kð  #Ÿ™Ô0Ø'=ÑASÓAUÒ'UÐ UÐ'Uà#3Ñ7GÓ7IÒ#IÐIÐ#IØ#$§<¡<°¸dÒ>NÀaÇfÁfÃhÓ#P×#YÑ#YÔ#[Ð[Ð#[Ø$%§F¡F£H˜EØ#$§8¡8£:©a =°D¸À[ÐSXÑEXÐ4YÒ#YÐYÐ#YØ'¨5Ñ0˜Ká#/°Ô#<Ð<Ð#<Ù#/°¸eÑ0CÀaÑ0GÔ#HÐHÐ#HÙ'3°KÀ%Ñ4GÔ'HÐHÐ#Hò! 2ô$ #&¤d£f¨r¡k°5Ó"9˜Ü" ;Ó/˜Üð  BØ!&¨°bÑ(8Ð:MÌtÐTXËzÐ[bÐepÐsuÑeuð  zAñ  eAð  !BñBä#&§:¡:õ/ð
 $%§<¡<°·±¸Ó#>×#GÑ#GÔ#IÐIÐIð  #×3Ñ3Ô5Ð5Ð5Ø"Ÿ{™{œ}Ð,˜}Ø"×3Ñ3Ó5¸Ô:Ð:Ð:òcq;ñs;ôn —‘˜•÷}~	ð ~	÷!ñ !ûôz —‘˜•ú÷}~	ð ~	úsG   —\®[2¿6\Á6V[?ØB;[?Û[?Û\Û2[<	Û7\Û?\Ü\Ü\"N)Ú__name__Ú
__module__Ú__qualname__r"   rE   rj   © ó    r!   r   r      s   „ ò%ò>+!ó\@ro   r   )Úlibr   r   Ú
smmap.mmanr   r   r   Ú
smmap.utilr	   Úrandomr
   r   r2   r0   r   r   rn   ro   r!   ú<module>rt      s4   ðß &÷ñ õ
 %å Ý Û 	Û 
Ý ôOˆxõ Oro   