
    h                         S SK r S SKJr  S SKJrJrJrJr  S SKJ	r	J
r
  S rS rS rS rSS	 jrSS
 jrSS jrSS jrSS jrSS jrSS jrSS jr SS jrSS jrg)    N)arrays)floatsintegersjusttuples)LinearNumpyOpsc                      [        5       $ N)r	        P/home/james-whalen/.local/lib/python3.13/site-packages/thinc/tests/strategies.pyget_opsr      s
    :r   c                     [        U R                  S   U R                  S   [        5       S9nUR                  5         UR	                  SU 5        UR	                  SU5        U$ )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    [         R                  " SX5      U-   $ )Nz	oi,bi->bo)numpyeinsum)input_r   r   s      r   
get_outputr       s    <<X6AAr   c                 8    [        5       nUR                  X5      $ r   )r	   alloc2f)nr_batchnr_inr   s      r   	get_inputr%      s    
*C;;x''r   c                     [        XS9$ )N	min_value	max_value)r   lohis     r   lengthsr-      s    b//r   c                 6    [        [        XS9[        X#S95      $ Nr*   )r   r-   )min_rowsmax_rowsmin_colsmax_colss       r   shapesr4   !   s    'X3W5VWWr   c           
      t    UR                  S5      (       a  [        X0[        XUS9S9$ [        X0[        XS9S9$ )Nfloat)r(   r)   widthr   elementsr'   )
startswithr   r   r   )r   r+   r,   dtyper7   s        r   ndarrays_of_shaper<   %   sA      "RW)X
 	
 e8b3WXXr   c                 B   ^^ [        SSS9R                  UU4S j5      $ )Nr      r*   c                    > [        U TTS9$ r/   )r<   )nmax_valmin_vals    r   <lambda>ndarrays.<locals>.<lambda>0   s    #A'g>r   )r-   flatmap)min_lenmax_lenrB   rA   s     ``r   ndarraysrH   .   s     aA&&> r   c                 `    [        [        XS9[        X#S95      nUR                  [        5      $ r/   r   r-   rE   r<   )min_Bmax_Bmin_Imax_Ir4   s        r   	arrays_BIrO   4   s(    Gu/E1LMF>>+,,r   c           	      p    [        [        XS9[        X#S9[        XES95      nUR                  [        5      $ r/   rJ   rK   rL   min_Omax_Omin_Pmax_Pr4   s          r   
arrays_BOPrV   9   s6    5#5#5#F
 >>+,,r   c           	      j    [        [        XS9[        X#S9[        XES95      nUR                  S 5      $ )Nr*   c                 D    [        [        U 5      [        U S S 5      5      $ )Nr   r<   )BOPs    r   rC   arrays_BOP_BO.<locals>.<lambda>I   s    F,S13DS"X3NOr   r   r-   rE   rQ   s          r   arrays_BOP_BOr^   B   s:    5#5#5#F
 >>O r   c           	      j    [        [        XS9[        X#S9[        XES95      nUR                  S 5      $ )Nr*   c                 ^    [        [        U S   U S   45      [        U S   U S   45      5      $ )Nr   r   r>   rZ   )BIOs    r   rC   arrays_BI_BO.<locals>.<lambda>T   s4    Fs1vs1v./1BCFCPQFCS1T
r   r]   )rK   rL   rM   rN   rR   rS   r4   s          r   arrays_BI_BOrc   M   s<    5#5#5#F
 >>	
 r   c           	      n    [        [        XS9[        XCS9[        XES95      nS nUR                  U5      $ )Nr*   c                 l    U u  pn[        X#45      n[        U45      n[        X45      n[        XEU5      $ r   )r<   r   )r   
batch_sizenr_outr$   r   r   r   s          r   
W_b_inputs"arrays_OI_O_BI.<locals>.W_b_inputsc   s>    $)!
Evo.vi("J#67aF##r   r]   )	min_batch	max_batchmin_outmax_outmin_inmax_inr4   rh   s           r   arrays_OI_O_BIrp   Z   s<     9+6&6%F$ >>*%%r   c                     [        [        U S9[        US9[        US9[        US9[        SS[        SSS9S95      nUR	                  S 5      nU$ )	N)r,   int32)   r   
   r'   r8   c           	          [        [        U S S 5      [        [        U S   5      U S   45      [        U S   5      5      $ )NrY   )r   r<   sumr   )opfi_lengthss    r   rC   (arrays_OPFI_BI_lengths.<locals>.<lambda>w   sA    Vl3B/0s<#34l26FGHb!"
r   )r   r-   r   r   rE   )rL   rU   max_FrN   r4   strats         r   arrays_OPFI_BI_lengthsr|   m   s[    5555wdXR-PQF NN	
E Lr   )r   rt   )r   d   r   r}   )      $      $@float32    )r   rt   r~   r   )r   rt   r   r}   )r   rt   r   r}   r   rs   )r   rt   r   r}   r   r}   )r      r   r   r   r   )rs      rs      )r   hypothesis.extra.numpyr   hypothesis.strategiesr   r   r   r   	thinc.apir   r	   r   r   r    r%   r-   r4   r<   rH   rO   rV   r^   rc   rp   r|   r   r   r   <module>r      sd     ) @ @ &B(
0XY-
-
 HJ&&r   