a
     þdŒ  ã                   @   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s8J ‚| ¡ dksHJ ‚| ¡ dksXJ ‚d	}| ||¡ |jdkr||jdks€J ‚| ||¡ | ||¡ |jdkr¬|jdks°J ‚| ¡ }| ||¡ |j| ¡ krÞ|| ¡ ksâJ ‚| ||¡ |jdkr|j|ks
J ‚| ||¡ |jdkr.|j|ks2J ‚| |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_endZextend_left_toÚofsÚsizeZextend_right_toÚsysÚmaxsizeZalignr
   )ÚselfZwlZwcZwc2Úwrr   Zpofs_end© r   ú]/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/smmap/test/test_util.pyÚtest_window   s:    



 zTestMMan.test_windowc           	      C   s†  t | jdƒ}|jd }tddƒ}t|jd|jƒ}t|j||jƒ}t|jd|ƒ}| ¡ dkrl| ¡ |jkspJ ‚| ¡ |jks‚J ‚| ¡ |kr | ¡ |j| ks¤J ‚| ¡ dkr¼| ¡ |ksÀJ ‚| d¡rä| |jd ¡rä| |¡sèJ ‚| d¡s| t	j
¡rJ ‚W d   ƒ n1 s0    Y  | ¡ dks8J ‚|}| ¡ dksRJ dƒ‚t |¡}|j| ¡ kr~| ¡ | ¡ ks‚J ‚d S )	NZwindow_testr   ih  Fr   r   éÿÿÿÿzno auto-counting)r   Zk_window_test_sizer   r
   r   ÚpathZ	ofs_beginr   Zincludes_ofsr   r   Zclient_countr   Zfrom_regionr   )	r   ÚfcZ	half_sizeZrofsZrfullZrhalfofsZ	rhalfsizeZrfull2Úwr   r   r   Útest_region>   s"    

"(>
zTestMMan.test_regionc              
   C   s¤   t ddƒ†}t |jtj¡}zX|j|fD ]>}t|ƒ}t|ƒdksDJ ‚| ¡ |ksTJ ‚| ¡ |j	ks(J ‚q(W t 
|¡ nt 
|¡ 0 W d   ƒ n1 s–0    Y  d S )Nr   Zsample_filer   )r   ÚosÚopenr   ÚO_RDONLYr   ÚlenZ
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s4J ‚d S )Nr   Fr   T)Ú
isinstancer	   Úboolr
   r   )r   r   r   r   Ú	test_utilf   s    zTestMMan.test_utilN)Ú__name__Ú
__module__Ú__qualname__r   r   r)   r,   r   r   r   r   r      s   ,r   )Úlibr   r   Z
smmap.utilr   r   r   r   r	   r
   r    r   r   r   r   r   r   Ú<module>   s    	