
    i?              	       <   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d Z	d Z
e j                  j                  dd	d
gddgdg      d        Ze j                  j                  dd	d
gdgg dg      e j                  j                  ddgdgdg      d               Ze j                  j                  d      d        Zd Ze j                  j                  dg dg dg ddg      d        Ze j                  j                  dg dg ddg      d         Ze j                  j                  dg d!g d"d#g      d$        Ze j                  j                  dg d%d&d'd(d)d*g      d+        Ze j                  j                  dg d,d-d.gd/g      d0        Zd1 Ze j                  j                  dg d,d2d3gd/g      d4        Ze j                  j                  dg d,g d5d/g      d6        Ze j                  j                  dg d,d-d.gd7gd8d9g      d:        Ze j                  j                  dg d,g d5d7gd8d9g      d;        Ze j                  j                  dg d,d7gd9g d,d<d-id9g d,d<d=d>gid9g d,d<d=ggid9g      d?        Ze j                  j                  dg d,d-d.gd&d'd@d'd&d@dAdBg      dC        Ze j                  j                  dg d,dDd&d'dEidFg      dG        ZdH ZdI Z dJ Z!dK Z"e j                  jG                  dL      dM        Z$y)N    N)Doc)Example)to_ternary_int)Vocabc                     t               } t        j                  t              5  t	        d d        d d d        t        j                  t              5  t	        t        | dg      d        d d d        t        j                  t              5  t	        d t        | dg             d d d        y # 1 sw Y   ~xY w# 1 sw Y   PxY w# 1 sw Y   y xY w)Nhiwords)r   pytestraises	TypeErrorr   r   )vocabs    v/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/spacy/tests/training/test_new_example.py&test_Example_init_requires_doc_objectsr   	   s    GE	y	! d	y	! 0E$($/0	y	! 0c%v./0 0	 0 00 0s#   B.B:C.B7:CCc                      t        j                  t        t               ddg      dddgi      } t	        | j
                  t              sJ t	        | j                  t              sJ y )Nhelloworldr	   r
   )r   	from_dictr   r   
isinstancexy)examples    r   test_Example_from_dict_basicr      sY    EGGW-.7G:L0MG gii%%%gii%%%    annotsicecream	somethingsuch)r
   weirdannotsc                     t               }t        || d         }t        j                  t              5  t        j                  ||        d d d        y # 1 sw Y   y xY wNr
   r	   )r   r   r   r   KeyErrorr   r   r   r   	predicteds      r   test_Example_from_dict_invalidr&      sL     GEE1I	x	  -)V,- - -   AA
pred_wordsicecream)icer   NNr
   tagsc                     t               }t        ||       }t        j                  ||      }t	        |j
                        D ]  \  }}|j                  |d   |   k(  rJ  |j                  dd      }||D cg c]  }d c}k(  sJ y c c}w )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	62Gg//0 /5zzVF^A..../&&u&=L)4QD44444s   :	Bzignore::UserWarningc                  8   g d} g d}g d}||d}t               }t        ||       }t        j                  ||      }|j	                  dd      }|g d	k(  sJ t        j                  ||j                               }|j	                  dd      }	|	g d	k(  sJ y )
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!95FGEE,I  F3H(($(?MTTTT  H,<,<,>?H(($(?MTTTTr   c                      g d} g d}g d}||d}t               }t        ||       }t        j                  ||      }|j	                  dd      }|g d	k(  sJ y )
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   sd    JJJJ@I!95FGEE,I	6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                    t               }t        || d         }t        j                  ||       }t	        |j
                        D ]=  \  }}|j                  | d   |   k(  sJ |j                  j                  | d   |   k(  r=J  y )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   s     GEE1I	62Gg//0 25zzVF^A....zz||vgq11112r   )Sarahz'ssisterflew)zNounType=prop|Number=singzPoss=yeszNumber=singzTense=past|VerbForm=fin)r
   morphsc                     t               }t        || d         }t        j                  ||       }t	        |j
                        D ]%  \  }}t        |j                        | d   |   k(  r%J  y )Nr
   r	   rr   )r   r   r   r   r3   r4   strmorphrm   s         r   &test_Example_from_dict_with_morphologyrv   c   sl     GEE1I	62Gg//0 755;;6(#3A#66667r   )Thisisonesentencethisrx   another)rf   Fr   NTg)r
   sent_startsc                    t               }t        || d         }t        j                  ||       }t	        t        |j                  j                              dk(  sJ t        |j                        D ]]  \  }}t        | d   |         dk(  r|j                  du r)J t        | d   |         dk(  r|j                  LJ |j                  du r]J  y )	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	62GtG%%++,-222g//0 05&/23q8&&$...F=1!45:&&...&&%///0r   )rw   rx   arz         ?              ?)cat1cat2cat3)r
   catsc                 r   t               }t        || d         }t        j                  ||       }t	        t        |j                  j                              dk(  sJ |j                  j                  d   dk(  sJ |j                  j                  d   dk(  sJ |j                  j                  d   d	k(  sJ y )
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	6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                    t               }t        || d         }t        j                  ||       }t	        t        |j                  j                              dk(  sJ t        d      D cg c]  }|j                  |   j                   c}g dk(  sJ |j                  d      g dk(  sJ |j                  d   j                  dk(  sJ |j                  d	   j                  dk(  sJ |j                  d
   j                  dk(  sJ y c c}w )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	62GtG%%**+,111388<aGa ))<@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                  <   g dg d} t               }t        || d         }t        j                  ||       }|j                  j                  d      sJ t        t        |j                  j                              dk(  sJ t        d |j                  D              sJ d | d<   t        j                  ||       }|j                  j                  d      rJ | j                  dd        t        j                  ||       }|j                  j                  d      rJ y )	Nr   r   r
   r	   r   r   c              3   :   K   | ]  }|j                   d k(    yw)r   N)r   ).0r7   s     r   	<genexpr>z=test_Example_from_dict_with_empty_entities.<locals>.<genexpr>   s     Du~~$Ds   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	62G++I666tG%%**+,111D'2C2CDDDDF:	62G  //	:::
JJz4 	62G  //	::::r   )r      r   )      r   c                    t               }t        || d         }t        j                  t              5  t        j                  ||       }d d d        t        t        j                  j                              dk(  sJ y # 1 sw Y   7xY w)Nr
   r	   r   )r   r   r   warnsUserWarningr   r   r   r   r4   r   r   s       r   ,test_Example_from_dict_with_entities_invalidr      sr     GEE1I	k	" 7##Iv67tG%%**+,1117 7s   BB
)r   )   r   r   r   c                     t               }t        || d         }t        j                  t              5  t        j                  ||        d d d        y # 1 sw Y   y xY wr"   r   r   r   r   
ValueErrorr   r   r$   s      r   0test_Example_from_dict_with_entities_overlappingr      sL     GEE1I	z	" -)V,- - -r'   )r   rf   PERSONcitiespeopler
   spansc                 :   t               }t        || d         }t        j                  ||       }t	        t        |j                  j                              dk(  sJ t	        t        |j                  j                  d               dk(  sJ t	        t        |j                  j                  d               dk(  sJ |j                  j                  d   D ]  }|j                  dk(  rJ  |j                  j                  d   D ]  }|j                  d	k(  rJ  y )
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	62GtG%%**+,111tG%%++H5671<<<tG%%++H5671<<<!!''1 ${{e###$!!''1 '{{h&&&'r   c                 :   t               }t        || d         }t        j                  ||       }t	        t        |j                  j                              dk(  sJ t	        t        |j                  j                  d               dk(  sJ t	        t        |j                  j                  d               dk(  sJ |j                  j                  d   D ]  }|j                  dk(  rJ  |j                  j                  d   D ]  }|j                  d	k(  rJ  y )
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                     t               }t        || d         }t        j                  t              5  t        j                  ||        d d d        y # 1 sw Y   y xY wr"   r   r$   s      r   )test_Example_from_dict_with_spans_invalidr   )  sL    , GEE1I	z	" -)V,- - -r'   )Q60Q64))r   r   )r   r   )r
   r   linksc                    t               }t        || d         }t        j                  ||       }|j                  d   j
                  dk(  sJ |j                  d   j
                  dk(  sJ |j                  d   j
                  dk(  sJ |j                  d   j
                  dk(  sJ |j                  d	   j
                  dk(  sJ |j                  d
   j
                  dk(  sJ |j                  d   j
                  dk(  sJ y )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	6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                     t               }t        || d         }t        j                  t              5  t        j                  ||        d d d        y # 1 sw Y   y xY wr"   r   r$   s      r   )test_Example_from_dict_with_links_invalidr   _  sL     GEE1I	z	" -)V,- - -r'   c                  x   t               } t        | g d      }dg di}t        j                  ||      }t	        t        |j                  j                              dk(  sJ t        | g d      }dg di}t        j                  ||      }t	        t        |j                  j                              dk(  sJ y )	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			9f	-BtBLL&&'(A--- E!JKI-.F			9f	-BtBLL&&'(A---r   c                     t               } g d}g d}g d}||d}|||d}t        | |      }t        j                  ||      }|j                  D cg c]  }|j
                  j                   c}g dk(  sJ t        j                  ||      }	|	j                  D cg c]  }|j
                  j                   c}|k(  sJ y c c}w c c}w )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AFFHH26HHHH !!)_=I'112AFFHH2e;;;	 3 3s   CC	c                     t               } g d}g d}g d}|||d}t        | |      }t        j                  ||      }|j                  D cg c]  }|j
                  j                   }}|d   |d   k(  sJ |d   |d   k(  sJ |d   |d   k(  sJ |d	   |d	   k(  sJ |d
   |d
   k(  sJ g d}	|j                  D cg c]  }|j                          c}|	k(  sJ g d}	|j                         |	k(  sJ y c c}w c c}w )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ud;FE'I	62G&-&7&78AFFHH8L8?eAh&&&?eAh&&&?eAh&&&?eAh&&&?eAh&&&4H")"3"34QAJJL4@@@8H**,888 9 5s   C9 C>c                     g d}g d}t        | |      }t        | ||      }t        ||      }|j                  dd      |k(  sJ y )N)r    b)ASPACEr   r	   r-   r0   Tr1   )r   r   r6   )en_vocabr
   r.   r%   r4   r   s         r   test_Example_aligned_whitespacer     sP    EDHE*IHE5Ii+Gu5===r   11260c                  .   g ddgdgdd} t               }t        || d         }t        j                  ||       }t	        |j
                  j                  d         d	k(  sJ t	        |j
                  j                  d
         d	k(  sJ |j                         }d|d   v sJ |d   d   d   | d   d   k(  sJ |d   d   d
   | d   d
   k(  sJ t        j                  ||      }t	        |j
                  j                  d         t	        |j
                  j                  d         k(  sJ t	        |j
                  j                  d
         t	        |j
                  j                  d
         k(  sJ |j
                  j                  d   D ]5  }|j                  dk(  sJ |j                  dk(  sJ |j                  dk(  r5J  |j
                  j                  d
   D ]5  }|j                  dk(  sJ |j                  dk(  sJ |j                  dk(  r5J  y )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     sJ    3)*+,
F GEE1I	6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&&&!###$ !!''1 ${{h&&&yyC!###$r   )%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   