
    hh                         S SK r S SKrS SKJr  S SKJrJr  \R                  S 5       rS r	S r
SS jrSS jrS	 rS
 rg)    N)assert_allclose)PairsRaggedc                      [         R                  " SSS9n [         R                  " / SQSS9nSU S'   SU S'   SU S'   S	U S	'   S
U S
'   SU S'   [        X5      $ )N)      fdtype)r            r   ir   r   r      r      )numpyzerosarrayr   )datalengthss     S/home/james-whalen/.local/lib/python3.13/site-packages/thinc/tests/test_indexing.pyraggedr      sc    ;;wc*Dkk/5GDGDGDGDGDGDG$      c                     [         R                  " SSS9n [         R                  " / SS9n[        X5      n[	        USS R
                  UR
                  5        [	        USS R                  UR                  5        [	        USS R
                  UR
                  5        [	        USS R                  UR                  5        [	        USS R
                  UR
                  5        [	        USS R                  UR                  5        g )N)r   r   r	   r
   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   s      r   test_ragged_emptyr      s    ;;vS)Dkk"C(GD"FF1QK$$fkk2F1QK''8F1QK$$fkk2F1QK''8F1QK$$fkk2F1QK''8r   c                     U R                  5       nU R                  5       n[        U5      / SQ:X  d   e[        U5      / SQ:X  d   eg )N)r   r            )r   r   r   r      )_get_starts	_get_endslist)r   startsendss      r   test_ragged_starts_endsr&   !   sD    !FD<,,,,:++++r   c                     X   n[        UR                  U R                  SS 5        [        UR                  U R                  XS-    5        g )Nr   r   r   )r   r   r   )r   r   rs      r   test_ragged_simple_indexr)   (   s=    	AAFFFKK!,-AIIv~~aa%89r   c                     XU nU R                   X R                  5       nUR                  R                  XCR                  R                  S   4:X  d   e[	        UR                   U R                   X 5        g )Nr   )r   sumr   shaper   )r   startendr(   sizes        r   test_ragged_slice_indexr0   .   s_    SA>>%$((*D66<<D&&,,q/2222AIIv~~e89r   c                     [         R                  " / SQSS9nX   nUR                  R                  S   U R                  U   R                  5       :X  d   eg )N)r   r   r   r   r
   r   )r   r   r   r,   r   r+   )r   arrr(   s      r   test_ragged_array_indexr3   5   sE    
++is
+CA66<<?fnnS1557777r   c                  f   [         R                  " SSS9n [         R                  " SSS9n[        X5      nUS S R                  R                  S:X  d   eUS   R
                  R                  S:X  d   eUS	S  R                  R                  S
:X  d   eUS	S  R
                  R                  S:X  d   eg )N)   -   r	   r
   )r5      r   )r   r6   r   )r7   )r   r6   )r   r7   )r   r   r   oner,   two)r9   r:   pairss      r   test_pairs_arraysr<   ;   s    
++is
+C
++is
+C#OE!9==')))8<<&&&:>>7***:>>7***r   )r   )r   r   )r   pytestnumpy.testingr   thinc.typesr   r   fixturer   r   r&   r)   r0   r3   r<    r   r   <module>rB      sG      ) % 	! 	!	9,::8+r   