
    i:                     8   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
 ddlmZ ej                  d        Zej                  d        Zej                  d	        Zd
 Zd Zd Zd Zej*                  j-                  dg d      d        Zej*                  j-                  dg d      d        Zd Zej*                  j5                  d      d        Zej*                  j9                  d      d        Zej*                  j9                  d      d        Zy)    N)Mock)DependencyMatcher)DocToken   )clean_underscorec                 8    g d}g d}g d}t        | |||      S )N)	Thequickbrownfoxjumpedoverthelazyr   )	   r   r      r   r      r      )	detamodr   nsubjROOTpreppobjr   r   wordsheadsdeps)r   )en_vocabr   r   r   s       |/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/spacy/tests/matcher/test_dependency_matcher.pydocr"      s"    TE'ERDxuE==    c                 
   d }| j                  |      }dddiddddddd	d
ddd|did
g}dddiddddddid
dddddid
g}dddiddddddid
dddddid
g}dddiddddddid
g}dddiddddddid
g}|||||gS )Nc                 \    t        t        j                  d      j                  |             S )Nzbrown|yellow)boolrecompilematch)texts    r!   is_brown_yellowz!patterns.<locals>.is_brown_yellow   s!    BJJ/55d;<<r#   r   ORTHRIGHT_IDRIGHT_ATTRS>qr   r   r,   DEPLEFT_IDREL_OPr.   r/   rTr   fox1.r   >>r   )add_flag)r    r+   IS_BROWN_YELLOWpattern1pattern2pattern3pattern4pattern5s           r!   patternsrB      sK   = ''8O FE?;$+F;		
 +T2		
H" vx.@A"E?		
  "F+		
H" vx.@A"E?		
 "G,		
H" vx.@A"E?		
H vx.@A"E?		
H h(H==r#   c                     t        |       }t               }t        dt        |      dz         D ]E  }|dk(  r|j	                  d|d   g|       !|j	                  dt        |      z   ||dz
     g       G |S )N   r=   r   on_matchpattern)r   r   rangelenaddstr)r    rB   r"   matchermockis         r!   dependency_matcherrO   d   sz    )G6D1c(ma'( ?6KK
Xa[MDKAKK	CF*Xa!e_,=>	? Nr#   c                    t        |       dk(  sJ d| v sJ | j                  d      d |d   gfk(  sJ  | |      }t        |      dk(  sJ |d   d   g dk(  sJ |d   d   g dk(  sJ |d   d   g d	k(  sJ |d
   d   dd
gk(  sJ |d   d   dd
gk(  sJ |d   d   ddgk(  sJ |dd } | |      }t        |      dk(  sJ |d   d   g dk(  sJ |d   d   g dk(  sJ |d   d   g d	k(  sJ |d
   d   dd
gk(  sJ |d   d   dd
gk(  sJ y )Nr   r?   r      r   rD   r   rD   r   r   r   r   r   r   r   r   r   r   )rI   get)rO   r"   rB   matchesspans        r!   test_dependency_matcherrX   q   s   !"a'''++++!!*-$!1FFFF %Gw<11:a=I%%%1:a=I%%%1:a=I%%%1:a=QF"""1:a=QF"""1:a=QF"""q8D &Gw<11:a=I%%%1:a=I%%%1:a=I%%%1:a=QF"""1:a=QF"""r#   c                    t        |       }t        dt        |      dz         D ]'  }|j                  dt	        |      z   ||dz
     g       )  ||      }|d   d   g dk(  sJ |d   d   g dk(  sJ |d   d   g dk(  sJ |d   d   d	dgk(  sJ |d	   d   d	dgk(  sJ |d
   d   d	dgk(  sJ t        j                  |      }t        j                  |      }t        |      t        |      k(  sJ  ||      }|d   d   g dk(  sJ |d   d   g dk(  sJ |d   d   g dk(  sJ |d   d   d	dgk(  sJ |d	   d   d	dgk(  sJ |d
   d   d	dgk(  sJ y )NrD   rG   r   rR   rS   r   rT   r   r   r   r   )r   rH   rI   rJ   rK   pickledumpsloads)r    rB   r"   rL   rN   rV   b	matcher_rs           r!   test_dependency_matcher_pickler_      s   )G1c(ma'( ;IA&!a%(9:; clG1:a=I%%%1:a=I%%%1:a=I%%%1:a=QF"""1:a=QF"""1:a=QF"""WAQIw<3y>)))nG1:a=I%%%1:a=I%%%1:a=I%%%1:a=QF"""1:a=QF"""1:a=QF"""r#   c                 V   dddidddddddd	ddd
ddid	g}t        |       }|j                  d|g       t        j                  t              5  |j                  d|       d d d        t        j                  t              5  |j                  d|dd  g       d d d        t        j                  t              5  t        j                  |      }|d   d= |j                  d|g       d d d        t        j                  t              5  t        j                  |      }|d   d= |j                  d|g       d d d        t        j                  t              5  t        j                  |      }|d   d= |j                  d|g       d d d        t        j                  t              5  t        j                  |      }|d   d= |j                  d|g       d d d        t        j                  t              5  t        j                  |      }|d   d= |j                  d|g       d d d        t        j                  t              5  t        j                  |      }d|d   d<   |j                  d|g       d d d        t        j                  t              5  t        j                  |      }d|d   d<   |j                  d|g       d d d        t        j                  t              5  t        j                  |      }d|d   d<   |j                  d|g       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   [xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   OxY w# 1 sw Y   
xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r,   r-   r0   r1   r   r   r2   r4   r7   r   FOUNDEDrD   r   r.   r/   r5   r6   z!!!BARFOO)	r   rJ   pytestraises
ValueErrorcopydeepcopywarnsUserWarning)r    rG   rL   r>   s       r!   *test_dependency_matcher_pattern_validationrk      s;   FE?;$+F;		
 "G,		
G   )GKK	G9%	z	" (Iw'( 
z	" .I}-. 
z	" +==)QK
#Iz*+ 
z	" +==)QK
#Iz*+ 
z	" +==)QK&Iz*+ 
z	" +==)QK	"Iz*+ 
z	" +==)QK!Iz*+
 
z	" +==) %HIz*+
 
z	" +==)"'JIz*+
 
k	" +==)"EIz*+ +K( (. .+ ++ ++ ++ ++ +
+ +
+ +
+ +sx   L+L8=/M/M/M-/M,=/M91N1N11N+L58MMMM),M69NNNN(c                 T   dddidg}dddidg}t        |       }t               }|j                  d|g|       |j                  d|g|        ||      }t        |      dk(  sJ |j	                  ||d	|       t        |       }|j                  d|g        ||      }||k(  sJ y )
Nr   r,   r-   NOMATCHrG   rE   nomatch_patternrD   r   )r   r   rJ   rI   assert_called_once_with)	r    r"   rG   rn   rL   rM   rV   matcher2matches2s	            r!    test_dependency_matcher_callbackrr      s    fg->?G fi-@AO  )G6DKK	G9tK4KK!O#4tKDclGw<1  #q': !*HLLWI&}Hhr#   zop,num_matches))r9   r   ).*   );r   );*rt   c                    t        | g ddz  g ddgdz        }d}dD ]  }dd	|id
d|di dg}t        |       }|j                  d|g        ||      }|t        |      z  }|D ]|  }	|	\  }
}|dk(  r|d   |d   dz
  k(  s;J |dk(  r|d   |d   dz   k(  s&J |dk(  r|d   |d   k  sJ |dk(  r|d   |d   kD  sJ ||d      j                  ||d      j                  k(  r|J   ||k(  sJ y )N)ar]   cder   )
r   r   r   r   r   r   r   r   r   r   dep
   r   r   1r,   r-   2r4   Ar9   rD   ru   rs   rv   )r   r   rJ   rI   sent)r    opnum_matchesr"   match_countr*   rG   rL   rV   r)   match_id	token_idss               r!   &test_dependency_matcher_precedence_opsr      sd    '!+,Wr\	C K) Dfd^<rs2N
 $H-C'##,s7|# 	DE"'HiSy |y|a'7777s |y|a'7777t |il222t |il222y|$))S1->-C-CCCC	DD, +%%%r#   zleft,right,op,num_matches)E)r   r   <rD   )r   r   r   r   )r   r   r   r   )r   r   r0   r   )r   r   r0   rD   )r   r   r0   r   )r   r   <<r   )r   r   r   r   )r   r   r   r   )r   r   r:   r   )r   r   r:   rD   )r   r   r:   r   )r   r   r9   rD   )r   r   r9   rD   )r   r   r9   r   )r   r   r9   r   )r   r   ru   r   )r   r   ru   r   )r   r   ru   r   )r   r   ru   r   )r   r   rs   r   )r   r   rs   r   )r   r   rs   rD   )r   r   rv   rD   )r   r   rv   r   )r   r   rv   rD   )r   r   rv   rD   )r   r   $+rD   )r   r   r   r   )r   r   r   r   )r   r   $-r   )r   r   r   rD   )r   r   r   r   )r   r   $++rD   )r   r   r   r   )r   r   r   r   )r   r   $--r   )r   r   r   rD   )r   r   r   r   )r   r   <+r   )r   r   r   r   )r   r   r   r   )r   r   r   rD   )r   r   <++rD   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   <-r   )r   r   r   r   )r   r   r   r   )r   r   r   rD   )r   r   <--r   )r   r   r   r   )r   r   r   rD   )r   r   >+r   )r   r   r   r   )r   r   r   r   )r   r   r   rD   )r   r   >++rD   )r   r   r   r   )r   r   r   r   )r   r   >-r   )r   r   r   r   )r   r   r   r   )r   r   r   rD   )r   r   >--r   )r   r   r   rD   )r   r   r   rD   )r   r   r   r   c                     |}||k(  r|dz   }|d|id|||d|idg}t        |       }|j                  d|g        ||      }	t        |	      |k(  sJ y )Nr   LOWERr-   r4   rG   )r   rJ   rI   )
r    r"   leftrightr   r   right_idrG   rL   rV   s
             r!   test_dependency_matcher_opsr     sz    V Hu}3;7D/: #U+		
G  )GKK	G9%clGw<;&&&r#   c                     dddddg}t        |       }t        j                  t              5  |j	                  d|g       d d d        y # 1 sw Y   y xY w)Nr   r   +)r3   OPr-   rG   )r   rd   re   rf   rJ   )r    r"   rG   rL   s       r!   $test_dependency_matcher_long_matchesr   z  sS    V3-GHG  )G	z	" *Iy)* * *s   AAr   c                     | d      }|D ]  }|d   |_         d|_         t        j                  dd       d|d   j                  _        d	d
ddiidg}t        | j                        }|j                  d|g        ||      }d} |||d        }t        t        |      t        |            D ]6  \  }}	|d   |	d   k(  sJ t        |d   |	d         D ]  \  }
}|
||z   k(  rJ  8 y )Nz	a b c d er   rx   is_cF)defaultTr   ry   _r-   CrD   )headdep_r   set_extensionr   r   r   vocabrJ   zipsorted)en_tokenizerr"   tokenrG   rL   doc_matchesoffsetspan_matches	doc_match
span_matchdoc_t_ispan_t_is               r!   &test_dependency_matcher_span_user_datar     s   
{
#C V

 
.CFHHM#~)>?G   2 23GKKgY#,KF3vw<(L!$VK%8&:N!O 0	:|z!},,,!$Yq\:a=!A 	0GXh////	00r#   i/$  c                 r    | d      }|d   |d   _         dddiddddd	id
dg}dddidddddiddg}t        | j                        }|j                  d||g        ||      }|g k(  sJ t        | j                        }|j                  d|g       |j                  d|g        ||      }|g k(  sJ y )NzI like textrD   r   rootr,   liker-   r7   r*   r   r5   r.   r/   r6   fishr0   check)r   r   r   rJ   )r   r"   r=   r>   rL   rV   s         r!   #test_dependency_matcher_order_issuer     s     }
%Ca&CFK VV,<="F+		
H VV,<="F+		
H   2 23G KK(H-.clGb==   2 23GKK($KK($clGb==r#   c                 $    | d      }|d   |d   _         dddiddddd	id
dg}t        | j                        }|j                  d|g       |j	                  d       dddidddddid
dg}|j                  d|g        ||      }|g k(  sJ y )NzThe red bookr   rD   r   r,   bookr-   r7   redr0   r   r   flagblue)r   r   r   rJ   remove)r   r"   r=   rL   r>   rV   s         r!   test_dependency_matcher_remover     s     ~
&Ca&CFK VV,<="E?		
H   2 23GKK($NN7 VV,<="F+		
H KK($clGb==r#   )rg   rZ   r'   rd   rM   r   spacy.matcherr   spacy.tokensr   r   doc.test_underscorer   fixturer"   rB   rO   rX   r_   rk   rr   markparametrizer   r   r   usefixturesr   issuer   r    r#   r!   <module>r      sG     	   + # 2 > > J> J>Z 	 	#.#4=+@. )+WX& Y&D FIT'UIT'(* +,0 -0* 4* *Z 4$ $r#   