
    h?              	       <   S SK r S SKJr  S SKJr  S SKJr  S SKJr  S r	S r
\ R                  R                  SS	S
/SS/S./5      S 5       r\ R                  R                  SS	S
/S// SQ/5      \ R                  R                  SS/S/S./5      S 5       5       r\ R                  R                  S5      S 5       rS r\ R                  R                  S/ SQ/ SQ/ SQS./5      S 5       r\ R                  R                  S/ SQ/ SQS./5      S  5       r\ R                  R                  S/ S!Q/ S"QS#./5      S$ 5       r\ R                  R                  S/ S%QS&S'S(S).S*./5      S+ 5       r\ R                  R                  S/ S,QS-S./S/./5      S0 5       rS1 r\ R                  R                  S/ S,QS2S3/S/./5      S4 5       r\ R                  R                  S/ S,Q/ S5QS/./5      S6 5       r\ R                  R                  S/ S,QS-S./S7/S8.S9./5      S: 5       r\ R                  R                  S/ S,Q/ S5QS7/S8.S9./5      S; 5       r\ R                  R                  S/ S,QS7/S9./ S,QS<S-0S9./ S,QS<S=S>/0S9./ S,QS<S=//0S9./5      S? 5       r\ R                  R                  S/ S,QS-S./S&S'S@.S'S&S@.SA.SB./5      SC 5       r\ R                  R                  S/ S,QSDS&S'SE.0SF./5      SG 5       rSH rSI r SJ r!SK r"\ R                  RG                  SL5      SM 5       r$g)N    N)Doc)Example)to_ternary_int)Vocabc            	         [        5       n [        R                  " [        5         [	        S S 5        S S S 5        [        R                  " [        5         [	        [        U S/S9S 5        S S S 5        [        R                  " [        5         [	        S [        U S/S95        S S S 5        g ! , (       d  f       N= f! , (       d  f       NX= f! , (       d  f       g = f)Nhiwords)r   pytestraises	TypeErrorr   r   )vocabs    _/home/james-whalen/.local/lib/python3.13/site-packages/spacy/tests/training/test_new_example.py&test_Example_init_requires_doc_objectsr   	   s    GE	y	!d 
"	y	!E$($/ 
"	y	!c%v./ 
"	!	 
"	!	!	!	!	!s#   B+B<C+
B9<
C

Cc                      [         R                  " [        [        5       SS/S9SSS/05      n [	        U R
                  [        5      (       d   e[	        U R                  [        5      (       d   eg )Nhelloworldr	   r
   )r   	from_dictr   r   
isinstancexy)examples    r   test_Example_from_dict_basicr      s_    EGGW-.7G:L0MG gii%%%%gii%%%%    annotsicecream	somethingsuch)r
   weirdannotsc                     [        5       n[        XS   S9n[        R                  " [        5         [
        R                  " X 5        S S S 5        g ! , (       d  f       g = fNr
   r	   )r   r   r   r   KeyErrorr   r   r   r   	predicteds      r   test_Example_from_dict_invalidr&      s?     GEE1I	x	 ), 
!	 	    A
A
pred_wordsicecream)icer   NNr
   tagsc                    [        5       n[        X S9n[        R                  " X15      n[	        UR
                  5       H  u  pVUR                  US   U   :X  a  M   e   UR                  SSS9nXs Vs/ s H  nSPM     sn:X  d   eg s  snf )Nr	   r.   TAGT	as_stringr,   )r   r   r   r   	enumerate	referencetag_get_aligned)	r(   r   r   r%   r   r*   tokenaligned_tags_s	            r    test_Example_from_dict_with_tagsr:   %   s    
 GEE,I	2Gg//0zzVF^A.... 1&&u&=L)4)QD)44444s   4B	zignore::UserWarningc                  &   / SQn / SQn/ SQnXS.n[        5       n[        X@S9n[        R                  " XS5      nUR	                  SSS9nU/ S	Q:X  d   e[        R                  " XVR                  5       5      nUR	                  SSS9n	U	/ S	Q:X  d   eg )
N)Applysome	sunscreenunlessyoucannot)r<   r=   sunscreenr?   r@   cannot)VERBDETNOUNrH   SCONJPRONrF   r-   r	   r0   Tr1   )rF   rG   rH   rI   rJ   rF   rF   )r   r   r   r   r6   to_dict)
r(   
gold_words	gold_tagsr   r   r%   example1aligned_tags1example2aligned_tags2s
             r   test_aligned_tagsrR   3   s    NJNJHI!5FGEE,I  3H(($(?MTTTT  ,<,<,>?H(($(?MTTTTr   c                      / SQn / SQn/ SQnXS.n[        5       n[        X@S9n[        R                  " XS5      nUR	                  SSS9nU/ S	Q:X  d   eg )
N)	Applysomer>   r?   r@   rA   rB   )r<   somesunrD   r?   r@   rE   )rF   rG   rH   rI   rJ   rF   r-   r	   r0   Tr1   )NNrI   rJ   rF   rF   )r   r   r   r   r6   )r(   rL   rM   r   r   r%   r   r8   s           r   test_aligned_tags_multirV   D   s^    JJJJ@I!5FGEE,I	2G&&u&=LHHHHr   IlikeLondonandBerlin.nsubjROOTdobjccconjpunct   rf   rf      rg   rf   )r
   depsheadsc                    [        5       n[        XS   S9n[        R                  " X 5      n[	        UR
                  5       H?  u  pEUR                  U S   U   :X  d   eUR                  R                  U S   U   :X  a  M?   e   g )Nr
   r	   rh   ri   )	r   r   r   r   r3   r4   dep_headr*   r   r   r%   r   r*   r7   s         r   !test_Example_from_dict_with_parsern   P   sz     GEE1I	2Gg//0zzVF^A....zz||vgq1111 1r   )Sarahz'ssisterflew)zNounType=prop|Number=singzPoss=yeszNumber=singzTense=past|VerbForm=fin)r
   morphsc                     [        5       n[        XS   S9n[        R                  " X 5      n[	        UR
                  5       H&  u  pE[        UR                  5      U S   U   :X  a  M&   e   g )Nr
   r	   rr   )r   r   r   r   r3   r4   strmorphrm   s         r   &test_Example_from_dict_with_morphologyrv   c   sa     GEE1I	2Gg//05;;6(#3A#6666 1r   )Thisisonesentencethisrx   another)rf   Fr   NTg)r
   sent_startsc                    [        5       n[        XS   S9n[        R                  " X 5      n[	        [        UR                  R                  5      5      S:X  d   e[        UR                  5       Hd  u  pE[        U S   U   5      S:X  a  UR                  SL d   eM-  [        U S   U   5      S:X  a  UR                  b   eMS  UR                  SL a  Md   e   g )	Nr
   r	   rg   r~   rf   Tr   F)r   r   r   r   lenlistr4   sentsr3   r   is_sent_startrm   s         r   &test_Example_from_dict_with_sent_startr   y   s     GEE1I	2GtG%%++,-222g//0&/23q8&&$...F=1!45:&&...&&%/// 1r   )rw   rx   arz         ?              ?)cat1cat2cat3)r
   catsc                 r   [        5       n[        XS   S9n[        R                  " X 5      n[	        [        UR                  R                  5      5      S:X  d   eUR                  R                  S   S:X  d   eUR                  R                  S   S:X  d   eUR                  R                  S   S	:X  d   eg )
Nr
   r	      r   r   r   r   r   r   )r   r   r   r   r   r   r4   r   r   r   r%   r   s       r    test_Example_from_dict_with_catsr      s     GEE1I	2GtG%%**+,111!!&)S000!!&)S000!!&)S000r   rX   rY   NewYorkr[   r\   r]         LOC      r   r
   entitiesc                 "   [        5       n[        XS   S9n[        R                  " X 5      n[	        [        UR                  R                  5      5      S:X  d   e[        S5       Vs/ s H  oCR                  U   R                  PM     sn/ SQ:X  d   eUR                  S5      / SQ:X  d   eUR                  S   R                  S:X  d   eUR                  S	   R                  S:X  d   eUR                  S
   R                  S:X  d   eg s  snf )Nr
   r	   rg   r   )Or   BrX   r   r   r   ENT_IOB)rg   rg   r   rf   rg   r   rg   r   r      )r   r   r   r   r   r   r4   entsrangeent_iob_r6   	ent_type_)r   r   r%   r   r*   s        r   $test_Example_from_dict_with_entitiesr      s     GEE1I	2GtG%%**+,111388<8aa ))8<@ccccy)-BBBBQ))U222Q))U222Q))U222 =s   ("Dc                  ^   / SQ/ S.n [        5       n[        XS   S9n[        R                  " X 5      nUR                  R                  S5      (       d   e[        [        UR                  R                  5      5      S:X  d   e[        S UR                   5       5      (       d   eS U S'   [        R                  " X 5      nUR                  R                  S5      (       a   eU R                  SS 5        [        R                  " X 5      nUR                  R                  S5      (       a   eg )	Nr   r   r
   r	   r   r   c              3   >   #    U  H  oR                   S :H  v   M     g7f)r   N)r   ).0r7   s     r   	<genexpr>=test_Example_from_dict_with_empty_entities.<locals>.<genexpr>   s     D2C~~$2Cs   r   )r   r   r   r   r4   has_annotationr   r   r   allpopr   s       r   *test_Example_from_dict_with_empty_entitiesr      s	   CF GEE1I	2G++I6666tG%%**+,111D'2C2CDDDDDF:	2G  //	::::
JJz4 	2G  //	:::::r   )r      r   )      r   c                     [        5       n[        XS   S9n[        R                  " [        5         [
        R                  " X 5      nS S S 5        [        [        WR                  R                  5      5      S:X  d   eg ! , (       d  f       N== f)Nr
   r	   r   )r   r   r   warnsUserWarningr   r   r   r   r4   r   r   s       r   ,test_Example_from_dict_with_entities_invalidr      sg     GEE1I	k	"##I6 
#tG%%**+,111 
#	"s   A??
B)r   )   r   r   r   c                     [        5       n[        XS   S9n[        R                  " [        5         [
        R                  " X 5        S S S 5        g ! , (       d  f       g = fr"   r   r   r   r   
ValueErrorr   r   r$   s      r   0test_Example_from_dict_with_entities_overlappingr      s?     GEE1I	z	"), 
#	"	"r'   )r   rf   PERSONcitiespeopler
   spansc                 D   [        5       n[        XS   S9n[        R                  " X 5      n[	        [        UR                  R                  5      5      S:X  d   e[	        [        UR                  R                  S   5      5      S:X  d   e[	        [        UR                  R                  S   5      5      S:X  d   eUR                  R                  S    H  nUR                  S:X  a  M   e   UR                  R                  S    H  nUR                  S	:X  a  M   e   g )
Nr
   r	   r   r   rg   r   rf   r   r   
r   r   r   r   r   r   r4   r   r   label_r   r   r%   r   spans        r   !test_Example_from_dict_with_spansr           GEE1I	2GtG%%**+,111tG%%++H5671<<<tG%%++H5671<<<!!''1{{e### 2!!''1{{h&&& 2r   c                 D   [        5       n[        XS   S9n[        R                  " X 5      n[	        [        UR                  R                  5      5      S:X  d   e[	        [        UR                  R                  S   5      5      S:X  d   e[	        [        UR                  R                  S   5      5      S:X  d   eUR                  R                  S    H  nUR                  S:X  a  M   e   UR                  R                  S    H  nUR                  S	:X  a  M   e   g )
Nr
   r	   r   r   r   r   rf   r   r   r   r   s        r   -test_Example_from_dict_with_spans_overlappingr     r   r   r   r   r   c                     [        5       n[        XS   S9n[        R                  " [        5         [
        R                  " X 5        S S S 5        g ! , (       d  f       g = fr"   r   r$   s      r   )test_Example_from_dict_with_spans_invalidr   )  s?    , GEE1I	z	"), 
#	"	"r'   )Q60Q64))r   r   )r   r   )r
   r   linksc                    [        5       n[        XS   S9n[        R                  " X 5      nUR                  S   R
                  S:X  d   eUR                  S   R
                  S:X  d   eUR                  S   R
                  S:X  d   eUR                  S   R
                  S:X  d   eUR                  S	   R
                  S:X  d   eUR                  S
   R
                  S:X  d   eUR                  S   R
                  S:X  d   eg )Nr
   r	   r    rf   rg   r   r   r   r   r      )r   r   r   r   r4   
ent_kb_id_r   s       r   !test_Example_from_dict_with_linksr   E  s    GEE1I	2GQ**b000Q**b000Q**e333Q**e333Q**b000Q**e333Q**b000r   )r      )Q7381115Q2146908)r
   r   c                     [        5       n[        XS   S9n[        R                  " [        5         [
        R                  " X 5        S S S 5        g ! , (       d  f       g = fr"   r   r$   s      r   )test_Example_from_dict_with_links_invalidr   _  s?     GEE1I	z	"), 
#	"	"r'   c                  p   [        5       n [        U / SQS9nS/ SQ0n[        R                  " X5      n[	        [        UR                  R                  5      5      S:X  d   e[        U / SQS9nS/ SQ0n[        R                  " X5      n[	        [        UR                  R                  5      5      S:X  d   eg )	N)Onerz   r]   ry   morer	   r~   )rf   r   r   rf   r   rg   )r   rz   rB   ry   r   )rf   r}   r   r   r   rf   )r   r   r   r   r   r   r4   r   )r   r%   r   exs       r    test_Example_from_dict_sentencesr   o  s    GEE!HII_-F			9	-BtBLL&&'(A--- E!JKI-.F			9	-BtBLL&&'(A---r   c                     [        5       n / SQn/ SQn/ SQnXS.nXUS.n[        XS9n[        R                  " Xd5      nUR                   Vs/ s H  oR
                  R                  PM     sn/ SQ:X  d   e[        R                  " Xe5      n	U	R                   Vs/ s H  oR
                  R                  PM     snU:X  d   eg s  snf s  snf )NrW   r^   re   )r
   ri   r
   ri   rh   r	   )r   rf   rg   r   r   r   )r   r   r   r   r4   rl   r*   )
r   r
   rh   ri   annots_head_onlyannots_head_depr%   	example_1t	example_2s
             r   test_Example_missing_depsr     s    GE9E;DE!&7 %tDOE'I !!)>I'1121FFHH126HHHH !!)=I'1121FFHH12e;;;	 3 3s   CC	c                     [        5       n / SQn/ SQn/ SQnXUS.n[        XS9n[        R                  " XT5      nUR                   Vs/ s H  owR
                  R                  PM     nnUS   US   :X  d   eUS   US   :X  d   eUS   US   :X  d   eUS	   US	   :X  d   eUS
   US
   :X  d   e/ SQn	UR                   Vs/ s H  owR                  5       PM     snU	:X  d   e/ SQn	UR                  5       U	:X  d   eg s  snf s  snf )NrW   )r_   r`   ra   Nrc   rd   )rf   rf   rf   Nrg   rf   r   r	   r   rf   rg   r   r   )TTTFTT)TFFFFF)	r   r   r   r   r4   rl   r*   has_headget_aligned_sent_starts)
r   r
   rh   ri   r   r%   r   r   parsed_headsexpecteds
             r   test_Example_missing_headsr     s    GE9E;D!Ed;FE'I	2G&-&7&78&7FFHH&7L8?eAh&&&?eAh&&&?eAh&&&?eAh&&&?eAh&&&4H")"3"34"3QJJL"34@@@8H**,888 9 5s   	C?Dc                 |    / SQn/ SQn[        XS9n[        XUS9n[        X45      nUR                  SSS9U:X  d   eg )N)r    b)ASPACEr   r	   r-   r0   Tr1   )r   r   r6   )en_vocabr
   r.   r%   r4   r   s         r   test_Example_aligned_whitespacer     sJ    EDH*IH5Ii+Gu5===r   11260c                  J   / SQS/S/S.S.n [        5       n[        XS   S9n[        R                  " X 5      n[	        UR
                  R                  S   5      S	:X  d   e[	        UR
                  R                  S
   5      S	:X  d   eUR                  5       nSUS   ;   d   eUS   S   S   U S   S   :X  d   eUS   S   S
   U S   S
   :X  d   e[        R                  " X$5      n[	        UR
                  R                  S   5      [	        UR
                  R                  S   5      :X  d   e[	        UR
                  R                  S
   5      [	        UR
                  R                  S
   5      :X  d   eUR
                  R                  S    H9  nUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  a  M9   e   UR
                  R                  S
    H9  nUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  a  M9   e   g )N)rX   rY   r   r   r]   )r   r   r   r   )r   rf   r   r   r   r   r
   r	   r   rf   r   r   doc_annotationr   zNew Yorkr   r   rX   r   )r   r   r   r   r   r4   r   rK   r   text
start_char)r   r   r%   r   output_dictoutput_exampler   s          r   test_issue11260r     s:    3)*+,
F GEE1I	2Gw  &&x01Q666w  &&x01Q666//#Kk"23333'(1(;vgx?XXXX'(1(;vgx?XXXX&&y>N~''--h78C)=    ~''--h78C)=    !!''1{{e###yyJ&&&!### 2 !!''1{{h&&&yyC!### 2r   )%r   spacy.tokensr   spacy.training.exampler   
spacy.utilr   spacy.vocabr   r   r   markparametrizer&   r:   filterwarningsrR   rV   rn   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   issuer    r   r   <module>r     sg     * % 0& %);:OPQ-- E7#j\3GH zlTF$K#LM5 N5 12U 3U 	I  CD'	
	2	2  7	

77  P>	
00  5 #s;	
11  H'9	
33;*  H	
22  H	
	--  H)?;+,	

'
'  HL+,	

'
'  H&'	

 H/	

 HB(	

 H!&	
*-+*-  H'9!$S1"%c2	
	
1
1  HCSAB	
--.&<&9,> 7"$ "$r   