Ë
    ›¾j  ã                   óª   — d dl Z d dlmZ d dlmZmZmZmZ d dlm	Z	m
Z
 d„ Zd„ Zd„ Zd„ Zdd	„Zdd
„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	 dd„Zdd„Zy)é    N)Úarrays)ÚfloatsÚintegersÚjustÚtuples)ÚLinearÚNumpyOpsc                  ó   — t        «       S ©N)r	   © ó    ú`/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/thinc/tests/strategies.pyÚget_opsr      s
   € Ü‹:Ðr   c                 óÎ   — t        | j                  d   | j                  d   t        «       ¬«      }|j                  «        |j	                  d| «       |j	                  d|«       |S )Nr   é   )ÚopsÚWÚb)r   Úshaper	   Ú
initializeÚ	set_param)ÚW_valuesÚb_valuesÚmodels      r   Ú	get_modelr      sQ   € Ü�8—>‘> !Ñ$ h§n¡n°QÑ&7¼X»ZÔH€EØ	×ÑÔØ	‡O�O�C˜Ô"Ø	‡O�O�C˜Ô"Ø€Lr   c                 ó6   — t        j                  d|| «      |z   S )Nz	oi,bi->bo)ÚnumpyÚeinsum)Úinput_r   r   s      r   Ú
get_outputr       s   € Ü�<‰<˜ X¨vÓ6¸ÑAÐAr   c                 ó:   — t        «       }|j                  | |«      S r   )r	   Úalloc2f)Únr_batchÚnr_inr   s      r   Ú	get_inputr%      s   € Ü
‹*€CØ�;‰;�x Ó'Ð'r   c                 ó   — t        | |¬«      S )N©Ú	min_valueÚ	max_value)r   ©ÚloÚhis     r   Úlengthsr-      s   € Ü˜b¨BÔ/Ð/r   c                 óF   — t        t        | |¬«      t        ||¬«      «      S ©Nr*   )r   r-   )Úmin_rowsÚmax_rowsÚmin_colsÚmax_colss       r   Úshapesr4   !   s   € Ü”'˜X¨(Ô3´WÀÈXÔ5VÓWÐWr   c           	      óŠ   — |j                  d«      rt        || t        |||¬«      ¬«      S t        || t        ||¬«      ¬«      S )NÚfloat)r(   r)   Úwidth©r   Úelementsr'   )Ú
startswithr   r   r   )r   r+   r,   Údtyper7   s        r   Úndarrays_of_shaper<   %   sG   € Ø×Ñ˜Ô ÜØ˜¬¸"ÈÐRWÔ)Xô
ð 	
ô �e 5´8ÀbÐTVÔ3WÔXÐXr   c                 óF   ‡‡— t        dd¬«      j                  ˆˆfd„«      S )Nr   é   r*   c                 ó    •— t        | ‰‰¬«      S r/   )r<   )ÚnÚmax_valÚmin_vals    €€r   ú<lambda>zndarrays.<locals>.<lambda>0   s   ø€ Ô# A¨'°gÔ>€ r   )r-   Úflatmap)Úmin_lenÚmax_lenrB   rA   s     ``r   ÚndarraysrG   .   s    ù€ Ü�a˜AÔ×&Ñ&Ü>óð r   c                 óp   — t        t        | |¬«      t        ||¬«      «      }|j                  t        «      S r/   ©r   r-   rD   r<   )Úmin_BÚmax_BÚmin_IÚmax_Ir4   s        r   Ú	arrays_BIrN   4   s,   € Ü”G˜u¨Ô/´¸EÀeÔ1LÓM€FØ�>‰>Ô+Ó,Ð,r   c                 óˆ   — t        t        | |¬«      t        ||¬«      t        ||¬«      «      }|j                  t        «      S r/   rI   ©rJ   rK   Úmin_OÚmax_OÚmin_PÚmax_Pr4   s          r   Ú
arrays_BOPrU   9   s<   € ÜÜ�5˜UÔ#Ü�5˜UÔ#Ü�5˜UÔ#ó€Fð
 �>‰>Ô+Ó,Ð,r   c                 ó‚   — t        t        | |¬«      t        ||¬«      t        ||¬«      «      }|j                  d„ «      S )Nr*   c                 óD   — t        t        | «      t        | d d «      «      S )Néÿÿÿÿ©r   r<   )ÚBOPs    r   rC   zarrays_BOP_BO.<locals>.<lambda>I   s   € ”FÔ,¨SÓ1Ô3DÀSÈÈ"ÀXÓ3NÓO€ r   ©r   r-   rD   rP   s          r   Úarrays_BOP_BOr\   B   s@   € ÜÜ�5˜UÔ#Ü�5˜UÔ#Ü�5˜UÔ#ó€Fð
 �>‰>ÙOóð r   c                 ó‚   — t        t        | |¬«      t        ||¬«      t        ||¬«      «      }|j                  d„ «      S )Nr*   c                 ó^   — t        t        | d   | d   f«      t        | d   | d   f«      «      S )Nr   r   r>   rY   )ÚBIOs    r   rC   zarrays_BI_BO.<locals>.<lambda>T   s6   € ”FÜ˜s 1™v s¨1¡vÐ.Ó/Ô1BÀCÈÁFÈCÐPQÉFÐCSÓ1Tó
€ r   r[   )rJ   rK   rL   rM   rQ   rR   r4   s          r   Úarrays_BI_BOr`   M   sB   € ÜÜ�5˜UÔ#Ü�5˜UÔ#Ü�5˜UÔ#ó€Fð
 �>‰>ñ	
óð r   c                 ó†   — t        t        | |¬«      t        ||¬«      t        ||¬«      «      }d„ }|j                  |«      S )Nr*   c                 ót   — | \  }}}t        ||f«      }t        |f«      }t        ||f«      }t        |||«      S r   )r<   r   )r   Ú
batch_sizeÚnr_outr$   r   r   r   s          r   Ú
W_b_inputsz"arrays_OI_O_BI.<locals>.W_b_inputsc   sF   € Ø$)Ñ!ˆ
�F˜EÜ˜v u˜oÓ.ˆÜ˜v˜iÓ(ˆÜ" J°Ð#6Ó7ˆÜ�a˜˜FÓ#Ð#r   r[   )Ú	min_batchÚ	max_batchÚmin_outÚmax_outÚmin_inÚmax_inr4   re   s           r   Úarrays_OI_O_BIrl   Z   sB   € ô Ü�9 Ô+Ü�6˜gÔ&Ü�6˜fÔ%ó€Fò$ð �>‰>˜*Ó%Ð%r   c                 óÆ   — t        t        | ¬«      t        |¬«      t        |¬«      t        |¬«      t        ddt        dd¬«      ¬«      «      }|j	                  d„ «      }|S )	N)r,   Úint32)é   r   é
   r'   r8   c           	      ó€   — t        t        | d d «      t        t        | d   «      | d   f«      t        | d   «      «      S )NrX   éþÿÿÿ)r   r<   Úsumr   )Úopfi_lengthss    r   rC   z(arrays_OPFI_BI_lengths.<locals>.<lambda>w   sC   € œVÜ˜l¨3¨BÐ/Ó0Üœs <°Ñ#3Ó4°lÀ2Ñ6FÐGÓHÜ�˜bÑ!Ó"ó
€ r   )r   r-   r   r   rD   )rK   rT   Úmax_FrM   r4   Ústrats         r   Úarrays_OPFI_BI_lengthsrw   m   s[   € ÜÜ�5ÔÜ�5ÔÜ�5ÔÜ�5ÔÜˆw˜d¬XÀÈRÔ-PÔQó€Fð �N‰Nñ	
ó€Eð €Lr   )r   rp   )r   éd   r   rx   )ç      $Àç      $@Úfloat32é    )r   rp   ry   rz   )r   rp   r   rx   )r   rp   r   rx   r   ro   )r   rp   r   rx   r   rx   )r   é   r   r}   r   r}   )ro   é   ro   é   )r   Úhypothesis.extra.numpyr   Úhypothesis.strategiesr   r   r   r   Ú	thinc.apir   r	   r   r   r    r%   r-   r4   r<   rG   rN   rU   r\   r`   rl   rw   r   r   r   ú<module>rƒ      sd   ðÛ Ý )ß @Ó @ç &òòòBò(ó
0óXóYóó-ó
-óó
ð HJó&ô&r   