
    io                         d dl Z d dlZd dlmZmZmZmZmZ d dlm	Z	 ej                  d        Zd Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zy)    N)reduce_firstreduce_last
reduce_maxreduce_mean
reduce_sum)Raggedc                      t        j                  dd      t        j                  dd      g} | D ]  }d|d<   d|d<   d|d<    | S )	N)
      fdtype)   r      r      )numpyzeros)seqsxs     o/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/thinc/tests/layers/test_reduce.pyXsr      sS    KKs+U[[s-KLD !!" K    c                      t               } y N)r   models    r   test_init_reduce_firstr      s	    NEr   c                      t               } y r   )r   r   s    r   test_init_reduce_lastr       	    MEr   c                      t               } y r   )r   r   s    r   test_init_reduce_meanr#      r!   r   c                      t               } y r   )r   r   s    r   test_init_reduce_maxr%      	    LEr   c                      t               } y r   )r   r   s    r   test_init_reduce_sumr(   "   r&   r   c                    t               }|j                  j                  | D cg c]  }|j                  d    c}d      }t	        |j                  j                  |       |      } ||d      \  }}t        |t        j                        sJ |j                  t        |       | d   j                  d   fk(  sJ |j                  | d   j                  k(  sJ t        |d         t        | d   d         k(  sJ t        |d         t        | d   d         k(  sJ  ||      }|j                  j                  |j                  j                  k(  sJ y c c}w Nr   ir   Tis_trainr   )r   opsasarrayshaper   flatten
isinstancer   ndarraylenr   listdataXdr   r   r   lengthsXYbackpropdXs           r   test_reduce_firstr=   &   s%   NEiiR 8 8DGuyy  $g.AD)KAxa'''77s2w1A////77bekk!!!!:beAh'''!:beAh'''	!B99??ahhnn,,, !9   Ec                    t               }|j                  j                  | D cg c]  }|j                  d    c}d      }t	        |j                  j                  |       |      } ||d      \  }}t        |t        j                        sJ |j                  t        |       | d   j                  d   fk(  sJ |j                  | d   j                  k(  sJ t        |d         t        | d   d         k(  sJ t        |d         t        | d   d         k(  sJ  ||      }|j                  j                  |j                  j                  k(  sJ y c c}w Nr   r+   r   Tr,   r   r   )r   r.   r/   r0   r   r1   r2   r   r3   r4   r   r5   r6   r7   s           r   test_reduce_lastrA   4   s%   MEiiR 8 8DGuyy  $g.AD)KAxa'''77s2w1A////77bekk!!!!:beBi(((!:beBi(((	!B99??ahhnn,,, !9r>   c                    t               }|j                  j                  | D cg c]  }|j                  d    c}d      }t	        |j                  j                  |       |      } ||d      \  }}t        |t        j                        sJ |j                  t        |       | d   j                  d   fk(  sJ |j                  | d   j                  k(  sJ t        |d         t        | d   d         k(  sJ t        |d         t        | d   d         k(  sJ  ||      }|j                  j                  |j                  j                  k(  sJ y c c}w r*   )r   r.   r/   r0   r   r1   r2   r   r3   r4   r   r5   r6   r7   s           r   test_reduce_maxrC   B   s%   LEiiR 8 8DGuyy  $g.AD)KAxa'''77s2w1A////77bekk!!!!:beAh'''!:beAh'''	!B99??ahhnn,,, !9r>   c                 b   | D cg c]  }|dz  	 } }t               }|j                  j                  | D cg c]  }|j                  d    c}d      }t	        |j                  j                  |       |      } ||d      \  }}t        |t        j                        sJ |j                  t        |       | d   j                  d   fk(  sJ |j                  | d   j                  k(  sJ t        j                  |d   |d   d   k(        sJ |d   d   | d   j                         k(  sJ t        j                  |d   |d   d   k(        sJ |d   d   | d   j                         k(  sJ  ||      }|j                  j                  |j                  j                  k(  sJ y c c}w c c}w )Ni  r   r+   r   Tr,   r   )r   r.   r/   r0   r   r1   r2   r   r3   r4   r   allmeanr6   )r   r   r   r8   r9   r:   r;   r<   s           r   test_reduce_meanrG   P   s   	q!d(	B	MEiiR 8 8DGuyy  $g.AD)KAxa'''77s2w1A////77bekk!!!99QqTQqT!W_%%%Q47bejjl"""99QqTQqT!W_%%%Q47bejjl"""	!B99??ahhnn,,, 
  8s
   F'F,c                 P   t               }|j                  j                  | D cg c]  }|j                  d    c}d      }t	        |j                  j                  |       |      } ||d      \  }}t        |t        j                        sJ |j                  t        |       | d   j                  d   fk(  sJ |j                  | d   j                  k(  sJ |d   d   | d   d d df   j                         k(  sJ t        j                  |d   |d   d   k(        sJ |d   d   | d   d d df   j                         k(  sJ t        j                  |d   |d   d   k(        sJ  ||      }|j                  j                  |j                  j                  k(  sJ y c c}w r@   )r   r.   r/   r0   r   r1   r2   r   r3   r4   r   sumrE   r6   r7   s           r   test_reduce_sumrJ   a   sw   LEiiR 8 8DGuyy  $g.AD)KAxa'''77s2w1A////77bekk!!!Q47beAqDkoo''''99QqTQqT!W_%%%Q48r!uQT{((((99QqTQqT!W_%%%	!B99??ahhnn,,, !9s   F#c                    t         t        t        t        t        fD ]  } |       }|j
                  j                  | D cg c]  }|j                  d    c}d      }t        |j
                  j                  |       |      } ||d      \  }}|d d }t        j                  t              5   ||       d d d         y c c}w # 1 sw Y   xY w)Nr   r+   r   Tr,   r   )r   r   r   r   r   r.   r/   r0   r   r1   pytestraises
ValueError)	r   reducer   r   r8   r9   r:   r;   Y_bads	            r   test_size_mismatchrQ   q   s    j+zR ))##$<AQWWQZ$<C#H599$$R('2A-8#2]]:& 	UO	 	$<
	 	s   C
.	CC	)r   rL   	thinc.apir   r   r   r   r   thinc.typesr   fixturer   r   r    r#   r%   r(   r=   rA   rC   rG   rJ   rQ    r   r   <module>rV      sc      T T   ----"- 	r   