o
    ÚñhŒ  ã                   @   sT   d dl mZmZ ddlmZmZmZmZmZm	Z	 ddl
Z
ddlZG dd„ deƒZdS )é   )ÚTestBaseÚFileCreatoré    )Ú	MapWindowÚ	MapRegionÚMapRegionListÚALLOCATIONGRANULARITYÚ	is_64_bitÚalign_to_mmapNc                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestMManc                 C   sÆ  t ddƒ}t ddƒ}t ddƒ}t ddƒ}| ¡ dksJ ‚| ¡ dks$J ‚| ¡ dks,J ‚d	}| ||¡ |jdkr>|jdks@J ‚| ||¡ | ||¡ |jdkrV|jdksXJ ‚| ¡ }| ||¡ |j| ¡ kro|| ¡ ksqJ ‚| ||¡ |jdkr|j|ksƒJ ‚| ||¡ |jdkr“|j|ks•J ‚| |tj¡ | ¡ |jkr¨|jdksªJ ‚| ||¡ | ||¡ |j|ks½J ‚| |tj¡ |j| ¡ ksÍJ ‚| ¡  |jdkrß|jt	|jd
ƒksáJ ‚d S )Nr   r   é
   é   i@  é2   é   ir  éd   T)
r   Úofs_endÚextend_left_toÚofsÚsizeÚextend_right_toÚsysÚmaxsizeÚalignr
   )ÚselfÚwlÚwcÚwc2Úwrr   Úpofs_end© r   úH/var/www/vscode/kcb/lib/python3.10/site-packages/smmap/test/test_util.pyÚtest_window   s:   



$zTestMMan.test_windowc           	      C   sv  t | jdƒ}|jd }tddƒ}t|jd|jƒ}t|j||jƒ}t|jd|ƒ}| ¡ dkr5| ¡ |jks7J ‚| ¡ |jks@J ‚| ¡ |krO| ¡ |j| ksQJ ‚| ¡ dkr]| ¡ |ks_J ‚| d¡rq| |jd ¡rq| |¡ssJ ‚| d¡s~| t	j
¡r€J ‚W d   ƒ n1 sŠw   Y  | ¡ dks—J ‚|}| ¡ dks£J dƒ‚t |¡}|j| ¡ kr·| ¡ | ¡ ks¹J ‚d S )	NÚwindow_testr   ih  Fr   r   éÿÿÿÿzno auto-counting)r   Úk_window_test_sizer   r
   r   ÚpathÚ	ofs_beginr   Úincludes_ofsr   r   Úclient_countr   Úfrom_regionr   )	r   ÚfcÚ	half_sizeÚrofsÚrfullÚrhalfofsÚ	rhalfsizeÚrfull2Úwr   r   r    Útest_region>   s$   

"(ñ
&zTestMMan.test_regionc              
   C   s¦   t ddƒD}t |jtj¡}z,|j|fD ]}t|ƒ}t|ƒdks"J ‚| ¡ |ks*J ‚| ¡ |j	ks3J ‚qW t 
|¡ nt 
|¡ w W d   ƒ d S 1 sLw   Y  d S )Nr   Úsample_filer   )r   ÚosÚopenr%   ÚO_RDONLYr   ÚlenÚ
path_or_fdÚ	file_sizer   Úclose)r   r*   ÚfdÚitemÚmlr   r   r    Útest_region_listY   s   û"özTestMMan.test_region_listc                 C   s8   t tƒ tƒsJ ‚tddƒdksJ ‚tddƒtksJ ‚d S )Nr   Fr   T)Ú
isinstancer	   Úboolr
   r   )r   r   r   r    Ú	test_utilf   s   zTestMMan.test_utilN)Ú__name__Ú
__module__Ú__qualname__r!   r2   r>   rA   r   r   r   r    r      s
    ,r   )Úlibr   r   Ú
smmap.utilr   r   r   r   r	   r
   r4   r   r   r   r   r   r    Ú<module>   s
     	