Ë
    ßŸ¶5ã                   óN   — d dl Zd dlmc mZ d dlmZ d dlm	Z	 	  G d„ de	«      Z
y)é    N)Úfind_integer)ÚShrinkerc                   óP   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
defd	„«       Zd
„ Zy)ÚIntegerzÁAttempts to find a smaller integer. Guaranteed things to try ``0``,

    ``1``, ``initial - 1``, ``initial - 2``. Plenty of optimisations beyond
    that but those are the guaranteed ones.
    c                 ó6  — t        d«      D ]  }| j                  |«      sŒ y | j                  «        | j                  dkD  rI| j                  | j                  | j                  dz
  z	  «       | j                  | j                  dz  «       | j                  dk(  S )Né   Té   éÿ   )ÚrangeÚconsiderÚmask_high_bitsÚsizeÚcurrent)ÚselfÚis     úu/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/hypothesis/internal/conjecture/shrinking/integer.pyÚshort_circuitzInteger.short_circuit   s~   € Ü�q“ò 	ˆAØ�}‰}˜QÕÙð	ð 	×ÑÔØ�9‰9�qŠ=à�M‰M˜$Ÿ,™,¨4¯9©9°q©=Ñ9Ô:Ø�M‰M˜$Ÿ,™,¨Ñ-Ô.Ø�|‰|˜qÑ Ð ó    c                 óP  — d}||k\  }|s™t        j                  d|fd||f«      dt        j                  «       v st        j                  |«      rt        j
                  |«      ndt        j
                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}}y )Nr   )ú>=)z%(py0)s >= %(py3)sÚvalue)Úpy0Úpy3zassert %(py5)sÚpy5)Ú
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanation)r   r   Ú@py_assert2Ú@py_assert1Ú@py_format4Ú@py_format6s         r   Úcheck_invariantszInteger.check_invariants%   sZ   € ØÐˆu˜‰z××Õˆu˜×××××Ñˆu××Óˆu××Ô˜××××××Òr   c                 ó   — ||k  S ©N© )r   ÚleftÚrights      r   Úleft_is_betterzInteger.left_is_better(   s   € Ø�e‰|Ðr   c                 óh   — | j                  «        | j                  d«       | j                  d«       y )Nr   é   )Úshift_rightÚshrink_by_multiples©r   s    r   Úrun_stepzInteger.run_step+   s*   € Ø×ÑÔØ× Ñ  Ô#Ø× Ñ  Õ#r   c                 ó>   ‡ ‡— ‰ j                   Št        ˆˆ fd„«       y )Nc                 óN   •— | ‰j                   k  xr ‰j                  ‰| z	  «      S r)   )r   r   )ÚkÚbaser   s    €€r   ú<lambda>z%Integer.shift_right.<locals>.<lambda>2   s!   ø€ ˜q D§I¡I™~ÒJ°$·-±-ÀÈÁ	Ó2J€ r   ©r   r   )r   r7   s   `@r   r0   zInteger.shift_right0   s   ù€ Ø�|‰|ˆÜÔJÕKr   c                 ób   ‡ ‡‡— ‰ j                   Š‰j                  «       Št        ˆˆˆ fd„«       }y )Nc                 óN   •— | ‰k\  ryd‰| z
  z  dz
  }‰j                  |‰z  «      S )NFr/   ©r   )r6   Úmaskr7   Únr   s     €€€r   Útry_maskz(Integer.mask_high_bits.<locals>.try_mask8   s2   ø€ à�AŠvØØ˜!˜a™%‘L AÑ%ˆDØ—=‘= ¨¡Ó-Ð-r   )r   Ú
bit_lengthr   )r   r?   r7   r>   s   ` @@r   r   zInteger.mask_high_bits4   s*   ú€ Ø�|‰|ˆØ�O‰OÓˆä	õ	.ó 
ñ	.r   Úreturnc                 ó6   — | j                   j                  «       S r)   )r   r@   r2   s    r   r   zInteger.size?   s   € à�|‰|×&Ñ&Ó(Ð(r   c                 óJ   ‡ ‡‡— ‰ j                   Št        ˆˆˆ fd„«       }|dkD  S )Nc                 óD   •— ‰| ‰z  z
  }|dk\  xr ‰j                  |«      S )Nr   r<   )r>   Úattemptr7   r6   r   s     €€€r   Úshrunkz+Integer.shrink_by_multiples.<locals>.shrunkF   s(   ø€ à˜Q ™U‘lˆGØ˜a‘<Ò: D§M¡M°'Ó$:Ð:r   r   r9   )r   r6   rF   r7   s   `` @r   r1   zInteger.shrink_by_multiplesC   s*   ú€ Ø�|‰|ˆä	õ	;ó 
ð	;ð ˜‰zÐr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r'   r-   r3   r0   r   ÚpropertyÚintr   r1   r*   r   r   r   r      sF   „ ñò	!òòò$ò
Lò	.ð ð)�cò )ó ð)ór   r   )Úbuiltinsr   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter   Ú)hypothesis.internal.conjecture.junkdrawerr   Ú/hypothesis.internal.conjecture.shrinking.commonr   r   r*   r   r   ú<module>rS      s#   ð÷ „ Õ BÝ Dðô
8ˆhõ 8r   