K iF*~ddlmZmZddlmZmZmZddlmZddl m Z ddl m Z ddl Z ddl Z ddlmZGd d eZy) )TestBase FileCreator) WindowCursorSlidingWindowMapManagerStaticWindowMapManager) align_to_mmap)randint)timeN)copyceZdZdZdZdZy)TestMMancht|jd5}t}t|}|j rJ|j rJ|j dk(sJ|j|j}|j rJ|j sJ|j|j k(sJ|j|jk(sJ dddt}|j s|j sJj rJ|j||j s|j sJ|j|j|jtjy#1swYxYw)N cursor_testr)rk_window_test_sizerris_valid is_associatedsize make_cursorpath file_sizer assign unuse_region_destroy)selffcmancicvcios Z/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/smmap/test/test_mman.py test_cursorzTestMMan.test_cursorsa 00- @ (B)+Cc"B{{} $$'') ))779> !>)B{{} $$##% %%<<>RWW, ,,779' '' (2h<<>c&7&7&999##%%% " ;;=R%5%5%777   S""$9 ( (s C F((F1c 6t}t}||fD]I}|jdk(sJ|jdk(sJd}t |trd}|j |kDsJ|j dk(sJ|jdkDsJ|jd|jd|jtjdk(sJt|jd5}tj|jtj } |j|fD]}|j#|}|j%|usJ|j'ddj)sJ|j+dk(sJ|j-dk(sJt|jd5} |j/dd| j1dddk(sJ dddt t2r!|j5t6jn |j5t6j8tj:| dddLy#1swY=xYw#tj:|wxYw#1swYxYw)Nr manager_testrb)rrnum_file_handlesnum_open_files isinstance window_sizemapped_memory_sizemax_mapped_memory_size_collect_lru_regionsysmaxsizerrosopenrO_RDONLYr path_or_fd use_regionr ofs_beginrbufferreadint assertRaises ValueErrorfdclose) r slide_man static_manrwinsize_cmp_valrr=itemcfps r!test_memory_managerzTestMMan.test_memory_manager2sW+- +-  *' !C'')Q. ..%%'1, ,,O#56"$??$6 66))+q0 00--/!3 33  # #A &  # #B '**3;;71< <<T44nE !WWRWWbkk2!!#" EOOD1 ||~555 ||B3<<>>> {{}222 vvx2~-~!"''40EB#$88:a=BGGBK4D#DD#DEE E"$,))*aff=))*add;HHRL' ! !)' !:EEHHRL' ! !s>6/J&BI4>+I' *AI4J'I1 ,I44J  JJ c Jt|jd5}t|jd5}|j }dddt j|jt j } d}td|jdz|fft|jdz|jdz|fffD]\}}|j|fD]}t|jk(sJ||d|d|d } | j|} | jdk(sJ| jdk(sJd } | jdz} | j| | j!sJ| j#} | j%dk(sJ| jdk(sJ| j'dk(sJ| j| jk(sJ| j)| k(sJ| j)dk(sJ| jr-| jt+| jd k(s!J| j|jk(sJ| j-dd|| | | xs| jzk(sJ| xs |jd z }| jd|j!sJ| j#| k(sJ| j'dk(sJ| j|k(sJ| j)dk(sJ| j-dd|d|k(sJd }|j| xs| jz |z} | j| | j!sJ| jrS| j'dk(sJ| j| ksJ| j#| usJ| j%dk(s!J| j|jksJ| j#} | j%dk(sJ| j)| j)ksJ| j/|jksJ| j-dd|| | | xs| jzk(sJ| j1| j!rJ| jr| j'dk(sJd }|}d}t3}| j4}| j7}| j9}| j}| j&}|r|dz}t;d|jdz } | jr ||k\sJ||k\sJ| j| | xs| jj!sJ| j}| j-dd|| | |zk(sJ||z }|| sJ|| |zdz sJ|| |zrJ|rt=t3|z d}t?d}tAd|||z |tC||||z |z fztDjF| j|j| j!rJ| j'sJ| jIsJ| j'dk(rJ t jJ| dddy#1swYxYw#t jJ|wxYw#1swYyxYw)Nmanager_operation_testr'rdr)r,max_memory_sizemax_open_handlesiTr%igMbP?i@Bz`%s: Read %i mb of memory with %i random on cursor initialized with %s accesses in %fs (%f mb/s) )file)&rrr3rr9r2r4rrrlenrr*r-r,r6rregion client_countr)r7r r8ofs_endrr includes_ofsr.max_file_handlesr maxfloatprinttyper0stderrcollectr>)rrrDdatar=max_num_handlesmtypeargsrBrrC base_offsetrrrnsize overshootmax_random_accessesnum_random_accesses memory_readstrSr.rTr-r)csizeelapsedmbs r!test_memman_operationzTestMMan.test_memman_operation`s 002J K~ rbggt$ !wwy !"++.Bz "$%;aA=_$`%m$n$qs;KE4!#" q;"4yBGG333$QacghicjkOOD1 #113q888"5571<<<&* "0A5 ||K>GGIIIXXZ!0A555"113q888"335:::"5572779DDD !{{} ;;;!||~222??,#%779 coo>OQU0V#VV#V#%779#77#7 !xxz!}[PTP`XYX^X^X`Aa0bbbb"&B 6 ||Au5>>@@@ xxzR///"335::: vvx5000 {{}111 xxz!}Ve <<<%) &(gg1A&BY&N  ||K>GGIII??,##7#9Q#>>#>#$668d?2?#$88:R#77#7#%??#4#99#9#$668bgg#55#5XXZ!0A555!||~ ===!zz|rww666 xxz!}[PTP`XYX^X^X`Aa0bbbb(#$::<//??,$'#7#7#9Q#>>#> /3+.A+&' !V()~~ 141K1K1M.+.+?+?+A(-0-C-C*+.+?+?(1/14/*1!RWWq[*AK #0'=ASAU'U U'U#37G7I#II#I#$<< d>Naffh#P#Y#Y#[[#[$%FFHE#$88:a=DXEX4Y#YY#Y'50K#/ #<<#<#/ e0Ca0G#HH#H'3K%4G'HH#H!2$#&dfrk5"9";/B!& b(8:MtTXz[bepsueuzAeA!BB#&::/ $%<<#>#G#G#III #33555"{{},}"335:::cq;s;n }~ ~  ! !z }~ ~ sG\[26\6V[?B;[? [?\2[< 7\?\\\"N)__name__ __module__ __qualname__r"rErjr!rrs%>+!\@ror)librr smmap.mmanrrr smmap.utilr randomr r r2r0r rrnror!rts4& % OxOro