
    i                         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	        g/var/www/vps2.regionflexible.com/Desarrollo/venv/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>>!$hnnQ&7XZHE		OOC"	OOC"Lr   c                 6    t        j                  d||       |z   S )Nz	oi,bi->bo)numpyeinsum)input_r   r   s      r   
get_outputr       s    <<Xv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    bB//r   c                 F    t        t        | |      t        ||            S Nr*   )r   r-   )min_rowsmax_rowsmin_colsmax_colss       r   shapesr4   !   s    'X(3WX5V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
 	
 e58bTV3W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     aA&&> 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,    Gu/Ee1LMF>>+,,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<    5U#5U#5U#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13DS"X3NO r   r   r-   rD   rP   s          r   arrays_BOP_BOr\   B   s@    5U#5U#5U#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s1vs1v./1BCFCPQFCS1T
 r   r[   )rJ   rK   rL   rM   rQ   rR   r4   s          r   arrays_BI_BOr`   M   sB    5U#5U#5U#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    $)!
FEvuo.vi("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+6g&6f%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l3B/0s<#34l26F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wdXR-PQF NN	
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   