Ë
    iKêjï  ã                   ó>   — d dl mZ d dlmZ d dlmZ  G d„ de«      Zy)é    )Úfind_integer)ÚShrinker)Úidentityc                   óD   — e Zd ZdZefd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zy
)ÚOrderingz£A shrinker that tries to make a sequence more sorted.

    Will not change the length or the contents, only tries to reorder
    the elements of the sequence.
    c                 ó   — || _         y ©N©Úkey)Úselfr   s     úv/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/hypothesis/internal/conjecture/shrinking/ordering.pyÚsetupzOrdering.setup   s	   € Øˆ�ó    c                 ó   — t        |«      S r	   )Útuple©r   Úvalues     r   Úmake_immutablezOrdering.make_immutable   s   € Ü�U‹|Ðr   c                 ób   — | j                  t        | j                  | j                  ¬«      «      S ©Nr
   )ÚconsiderÚsortedÚcurrentr   ©r   s    r   Úshort_circuitzOrdering.short_circuit   s    € à�}‰}œV D§L¡L°d·h±hÔ?Ó@Ð@r   c                 ó€   — t        t        | j                  |«      «      t        t        | j                  |«      «      k  S r	   )r   Úmapr   )r   ÚleftÚrights      r   Úleft_is_betterzOrdering.left_is_better!   s-   € Ü”S˜Ÿ™ 4Ó(Ó)¬E´#°d·h±hÀÓ2FÓ,GÑGÐGr   c                 ó�   — t        |«      t        | j                  «      k(  sJ ‚t        |«      t        | j                  «      k(  sJ ‚y r	   )Úlenr   r   r   s     r   Úcheck_invariantszOrdering.check_invariants$   s8   € Ü�5‹zœS §¡Ó.Ò.Ð.Ð.Ü�e‹}¤ t§|¡|Ó 4Ò4Ð4Ñ4r   c                 óD   — | j                  «        | j                  «        y r	   )Úsort_regionsÚsort_regions_with_gapsr   s    r   Úrun_stepzOrdering.run_step(   s   € Ø×ÑÔØ×#Ñ#Õ%r   c                 óØ   ‡ ‡‡— dŠ‰dz   t        ‰ j                  «      k  rJt        ‰ j                  d‰ «      Št        ˆˆˆ fd„«      }‰|z  Š‰dz   t        ‰ j                  «      k  rŒIyy)zÑGuarantees that for each i we have tried to swap index i with
        index i + 1.

        This uses an adaptive algorithm that works by sorting contiguous
        regions starting from each element.
        r   é   Nc           	      óè   •— ‰| z   t        ‰j                  «      k  xrU ‰j                  ‰t        ‰j                  ‰‰| z    ‰j                  ¬«      z   t        ‰j                  ‰| z   d  «      z   «      S r   )r"   r   r   r   r   Úlist)ÚkÚiÚprefixr   s    €€€r   ú<lambda>z'Ordering.sort_regions.<locals>.<lambda>7   so   ø€ ˜!˜a™%¤3 t§|¡|Ó#4Ñ4ò Ø—M‘MØÜ˜TŸ\™\¨!¨a°!©eÐ4¸$¿(¹(ÔCñDä˜4Ÿ<™<¨¨A©¨Ð0Ó1ñ2óð r   )r"   r   r+   r   )r   r,   r-   r.   s   ` @@r   r%   zOrdering.sort_regions,   se   ú€ ð ˆØ�!‰e”c˜$Ÿ,™,Ó'Ò'Ü˜$Ÿ,™, r¨Ð*Ó+ˆFÜõóˆAð �‰FˆAð �!‰e”c˜$Ÿ,™,Ó'Õ'r   c                 ó4  ‡ ‡‡‡‡— t        dt        ‰ j                  «      dz
  «      D ]n  Š‰ j                  ‰dz
     ‰ j                  ‰   cxk  r‰ j                  ‰dz      k  rn nŒ?ˆˆ fd„Š‰Š‰dz   Š‰t        ˆˆˆfd„«      z  Št        ˆˆˆfd„«       Œp y)a&  Guarantees that for each i we have tried to swap index i with
        index i + 2.

        This uses an adaptive algorithm that works by sorting contiguous
        regions centered on each element, where that element is treated as
        fixed and the elements around it are sorted..
        r)   c                 óz  •— | dk  s|t        ‰j                  «      kD  ry| ‰cxk  r|k  sJ ‚ J ‚‰| z
  }t        ‰j                  | ‰ ‰j                  ‰dz   | z   «      }‰j                  t	        ‰j                  d |  «      |d | z   ‰j                  ‰   gz   ||d  z   t	        ‰j                  |d  «      z   «      S )Nr   Fr)   )r"   r   r   r   r+   )ÚaÚbÚsplitÚvaluesr-   r   s       €€r   Úcan_sortz1Ordering.sort_regions_with_gaps.<locals>.can_sortO   sÓ   ø€ Ø�q’5˜A¤ D§L¡LÓ 1Ò1Ø Ø˜A”z ’zÐ!‘zÐ!�zØ˜A™�Ü §¡¨Q¨qÐ 1°D·L±LÀÀQÁÈÐ4KÑ KÓL�Ø—}‘}Ü˜Ÿ™ b qÐ)Ó*Ø˜V˜e�nñ%à—|‘| A‘Ð'ñ(ð ˜U˜V�nñ%ô ˜4Ÿ<™<¨¨Ð+Ó,ñ	-óð r   c                 ó   •—  ‰‰‰| z   «      S r	   © ©r,   r6   r   r   s    €€€r   r/   z1Ordering.sort_regions_with_gaps.<locals>.<lambda>_   s   ø€ ©H°T¸5À1¹9Ó,E€ r   c                 ó   •—  ‰‰| z
  ‰«      S r	   r8   r9   s    €€€r   r/   z1Ordering.sort_regions_with_gaps.<locals>.<lambda>`   s   ø€ ¡8¨D°1©H°eÓ#<€ r   N)Úranger"   r   r   )r   r6   r-   r   r   s   `@@@@r   r&   zOrdering.sort_regions_with_gaps@   s‹   ü€ ô �qœ#˜dŸl™lÓ+¨aÑ/Ó0ò 	>ˆAØ�|‰|˜A ™EÑ" d§l¡l°1¡oÔL¸¿¹ÀaÈ!ÁeÑ9LÕLð õð ˆDØ˜‘EˆEØ”\Õ"EÓFÑFˆEÜÕ<Õ=ñ1	>r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r    r#   r'   r%   r&   r8   r   r   r   r      s6   „ ñð !ó òòAòHò5ò&òó( >r   r   N)Ú)hypothesis.internal.conjecture.junkdrawerr   Ú/hypothesis.internal.conjecture.shrinking.commonr   Ú$hypothesis.internal.conjecture.utilsr   r   r8   r   r   ú<module>rC      s   ðõ CÝ DÝ 9ôP>ˆxõ P>r   