
    .PhF*                         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dS )   )TestBaseFileCreator    )WindowCursorSlidingWindowMapManagerStaticWindowMapManager)align_to_mmap)randint)timeN)copyc                        e Zd Zd Zd Zd ZdS )TestMManc                    t          | j        d          5 }t                      }t          |          }|                                rJ |                                rJ |                                dk    sJ |                    |j                  }|                                rJ |                                sJ |	                                |j        k    sJ |                                |j        k    sJ 	 d d d            n# 1 swxY w Y   t          |          }|                                s|                                sJ |                                rJ |                    |           |                                s|                                sJ |                                 |                                 |                                 t          |                                           d S )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         T/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/smmap/test/test_mman.pytest_cursorzTestMMan.test_cursor   s	   0-@@ 	(B)++Cc""B{{}}$$$'')))))7799>>>>))B{{}}$$$##%%%%%<<>>RW,,,,7799'''''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 2hh<<>>9c&7&7&9&9999 ##%%%%%
		";;==7R%5%5%7%7777 	
 	S""$$$$$s   C(DDDc           	         t                      }t                      }||fD ]}|                                dk    sJ |                                dk    sJ d}t	          |t                    rd}|                                |k    sJ |                                dk    sJ |                                dk    sJ |                    d           |                    d           |                    t          j
                  dk    sJ t          | j        d          5 }t          j        |j        t          j                  }	 |j        |fD ]}|                    |          }|                                |u sJ |                    dd                                          sJ |                                dk    sJ |                                dk    sJ t          |j        d          5 }	|                                d d          |	                    d          dd          k    sJ 	 d d d            n# 1 swxY w Y   t	          |t2                    r!|                     t6          |j                   n |                     t6          |j                   t          j        |           n# t          j        |           w xY w	 d d d            n# 1 swxY w Y   d S )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   s^   +--	+--
	* '	! '	!C''))Q....%%''1,,,,O#566 %"$??$$6666))++q0000--//!3333 ##A&&&##B''' **3;771<<<< T4nEE !WRWbk22!!#" E EOOD11 ||~~5555 ||B33<<>>>>> {{}}2222 vvxx2~~~~!"'400 EB#$88::aaa=BGGBKK4D#D#D#D#D#DE E E E E E E E E E E E E E E "$,, <))*af====))*ad;;; HRLLLLBHRLLLLL'! ! ! ! ! ! ! ! ! ! ! ! ! ! !)'	! '	!sP   #%K	B+J64>H?	3J6?IJ6IAJ6!K6KKK 	#K 	c                    t          | j        d          5 }t          |j        d          5 }|                                }d d d            n# 1 swxY w Y   t          j        |j        t
          j                  }	 d}t          d|j        dz  |fft          |j        dz  |j        dz  |fffD ]E\  }}|j        |fD ]4}t          |          |j        k    sJ  ||d         |d         |d         	          }	|	                    |          }
|	                                dk    sJ |	                                dk    sJ d
}|	                                dz  }|
                    ||                                          sJ |
                                }|                                dk    sJ |	                                dk    sJ |	                                dk    sJ |	                                |                                k    sJ |
                                |k    sJ |                                dk    sJ |	                                r;|                                t+          |	                                d          k    sJ n|                                |j        k    sJ |
                                d d          ||||p|
                                z            k    sJ |p|j        dz
  }|
                    d|                                          sJ |
                                |k    sJ |	                                dk    sJ |
                                |k    sJ |
                                dk    sJ |
                                d d          |d |         k    sJ d}|j        |p|
                                z
  |z   }|
                    ||                                          sJ |	                                rg|	                                dk    sJ |
                                |k     sJ |
                                |usJ |                                dk    sJ n|
                                |j        k     sJ |
                                }|                                dk    sJ |                                |
                                k     sJ |                                |j        k    sJ |
                                d d          ||||p|
                                z            k    sJ |
                                 |
                                rJ |	                                r|	                                dk    sJ d
}|}d}t3                      }|
j        }|	                                }|	                                }|	j        }|	j        }|r|dz  }t;          d|j        dz
            }|	                                r| |            k    sJ | |            k    sJ |
                    ||p|
                                                                          sJ |
                                }|
                                d d          ||||z            k    sJ ||z  } ||          sJ  |||z   dz
            sJ  |||z             rJ |t=          t3                      |z
  d          }t?          d          }tA          d|||z  |tC          |          |||z  |z  fz  tD          j#                   |
                    |j        |                                          rJ |	                                sJ |	$                                sJ |	                                dk    sJ 6G	 t          j%        |           n# t          j%        |           w xY w	 d d d            d S # 1 swxY w Y   d S )Nmanager_operation_testr'      r      d   r      )r,   max_memory_sizemax_open_handlesi  Tr%   i  gMbP?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$	   02JKK ~	rbgt$$ !wwyy! ! ! ! ! ! ! ! ! ! ! ! ! ! !"+..Bz"$%;aA=_$`%<rw#~rwZ[|]l>m$n$q s; s;KE4!#" q; q;"4yyBG3333 $eQacghicjkkkOOD11  #1133q8888"55771<<<<&*"00A5 ||K>>GGIIIIIXXZZ!00A5555"1133q8888"3355::::"557727799DDDD  !{{}};;;;!||~~2222??,, 8#%7799coo>O>OQU0V0V#V#V#V#V#V#%7799#7#7#7#7  !xxzz!!!}[PTP`XYX^X^X`X`Aa5a0bbbbb "&B 6 ||Au55>>@@@@@ xxzzR////"3355:::: vvxx50000 {{}}1111 xxzz!!!}VeV<<<< %)	&(g1A&BY&N ||K>>GGIIIII??,, 6#&#7#7#9#9Q#>#>#>#>#$6688d????#$88::R#7#7#7#7#%??#4#4#9#9#9#9#9#$6688bg#5#5#5#5XXZZ!00A5555!||~~====!zz||rw6666 xxzz!!!}[PTP`XYX^X^X`X`Aa5a0bbbbb (((#$::<<///??,, ? $'#7#7#9#9Q#>#>#>#>
 /3+.A+&'!VV ()~141K1K1M1M.+.+?+?+A+A(-0-C*+.+?(1 I/14/*1!RWq[*A*AK  #00 V'=ASASAUAU'U'U'U'U#37G7G7I7I#I#I#I#I#$<<d>Naffhh#P#P#Y#Y#[#[[[[$%FFHHE#$88::aaa=D[SXEX9X4Y#Y#Y#Y#Y'50K#/<#<#<<<<#/<e0Ca0G#H#HHHH'3|K%4G'H'HHHH! 2 I$ #&dffrk5"9"9";//  B!&b(8:MtTXzz[bepsueu  zA  eA  !BB#&:/ / / /
 $%<<#>#>#G#G#I#IIII  #3355555"{{}},,,"3355:::::cq;s;n }~	 ~	 ~	 ~	 ~	 ~	 ~	 ~	 ~	 ~	 ~	 ~	 ~	 ~	 ~	 ~	 ~	 ~	sM   `3A`3A	`3A	'`3=]9`7`3`""`33`7:`7N)__name__
__module____qualname__r"   rE   rj        r!   r   r      sG        % % %>+! +! +!\@ @ @ @ @ro   r   )libr   r   
smmap.mmanr   r   r   
smmap.utilr	   randomr
   r   r2   r0   r   r   rn   ro   r!   <module>rt      s    & & & & & & & &         
 % $ $ $ $ $             				 



      O O O O Ox O O O O Oro   