
    hU                     $   S SK r S SKrS SKJrJr  S SKJrJrJr  S SK	J
r
  S SKJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJrJrJr  \" 5       rSrSS/rSS\S/004SS\SS/004/rSS\S/004SS\/ SQ004SS\/ 004/r\4S jr\R>                  RA                  S\5      S 5       r!\R>                  RA                  S\5      S 5       r"\R>                  RA                  S\5      S 5       r#\R>                  RA                  S\5      S 5       r$\R>                  RK                  SS9S 5       r&\R>                  RA                  S / S!Q5      S" 5       r'\R>                  RA                  S#/ S$Q5      S% 5       r(S& r)S' r*S( r+S) r,S* r-S+ r.\R>                  RA                  S\5      S, 5       r/\R>                  RA                  S\5      S- 5       r0\R>                  RA                  S\5      \R>                  RA                  S.S/S0/5      S1 5       5       r1g)2    N)assert_almost_equalassert_array_equal)NumpyOpsRaggedget_current_ops)util)English)Language)	SpanGroup)
SpanGroups)Example)fix_random_seedmake_tempdirregistrylabeled_spansspancatspancat_singlelabelzWho is Shaka Khan?spans)      PERSONzI like London and Berlin.r      LOC      r   I like London and Berlin)r   r   )r   r   
DOUBLE_LOC c                     / nU H@  n[         R                  " U R                  US   5      US   5      nUR                  U5        MB     U$ )Nr      )r   	from_dictmake_docappend)nlpdatatrain_examplestegs        [/home/james-whalen/.local/lib/python3.13/site-packages/spacy/tests/pipeline/test_spancat.pymake_examplesr,   &   sJ    Ns||AaD11Q48b!      namec                     [        5       nUR                  U S[        0S9  [        R                  " [
        5         UR                  5         S S S 5        g ! , (       d  f       g = f)N	spans_keyconfig)r
   add_pipeSPAN_KEYpytestraises
ValueError
initialize)r.   r&   s     r+   test_no_labelr9   .   s@    
*CLL{H5L6	z	" 
#	"	"s   A
A#c                    [        5       nUR                  U S[        0S9nUR                  S5        UR                  S5        UR                  S:X  d   eUR                  5         UR                  R                  S5      UR                  :X  d   e[        R                  " [        5         UR                  S5        S S S 5        g ! , (       d  f       g = f)Nr0   r1   ThingPhrase)r;   r<   nOStuff)r
   r3   r4   	add_labellabelsr8   modelget_dim	_n_labelsr5   r6   r7   r.   r&   r   s      r+   test_no_resizerE   6   s    
*Cll4h(?l@Ggh>>0000NN==  &'*;*;;;;	z	"'" 
#	"	"s   *C
Cc                    ^ [        5       nUR                  U S[        0S9n[        UR                  5      S:X  d   e[        U5      mUR                  U4S jS9  UR                  S:X  d   eg )Nr0   r1   r   c                     > T $ N r(   s   r+   <lambda>&test_implicit_labels.<locals>.<lambda>J       r-   get_examplesr   r   )r
   r3   r4   lenr@   r,   r8   )r.   r&   r   r(   s      @r+   test_implicit_labelsrR   D   sd    
*Cll4h(?l@Gw~~!###"3'NNN 6N7>>....r-   c                    [        5       nUR                  U S[        0S9n[        UR                  5      S:X  d   eUR                  S5        UR                  S5        UR                  5         UR                  S:X  d   eg )Nr0   r1   r   r   r   rP   )r
   r3   r4   rQ   r@   r?   r8   rD   s      r+   test_explicit_labelsrT   N   sp    
*Cll4h(?l@Gw~~!###heNN>>....r-   z%Test is unreliable for unknown reason)reasonc                  8   [        5       n U R                  SS[        0S9nUR                  S5        U R	                  5         / SQnU R                  U5       Vs/ s H  o3R                  PM     nn[        X$5       H  u  pV[        U[        5      (       d   eUR                  5        HU  u  px[        U[        5      (       d   e[        U5      S:  d   e[        R                  " [        5         US     S S S 5        MW     M     g s  snf ! , (       d  f       Mr  = f)Nr   r0   r1   r   zJust a sentence.r   zI like Berlinz
I eat ham.r   )r
   r3   r4   r?   r8   piper   zip
isinstancer   itemsr   rQ   r5   r6   RuntimeError)	r&   r   textsdoc	all_spanstext
spangroupskey	spangroups	            r+   test_doc_gcrd   Z   s     *Cll9k8-DlEGhNNE '*hhuo6osoI61*j1111(..0NCi3333y>A%%%|,! -,	 1 2 7 -,s   D.D


Dzmax_positive,nr_results))N   )r"      )rf      )rg   re   )re   re   c           	      T   [        S5        [        5       nUR                  S[        SU S.S9nUR	                  S5      n[
        R                  R                  S5      " SS	/S
9nU" U/5      S   R                  n[        [        R                  U5      [        R                  " SS/SS	/SS	//5      5        / SQnU H  nUR                  U5        M     [        R                  " / SQ/ SQ/ SQ/SS9n	UR                  XFU	5      n
[!        U
5      U:X  d   eU
S   R"                  S:X  d   eU
S   R$                  S:X  d   e['        SU
R(                  S   S   S5        U
S   R"                  S:X  d   eU S:X  a3  U
S   R$                  S:X  d   e['        SU
R(                  S   S   S5        O2U
S   R$                  S:X  d   e['        SU
R(                  S   S   S5        US	:  a  U
S	   R"                  S:X  d   eU S	:X  a3  U
S	   R$                  S:X  d   e['        SU
R(                  S   S	   S5        O2U
S	   R$                  S:X  d   e['        SU
R(                  S   S	   S5        U
S   R"                  S:X  d   eU
S   R$                  S:X  d   e['        SU
R(                  S   S   S5        g )Nr   r         ?r0   	thresholdmax_positiver1   Greater Londonspacy.ngram_suggester.v1r"   rf   sizesr;   CityPerson	GreatCity皙?皙?333333?皙?ry   333333?rv   rw   皙?ffffff?rx   ?fdtypeLondonrr   r{   scores   rt   r   r;   r}   r~   )r   r
   r3   r4   r$   r   miscgetdataXdr   OPSto_numpynumpyasarrayr?   _make_span_group_multilabelrQ   r`   label_r   attrs)rl   
nr_resultsr&   r   r^   ngram_suggesterindicesr@   labelr   rc   s              r+   test_make_spangroup_multilabelr   r   s    A
*Cll%CV  G ,,'
(Cmm''(BC1a&QOse$Q'..Gs||G,emmaVaVaQRV<T.UV5F%  ]]	35IJRUF 33C&IIy>Z''' Q<(((Q<&(((Y__X6q91= Q< 0000q|""k111C!:1!=qA|""g---C!:1!=qAA~|  $44441Q<&&+555Y__X%>q%A1EQ<&&&000Y__X%>q%A1ER=!1111R=;...Y__X6r:A>r-   z"threshold,allow_overlap,nr_results))皙?Trg   )r   Fr"   )ri   Trf   )ri   Fr"   c           	      .   [        S5        [        5       nUR                  S[        U SS.S9nUR	                  S5      n[
        R                  R                  S5      " SS/S	9nU" U/5      S   R                  n[        [        R                  U5      [        R                  " SS/SS/SS//5      5        / S
QnU H  n	UR                  U	5        M     [        R                  " / SQ/ SQ/ SQ/SS9n
UR                  XWX5      nU S:  a  U(       a  US   R                   S:X  d   eUS   R"                  S:X  d   e[%        SUR&                  S   S   S5        US   R                   S:X  d   eUS   R"                  S:X  d   eUR&                  S   S   S:X  d   e[%        SUR&                  S   S   S5        g US   R                   S:X  d   eUS   R"                  S:X  d   eUR&                  S   S   S:X  d   eg U(       a  US   R                   S:X  d   eUS   R"                  S:X  d   eUS   R                   S:X  d   eUS   R"                  S:X  d   eUS   R                   S:X  d   eUS   R"                  S:X  d   eg US   R                   S:X  d   eg )Nr   r   r"   rj   r1   rm   rn   rf   ro   rq   ru   rz   r|   r   r   rw   r   rr   r{   r   r   rt   r   Greater)r   r
   r3   r4   r$   r   r   r   r   r   r   r   r   r   r?   _make_span_group_singlelabelr`   r   r   r   )rk   allow_overlapr   r&   r   r^   r   r   r@   r   r   rc   s               r+   test_make_spangroup_singlelabelr      s   
 A
*Cll!"
  G ,,'
(Cmm''(BC1a&QOse$Q'..Gs||G,emmaVaVaQRV<T.UV5F%  ]]	35IJRUF 44fI 3Q<$$000Q<&&&000Y__X%>q%A1EQ<$$(8888Q<&&+555??8,Q/3666Y__X%>q%A1EQ<$$(8888Q<&&+555??8,Q/3666Q<$$	111Q<&&&000Q<$$000Q<&&&000Q<$$(8888Q<&&+555Q<$$(8888r-   c            	         [        S5        [        5       n [        5       nU R                  S[        SSS.S9nUR                  S[        SSS.S9nSUl        SUl        U R                  S	5      n/ S
QnU H%  nUR                  U5        UR                  U5        M'     [        R                  R                  S5      " SS/S9nU" U/5      S   R                  n[        [        R                  U5      [        R                  " SS/SS/SS//5      5        [        R                  " / SQ/ SQ/ SQ/SS9n	UR!                  XHU	5      n
UR#                  XHU	5      n[%        U5      S:X  d   eUS   R&                  S:X  d   eUS   R(                  S:X  d   e[+        SUR,                  S   S   S5        US   R&                  S	:X  d   eUS   R(                  S:X  d   eUR,                  S   S   S:X  d   e[+        SUR,                  S   S   S5        [%        U
5      S:X  d   eU
S   R&                  S:X  d   eU
S   R(                  S:X  d   e[+        SU
R,                  S   S   S5        U
S   R&                  S:X  d   eU
S   R(                  S:X  d   e[+        SU
R,                  S   S   S5        U
S   R&                  S:X  d   eU
S   R(                  S:X  d   e[+        SU
R,                  S   S   S5        U
S   R&                  S:X  d   eU
S   R(                  S:X  d   e[+        SU
R,                  S   S   S5        U
S   R&                  S	:X  d   eU
S   R(                  S :X  d   eU
S   R&                  S	:X  d   e[+        S!U
R,                  S   S   S5        U
S   R&                  S	:X  d   eU
S   R(                  S:X  d   e[+        SU
R,                  S   S   S5        g )"Nr   r   ry   r"   rj   r1   rf   Trm   rq   rn   ro   )rv   rw   rx   ry   ry   )ry   r{   rv   rw   r   )r}   r~   rx   r   ry   r   r   r   rr   rw   r   r   rt   r      rs   rx   r   r{   rg   re   r;   r}   )r   r
   r3   r4   add_negative_labelr$   r?   r   r   r   r   r   r   r   r   r   r   r   rQ   r`   r   r   r   )
nlp_single	nlp_multispancat_singlespancat_multir^   r@   r   r   r   r   spangroup_multispangroup_singles               r+   "test_make_spangroup_negative_labelr      s8   AJ
I((!
 ) N &&!
 ' M )-N%'+M$


.
/C5F&  '  mm''(BC1a&QOse$Q'..Gs||G,emmaVaVaQRV<T.UV]]%%%	

 F $??fUO%BB3QWX A%%%A##y000A%%///-33H=a@!DA##'7777A%%444!!(+A.#555-33H=a@!D1$$$1""i///1$$..._228<Q?C1""i///1$$000_228<Q?C1""h...1$$..._228<Q?C1""h...1$$333_228<Q?C1""&66661$$///1""&6666_228<Q?C1""&66661$$333_228<Q?Cr-   c                    S GH  n[         R                  R                  S5      " U/S9nS Vs/ s H  nU " U5      PM     nnU" U5      nUR                   H  nUS   US   -
  U:X  a  M   e   Sn[	        U5       H  u  pUR
                  XwUR                  U   -    n
[        5       nU
 Hj  nSUS   s=::  a  [        U	5      :  d   e   eSUS   s=:  a  [        U	5      ::  d   e   eUR                  [        US   5      [        US   5      45        Ml     U
R                  S   [        U5      :X  d   eXuR                  U   -  nM     [        [        R                  UR                  5      U V	s/ s H  n	[        S[        U	5      US-
  -
  5      PM      sn	5        GM     [         R                  R                  S5      " / SQS9nS Vs/ s H
  o0" U5      PM     nnU" U5      n[        [        R                  UR                  5      / SQ5        [        [        R                  UR                  5      / SS/PSS/PSS	/PSS	/PSS/PSS	/PS	S
/PSS	/PSS
/PSS
/PSS/PSS	/PS	S
/PS
S/PSS	/PSS
/PS	S/PSS
/PSS/PSS/PSS	/PS	S
/PS
S/PSS/PSS	/PSS
/PS	S/PS
S/PSS
/PSS/PS	S/P5        [         R                  R                  S5      " S/S9nS Vs/ s H
  o0" U5      PM     nnU" U5      n[        [        R                  UR                  5      U V	s/ s H  n	[        U	5      PM     sn	5        [         R                  R                  S5      " S/S9nS Vs/ s H
  o0" U5      PM     nnU" U5      n[        [        R                  UR                  5      U V	s/ s H  n	[        U	5      PM     sn	5        g s  snf s  sn	f s  snf s  snf s  sn	f s  snf s  sn	f )Nr"   rf   rg   rn   ro   )aa ba b ca b c d	a b c d eza a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a r"   r   r   r   r   r   r   r"   rg   r   	      rf   rg   re   r   )r    r   r    )r    r    r    )r   r   r   r'   	enumerater   lengthssetrQ   addintshaper   r   r   max)en_tokenizersizer   r`   docsngramssoffsetir^   r   	spans_setspans                r+   test_ngram_suggesterr   !  s   "--++,FGtfU

  	 

 !&AQ4!A$;$&&&  oFAMM&FNN14E+EFEIDG.c#h.....47.c#h.....s47|Sa\:; 
 ;;q>S^333nnQ''F & 	LL(6:;dsSCHq)*d;	
= H mm''(BC)TO'T'TtT'T 	  T"Fs||FNN35EFV[[!%	
F%	
 F	%	

 F%	
 F%	
 F%	
 F%	
 F%	
 F%	
 F%	
 F%	
 F%	
  F!%	
" F#%	
$ F%%	
& F'%	
( F)%	
* F+%	
, F-%	
. F/%	
2 F3%	
4 F5%	
6 F7%	
8 F9%	
: F;%	
< F=%	
> F?%	
@ FA%	
B FC%	
D FE%	
F FG%	
H FI%	
(V mm''(BC1#NO+89=4L=D9T"Fs||FNN3$5O$3c#h$5OP mm''(BC1#NO+78<4L<D8T"Fs||FNN3$5O$3c#h$5OPy

< <
b :5O 95Os)   O3%O
O O"O
&O(O#
c                    [         R                  R                  S5      " / SQS9n[         R                  R                  S5      nU" SSS9nS Vs/ s H
  o@" U5      PM     nnU" U5      nU" U5      n[        [        R                  UR                  5      / S	Q5        [        [        R                  UR                  5      [        R                  UR                  5      5        [        [        R                  UR                  5      [        R                  UR                  5      5        [         R                  R                  S5      nU" S
SS9nU" U5      n[        [        R                  UR                  5      / SQ5        g s  snf )Nrn   r   ro   zspacy.ngram_range_suggester.v1r"   rg   )min_sizemax_sizer   r   rf   re   )r   r"   rg   r   r   )r   r   r   r   r   r   r   r'   )	r   size_suggestersuggester_factoryrange_suggesterr`   r   ngrams_1ngrams_2ngrams_3s	            r+   test_ngram_sizesr     s(   ]]&&'ABSN ))*JK'Q?O'T'TtT'T 	  d#Ht$Hs||H$4$457GHs||H$4$45s||HDTDT7UVs||HMM2CLL4OP !))*JK'Q?Ot$Hs||H$4$45Gs   Fc                  ^   [        5       n U " S5      U " S5      /nUS   SS /US   R                  [        '   US   SS US   SS /US   R                  [        '   [        R                  R                  S5      " [        S	9nU" U5      n[        U5      [        :X  d   e[        U5      S
:X  d   e[        UR                  S   5      SS/:X  d   e[        UR                  S   5      SS/:X  d   e[        UR                  S
   5      SS/:X  d   e[        UR                  5      SS
/:X  d   eg )NzThis is an example.zThis is the second example.r   rg   re   r"   r   zspacy.preset_spans_suggester.v1)r0   rf   )r
   r   r4   r   r   r   typer   rQ   listr   r   )r&   r   	suggester
candidatess       r+   test_preset_spans_suggesterr     s3   
*C%&,I(JKD#Awq|nDGMM(#Awq|T!WQq\:DGMM(!!"CDxXI4J
v%%%z?a
!!!$%!Q///
!!!$%!Q///
!!!$%!Q///
""#1v---r-   c                    ^ [        S5        [        5       n U R                  SS[        0S9n[	        U 5      mU R                  U4S jS9nUR                  R                  S5      S:X  d   e[        UR                  5      S	S
1:X  d   e[        S5       H  n0 nU R                  TX$S9  M     WS   S:  d   eSnU " U5      nUR                  UR                     UR                  [           :X  d   eUR                  [           n[        U5      S:X  d   e[        UR                  S   5      S:X  d   e[!        UR                  S   5      S:  d   e[        U Vs/ s H  oR"                  PM     sn5      SS1:X  d   e[        U Vs/ s H  oR$                  PM     sn5      S	1:X  d   e['        5        n	U R)                  U	5        [*        R,                  " U	5      n
U
" U5      nUR                  [           n[        U5      S:X  d   e[        UR                  S   5      S:X  d   e[!        UR                  S   5      S:  d   e[        U Vs/ s H  oR"                  PM     sn5      SS1:X  d   e[        U Vs/ s H  oR$                  PM     sn5      S	1:X  d   e S S S 5        U R/                  T5      nS[         S3U;   d   eUS[         S3   S:X  d   eUS[         S3   S:X  d   eUS[         S3   S:X  d   eU " S5      n[        UR                  UR                     5      S:X  d   eg s  snf s  snf s  snf s  snf ! , (       d  f       N= f)Nr   r   r0   r1   c                     > T $ rH   rI   rJ   s   r+   rK   %test_overfitting_IO.<locals>.<lambda>      Nr-   rN   r=   rf   r   r   2   sgdlosses{Gz?r   r   r}   r   Berlinspans__f_pg      ?_rr"   )r   r	   r3   r4   r,   r8   rA   rB   r   r@   rangeupdater   rb   rQ   r   minr`   r   r   to_diskr   load_model_from_pathevaluate)r&   r   	optimizerr   r   	test_textr^   r   r   tmp_dirnlp2doc2spans2r   r(   s                 @r+   test_overfitting_IOr     s&   A
)Cll9k8-DlEG"3'N,BCI==  &!+++w~~5("33332Y

>y
@  )t### +I
i.C99W[[!SYYx%8888IIhEu:??u{{8$%***u{{8$%+++e,ed		e,-(H1EEEE../E7::: 
7G((1IH%6{a6<<)*a///6<<)*S000&1&$II&12x6JJJJF3FDKKF34??? 
 \\.)FH:R F***F8*B'(C///F8*B'(C///F8*B'(C/// h-Csyy%&!+++1 -. 23 
s7   L2L75BML<
#M;M
M<
M
Mc                  D  ^ [        S5        [        5       n U R                  SS[        0S9n[	        U [
        S9mU R                  U4S jS9nUR                  R                  S5      S	:X  d   e[        UR                  5      1 S
k:X  d   e[        S5       H  n0 nU R                  TX$S9  M     WS   S:  d   eSnU " U5      nUR                  [           n[        U5      S	:X  d   e[        UR                  S   5      S	:X  d   e[!        UR                  S   5      S:  d   e[        U Vs/ s H  oR"                  PM     sn5      1 Sk:X  d   e[        U Vs/ s H  oR$                  PM     sn5      SS1:X  d   e['        5        n	U R)                  U	5        [*        R,                  " U	5      n
U
" U5      nUR                  [           n[        U5      S	:X  d   e[        UR                  S   5      S	:X  d   e[!        UR                  S   5      S:  d   e[        U Vs/ s H  oR"                  PM     sn5      1 Sk:X  d   e[        U Vs/ s H  oR$                  PM     sn5      SS1:X  d   e S S S 5        g s  snf s  snf s  snf s  snf ! , (       d  f       g = f)Nr   r   r0   r1   )r'   c                     > T $ rH   rI   rJ   s   r+   rK   1test_overfitting_IO_overlapping.<locals>.<lambda>  r   r-   rN   r=   rg   >   r   r   r   r   r   r   r   r   r   >   r   r   London and Berlinr   r   )r   r	   r3   r4   r,   TRAIN_DATA_OVERLAPPINGr8   rA   rB   r   r@   r   r   r   rQ   r   r   r`   r   r   r   r   r   )r&   r   r   r   r   r   r^   r   r   r   r   r   r   r(   s                @r+   test_overfitting_IO_overlappingr     ss   A
)Cll9k8-DlEG"3-CDN,BCI==  &!+++w~~"AAAA2Y

>y
@  )t### +I
i.CIIhEu:??u{{8$%***u{{8$%+++e,ed		e,- 2   
 ../E<3HHHH 
7G((1IH%6{a6<<)*a///6<<)*S000&1&$II&12 7
 
 	
 

 F3FDKKF348MMMM 
 -
 / 2
 4 
s7   .I=J	BJ"J
7JJ
$J
J
Jc                 &  ^ [         R                  " S5      S 5       n[        S5        [        5       nUR	                  U SS0[
        S.S9n[        U5      mUR                  U4S jS9nUR                  R                  S	5      UR                  :X  d   e[        UR                  5      S
S1:X  d   eUR                  TUS9  U" S5        U" S5        U" S5        [        UR                  / SQ5      5        [        UR                  / SQ5      5        g )Ntest_mixed_zero_suggesterc                      S S.S jn U $ )N)opsc                   Uc
  [        5       n/ n/ nU  HY  n[        U5      S:  a6  [        U5      S-  S:X  a$  UR                  S5        UR                  S5        MH  UR                  S5        M[     UR                  U5      nUR	                  U5      n[        U5      S:  a'  [        UR                  R                  U5      U5      nU$ [        UR                  R                  SSS9U5      nU$ )Nr   rf   )r   r"   r"   )r   r   r   r   )	r   rQ   r%   	asarray2i	asarray1ir   xpvstackzeros)r   r   r   r   r^   lengths_arrayoutputs          r+   mixed_zero_suggesterVtest_zero_suggestions.<locals>.make_mixed_zero_suggester.<locals>.mixed_zero_suggester  s    {%'EGs8a<CHqLA$5LL(NN1%NN1%  MM%(EMM'2M5zA~e 4mD M  V3 ?OMr-   rI   )r   s    r+   make_mixed_zero_suggester8test_zero_suggestions.<locals>.make_mixed_zero_suggester  s    .2 	& $#r-   r   z@misc)r   r0   r1   c                     > T $ rH   rI   rJ   s   r+   rK   'test_zero_suggestions.<locals>.<lambda>-  r   r-   rN   r=   r   r   )r   r    onetwo two)r  r  three three threer    zfour four four four)r    r  r  )r   r   r   r	   r3   r4   r,   r8   rA   rB   rC   r   r@   r   r   rX   )r.   r  r&   r   r   r(   s        @r+   test_zero_suggestionsr  	  s     ]]./$ 0$, A
)Cll!#>?!
  G #3'N,BCI==  &'*;*;;;;w~~5("3333JJ~9J-GJ	NT	UV2	34r-   c                 8  ^ [        5       nUR                  U S[        0S9n[        U5      mUR	                  U4S jS9  / SQnU Vs/ s H
  oA" U5      PM     nnUR                  U5        [        U5      [        U5      :X  d   e[        US   R                  S   5      [        :X  d   e[        US   R                  S   5      S:X  d   eUS   R                  S   S   R                  S	:X  d   eUS   R                  S   S
   R                  S:X  d   eg s  snf )Nr0   r1   c                     > T $ rH   rI   rJ   s   r+   rK   %test_set_candidates.<locals>.<lambda>C  rM   r-   rN   rW   r   r   r   Justre   zJust a)r
   r3   r4   r,   r8   set_candidatesrQ   r   r   r   r`   )r.   r&   r   r]   r`   r   r(   s         @r+   test_set_candidatesr  >  s   
*Cll4h(?l@G"3'NNN 6N7E #((%$CI%D(4 t9E
"""Ql+,	999tAw}}\*+q0007==&q)..&8887==&q)..(::: )s   D	n_processr"   rf   c                 .  ^ [        [        [        5      (       d  US:  au  [        5       nUR	                  U S[
        0S9n[        U5      mUR                  U4S jS9  / SQn[        UR                  XAS95      n[        U5      [        U5      :X  d   eg g )Nrf   r0   r1   c                     > T $ rH   rI   rJ   s   r+   rK   .test_spancat_multiprocessing.<locals>.<lambda>\  s    Nr-   rN   rW   )r  )rZ   r   r   r
   r3   r4   r,   r8   r   rX   rQ   )r.   r  r&   r   r]   r   r(   s         @r+   test_spancat_multiprocessingr  U  s     /8,,	Aj,,t[(,C,D&s+$:;
 CHHUH894yCJ&&& 1>r-   )2r   r5   numpy.testingr   r   	thinc.apir   r   r   spacyr   spacy.lang.enr	   spacy.languager
   spacy.tokensr   spacy.tokens._dict_proxiesr   spacy.trainingr   
spacy.utilr   r   r   r   r4   SPANCAT_COMPONENTS
TRAIN_DATAr   r,   markparametrizer9   rE   rR   rT   skiprd   r   r   r   r   r   r   r   r   r  r  r  rI   r-   r+   <module>r"     s     A 7 7  ! # " 1 " > >!67  Gh1B0C%DEF#	8no>?@
 Gh1B0C%DEF"	8UVW 'Hb>	"#  '  !34 5 !34
# 5
# !34/ 5/ !34/ 5/ @A B. J-?-?` (H.9	.9bDDN`QFH*./,d,N^ !3415 515h !34; 5;, !34q!f-' . 5'r-   