
    h                        S SK Jr  S SKrS SKrS SKJr  S SKJrJrJ	r	  S SK
JrJr  S SKJr  S SKJrJr  S SKJr  S S	KJr  S S
KJr  \	" 5       rSS/rSS/SS/SS/SS//rSS/SS/SS//r\R8                  R;                  \SS9\R8                  R;                  \SS9/r\R8                  R;                  \SS9\R8                  R;                  \SS9/r\R8                  R;                  \SS9r \" \ \R8                  R;                  SS/SS95      r!S r"\RF                  RI                  S/ SQ5      S 5       r%\RF                  RI                  SS/5      S 5       r&\" SSS9\"" 5       \4\" S S!/5      \"" 5       \4\" 5       \"" 5       \!4/r'\RF                  RI                  S"\'5      S# 5       r(S$\\\   \\   4   S%\\   S&\\   4S' jr)S$\\\   \4   S%\\   S&\4S( jr*S$\\\   \4   S%\\   S&\4S) jr+g)*    )ListN)assert_almost_equal)Modeldata_validationget_current_ops)Array2dRagged)English)FeatureExtractorStaticVectors)CharacterEmbed)Doc)VocabzThese are 4 wordszHere just three                        	   f)dtypeic                  P   [        5       n [         Hg  nUR                  5        HP  nU R                  R	                  U5      n[
        R                  R                  SSS5      nU R                  X45        MR     Mi     [         Vs/ s H  n[        U 5      " U5      PM     nnU$ s  snf )Nr   )r   )
r   textssplitstringsaddnumpyrandomuniform
set_vectorr
   )vocabtwordhash_idvectordocss         Z/home/james-whalen/.local/lib/python3.13/site-packages/spacy/tests/pipeline/test_models.pyget_docsr-      s    GEGGIDmm''-G\\))"a6FW-  
 (--u!GEN1uD-K .s   B#name)taggertok2vecmorphologizersenterc                     [        5       nUR                  U 5      n[        UR                  [	        5       [
        5        g N)r
   create_pipeutil_batch_unbatch_docs_listmodelr-   list_floatsr.   nlpprocs      r,   test_components_batching_listr<   &   s)    
)C??4 D XZE    textcatc                     [        5       nUR                  U 5      n[        UR                  [	        5       [
        5        g r4   )r
   r5   util_batch_unbatch_docs_arrayr7   r-   arrayr9   s      r,   test_components_batching_arrayrB   .   s)    
)C??4 D!$**hj%@r=   )nMnCd      zmodel,in_data,out_datac                    [        U[        5      (       a  [        US   [        5      (       a  [        U[        R                  R
                  5      (       a  UR                  S:X  a  [        XU5        g [        U[        5      (       aL  [        US   [        R                  R
                  5      (       a   US   R                  S:X  a  [        XU5        g [        U[        5      (       a  [        XU5        g g g g )Nr   r   )
isinstancelistr   OPSxpndarrayndimr@   r6   r	   util_batch_unbatch_docs_ragged)r7   in_dataout_datas      r,   test_layers_batching_allrQ   <   s     '4  Z
C%@%@h//HMMQ4F)%(Cx&&8A;77  A%(B&))*58D * &A r=   r7   rO   rP   c           	         [        S5         U R                  X5        U R                  U5      nU Vs/ s H  o@R                  U/5      S   PM     nn[        [	        U5      5       H8  n[        [        R                  X6   5      [        R                  XV   5      SS9  M:     S S S 5        g s  snf ! , (       d  f       g = fNTr   r   decimal)r   
initializepredictrangelenr   rJ   to_numpy)r7   rO   rP   	Y_batcheduY_not_batchedr   s          r,   r6   r6   L   s     
	+MM'*	8?@1s+A.@s9~&AY\*CLL9I,JTU '	 
	 A 
	s   'B1B,AB1,B11
B?c                 0   [        S5         U R                  X5        U R                  U5      R                  5       nU Vs/ s H%  o@R                  U/5      S   R                  5       PM'     nn[	        X5SS9  S S S 5        g s  snf ! , (       d  f       g = frS   )r   rV   rW   tolistr   )r7   rO   rP   r[   r\   r]   s         r,   r@   r@   Y   s}     
	+MM'*113	AHIAs+A.557IIa@	 
	 J 
	s   5B,B-BB
Bc                 ^   [        S5         U R                  X5        U R                  U5      R                  R	                  5       n/ nU H<  nUR                  U R                  U/5      R                  R	                  5       5        M>     [        X4SS9  S S S 5        g ! , (       d  f       g = f)NTr   rT   )r   rV   rW   datar_   extendr   )r7   rO   rP   r[   r]   r\   s         r,   rN   rN   c   s     
	+MM'*//668	A  s!3!8!8!?!?!AB Ia@ 
		s   B	B
B,),typingr   r"   pytestnumpy.testingr   	thinc.apir   r   r   thinc.typesr   r	   spacy.lang.enr
   spacy.mlr   r   spacy.ml._character_embedr   spacy.tokensr   spacy.vocabr   rJ   r   l0l1rK   asarrayr8   	list_intsrA   raggedr-   markparametrizer<   rB   LAYERSrQ   r6   r@   rN    r=   r,   <module>rv      s\      - = = ' ! 4 4  	/0!fq!fq!fq!f%!fq!fq!fvv~~b~,cffnnRsn.KLVV^^Bc^*CFFNN2SN,IJ	r%	svv~~q!fC~8	9 !QRF SF )-A .A qQ[9sCj!8:y9_hj&)
 16:E ;E
cDM)*
59#Y
JNw-
AcG#$A/3CyADKA	AcF"#	A.23i	ACI	Ar=   