
    hQv                     
   S SK r S SKrS SKrS SKJr  S SKrS SKrS SKJ	r	J
r
  S SK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rS rS r\R:                  R=                  S	\R>                  " S
5      \R>                  " S
5      \R@                  " S5      4S4\R>                  " S5      \R>                  " S5      \R@                  " S5      4S4\R@                  " S5      \R>                  " S5      \R@                  " S5      4S4\R>                  " S5      \R@                  " S5      \R@                  " S5      4S4\R@                  " S5      \R@                  " S5      \R@                  " S5      4S4\R@                  " S5      \R@                  " S5      \R@                  " S5      4S4\R@                  " S5      \R@                  " S5      \R@                  " S5      4S4\R@                  " S5      \R@                  " S5      \R@                  " S5      4S4S //4S4S /S /S //4S4/
5      S 5       r!S r"S r#\" S/S9S 5       r$\" S/S S!S"S#9S$ 5       r%S% r&\" S&/S S!S/S'9S( 5       r'\" S)/S \RP                  " 5       S*:X  a  S OS+S,9S- 5       r)\" S./S S!S/S'9S/ 5       r*\R:                  R=                  S0/ S1Q5      S2 5       r+\" S3/S!S4S59S6 5       r,\" S7/S!S89S9 5       r-\" S:/S S!S;S#9S< 5       r.S= r/\" S>S?/S S@S,9SA 5       r0SB r1SC r2SD r3\R:                  R=                  SE/ SFQ5      SG 5       r4SH r5\" SI/S S!SJS#9SK 5       r6\" SL/S S!\RP                  " 5       S*:X  a  SMOSNS#9SO 5       r7\" SP/S/S S!SQ9SR 5       r8\R:                  R=                  SS/ STQ5      SU 5       r9\R:                  Ru                  SV5      SW 5       r;\" SX/S/S SY9SZ 5       r<S[ r=\" S\/S/S S]S^9S_ 5       r>\" S`/S/S SY9Sa 5       r?Sb r@Sc rA\R                  R                  Sd5      Se 5       rDSf rESg rF\R:                  R=                  ShSi\R                  4Sj\R                  4Sk\R                  4Sl\R                  4Sm/5      Sn 5       rK\R:                  R=                  So/ SpQ5      Sq 5       rL\" Sr/S/S SsS^9St 5       rMSu rN\R:                  R=                  Sv/ SwQ5      Sx 5       rO\R:                  R=                  Sv/ SwQ5      Sy 5       rPSz rQS{ rRS| rSS} rTS~ rUS rVg)    N)mock)assert_array_almost_equalassert_array_almost_equal_nulp)pyplot
rc_contextticker)LogNorm
same_color)check_figures_equalimage_comparisonc                      [         R                  " S5      n [         R                  " S5      n[         R                  R                  S5      n[        R                  " 5       u  p4UR                  XU5        g N
   	   r   r   )nparangerandompltsubplotscontour)xyzfigaxs        O/var/www/html/env/lib/python3.13/site-packages/matplotlib/tests/test_contour.pytest_contour_shape_1d_validr      sK    
		"A
		!A
		!AllnGCJJqQ    c                     [         R                  " S5      n [         R                  " S5      n[         R                  " X5      u  p#[         R                  R                  S5      n[        R
                  " 5       u  pVUR                  X#U5        g r   )r   r   meshgridr   r   r   r   )r   r   xgygr   r   r   s          r   test_contour_shape_2d_validr$      s[    
		"A
		!A[[FB
		!AllnGCJJrqr   zargs, messager   r   z6Length of x (9) must match number of columns in z (10)r   z3Length of y (10) must match number of rows in z (9))r   r   z4Number of dimensions of x (2) and y (1) do not matchz4Number of dimensions of x (1) and y (2) do not matchr   r   z-Shapes of x (9, 9) and z (9, 10) do not matchz-Shapes of y (9, 9) and z (9, 10) do not match)   r&   r&   z'Inputs x and y must be 1D or 2D, not 3DzInput z must be 2D, not 3DzDInput z must be at least a (2, 2) shaped array, but has shape (1, 1)c                     [         R                  " 5       u  p#[        R                  " [        [
        R                  " U5      S9   UR                  " U 6   S S S 5        g ! , (       d  f       g = f)Nmatch)r   r   pytestraises	TypeErrorreescaper   )argsmessager   r   s       r   test_contour_shape_errorr1   &   s@    . llnGC	y		'(:	;


D 
<	;	;s   A
A,c                  d   [         R                  " 5       u  pUR                  [        R                  R                  SS5      / S9  UR                  [        R                  " S5      R                  S5      S/S9nUR                  USS0S9  UR                  [        R                  " S5      5        g )Nr   levelsQ   r%   d   z%1.2f)fmt)
r   r   r   r   r   randr   reshapeclabelones)r   r   css      r   test_contour_no_valid_levelsr=   B   s}    llnGCJJryy~~a#BJ/	BIIbM))&13%	@BIIbsGnI%JJrwwvr   c                  R   [         R                  " S5      R                  S5      n [        R                  " 5       u  pUR                  U S5      n[        UR                  5      S:  d   eUR                  U SS9nUR                  UR                  :H  R                  5       (       d   eg )N   r&            r3   )	r   r   r9   r   r   r   lenr4   all)r   r   r   cs1cs2s        r   test_contour_NlevelsrH   N   s     			"f%AllnGC
**Q
Cszz?Q
**Qq*
!CJJ#**$))++++r   png)
extensionsc                     U R                  5       R                  SS/SS//5      nUR                  5       R                  SS/SS//5      nUR                  UR                  5       5        g )Nr   rC      )r   r   	set_paths	get_paths)fig_testfig_refcs_testcs_refs       r   test_contour_set_pathsrS   Y   se    !))Aq6Aq6*:;G''!Q!Q(89Ff&&()r   contour_manual_labelsTmpl20gp=
ף?)remove_textstyletolc                     [         R                  " [         R                  " SS5      [         R                  " SS5      5      u  p[         R                  " [         R                  " [        U 5      [        U5      /5      S5      n[        R                  " SSS9  [        R                  " XU5      n[         R                  " / SQ5      n[        R                  " X4S9  [         R                  " / S	Q5      n[        R                  " X4S
SS9  g )Nr   r   rL   )   rL      )figsizedpi))      ?      @)r^   皙@)r^         @manual))       @r_   )rd   r`   )rd   ra   small)rg)rc   fontsizecolors)r   r!   r   maxdstackabsr   figurer   arrayr:   )r   r   r   r<   ptss        r   test_contour_manual_labelsrp   a   s    ;;ryyB'1b)9:DA
ryy#a&#a&)*A.AJJv3'	Q1	B
((7
8CJJr
((7
8CJJr
Cr   c                  B   [         R                  " SS5      n [         R                  " SS5      n[         R                  " X5      u  p#US-  S-  US-  -  S-
  n[        R                  " X#USS/S9nSn[        R
                  " XV/S	9nUS   R                  5       S
:X  d   eg )Nir   rL   rC   r   r6   r3   )g?rC   rb   0)r   linspacer!   r   r   r:   get_text)r   r   XYZcontourspointclabelss           r   test_contour_manual_movetor{   o   s    
CA
CA;;qDA	1q1a4!A{{1As84H Ejj'2G 1: C'''r   contour_disconnected_segments)rV   rW   rJ   c                  \   [         R                  SSS2SSS24   u  pS[         R                  " SU S-   S-  -   US-  -   5      -  nUS[         R                  " SU S-
  S-  -   US-  -   5      -  -  n[        R                  " 5         [        R
                  " XUS/S9nUR                  S	/S
9  g )NrC   y              5@{Gz?333333?rL      r3   )皙?皙?rb   )r   mgridsqrtr   rm   r   r:   )r   r   r   r<   s       r   -test_contour_label_with_disconnected_segmentsr      s     88BqHb3h&'DA	BGGDAG>)AF233ARWWTQWN*Q!V34	44AJJL	Q1aS	)BIIj\I"r   z$contour_manual_colors_and_levels.pngx86_64g;On?)rV   rX   c                     S[         R                  S'   [         R                  " SS5      u  p[        R                  " S5      R                  SS5      n/ SQn/ SQn[        UR                  5       Hl  u  pVUS-  S	:H  n/ S
QUS-     nU(       a'  US;   a  SOS n	US;   a  SOS n
UR                  X#X XHS9nOUR                  X#S S XHS9n[         R                  " XS9  Mn     g )NFpcolormesh.snaprL   rA   r?   r&   )redyellowpinkblueblack)rL   rA      r           )neitherminrj   both)rj   r   rC   )r   r   r~   )ri   r4   extendr   )r   rcParamsr   r   r   r9   	enumerateflatcontourfr   colorbar)_axsdatari   r4   ir   filledr   first_color
last_colorcs               r   $test_given_colors_levels_and_extendsr      s     ',CLL"#\\!QFA99R=  A&D7FF388$Q"216:  &);;!K%);;JD)G#)  :A 

4s"(  9A 	Q! %r   contourf_hatch_colorsc                      [         R                  " 5       u  pUR                  SS/SS/// SQSS9nUR                  / SQ5        g )Nr   rC   rL   )-/\z//gray)hatchescmap)r   greyr   r   )r   r   r   set_edgecolors)r   r   cfs      r   test_hatch_colorsr      sB     llnGC	q!fq!f%/EF	SB78r   zcolor, extend))darkredr   )r   r   ))rf         ?r   ))r   r   r   r   r   c                     SS/SS//n[         R                  " 5       u  p4/ SQnUR                  X%XS9nUR                  5        H  n[	        Xp5      (       a  M   e   g )Nr   rC   rL   )r         ?rC   g      ?      ?r4   ri   r   )r   r   r   get_edgecolorsr
   )colorr   r   r   r   r4   r<   r   s           r   test_single_color_and_extendr      s^    
 Q!QALLNEA&F	AU	BB !#### !r   zcontour_log_locator.svgF)rW   rV   c            
         [         R                  " 5       u  pSn[        R                  " SSU5      n[        R                  " SSU5      n[        R                  " X45      u  pV[        R
                  " US-  * US-  -
  5      n[        R
                  " US-  S-  * US-  S-  -
  5      nUSU-  -   n	UR                  U	[        R                  " 5       S	9n
[        U
R                  [        R                  " S
[        R                  " SS5      5      5        U R                  XS9n[        UR                  R                  5       U
R                  5        g )Nr6         r_          rd   rL   r   2   locator      $@ir&   r   )r   r   r   rs   r!   expr   r   
LogLocatorr   r4   powerr   r   r   
get_yticks)r   r   Nr   r   ru   rv   Z1Z2r   r   cbs               r   test_log_locator_levelsr      s    llnGCA
D#q!A
D#q!A;;qDA	A1	B	!b&1B{*	+BR<D
D&"3"3"56AahhryyQ7G(HI	a	Bbee..0!((;r   zcontour_datetime_axis.png)rW   c            
      t   [         R                  " 5       n U R                  SSSS9  [        R                  " SSS5      n[        R
                  " [        S5       Vs/ s H  o![        R                  " US9-   PM     sn5      n[        R                  " S5      n[        R                  " [        R                  " S5      [        R                  " S5      5      u  pVXV-  n[         R                  " S	5        [         R                  " X4U5        [         R                  " S
5        [         R                  " X4U5        [        R                  " U[        R                     SSS9n[        R                  " US S 2[        R                  4   SSS9n[         R                  " S5        [         R                  " X4U5        [         R                  " S5        [         R                  " X4U5        U R                  5        H<  nUR!                  5        H%  n	U	R#                  S5        U	R%                  S5        M'     M>     g s  snf )Ng?g\(\?333333?)hspacetopbottomi  rC      )days      r   )axis      right   )r   rm   subplots_adjustdatetimer   rn   range	timedeltar   r!   subplotr   r   repeatnewaxisget_axesget_xticklabelsset_haset_rotation)
r   basedr   r   z1z2r   r   labels
             r   test_contour_datetime_axisr      s   
**,CsS9T1a(D
U2YGY++33YGHA
		"A[[2		"6FB
AKKKKaKKLLq
		!BJJ-!,A
		!ArzzM"BQ/AKKKKaKKLLqlln'')ELL!r" *  Hs    H5z!contour_test_label_transforms.pngg?c                     Sn [         R                  " SSU 5      n[         R                  " SSU 5      n[         R                  " X5      u  p4[         R                  " US-  US-  -   * S-  5      S[         R                  -  -  n[         R                  " US-
  S-  S-  US-
  S	-  S-  -   * S-  5      S[         R                  -  S	-  S-  -  nS
Xe-
  -  n[
        R                  " SS5      u  pU	R                  X4U5      n
/ SQn/ SQnU
R                  5         U H  u  pU
R                  XSS S9  M     U H  u  pU
R                  XSSS9  M     g )N皙?r   r_   r   rd   rL   rC   r   r   r   ))      )ig  i"  )i	  i  ))r   )r   g      )gffffff@rC   T)inline	transformF)
r   r   r!   r   pir   r   r   r:   add_label_near)deltar   r   ru   rv   r   r   rw   r   r   CS
disp_units
data_unitss                r   test_labelsr      s@   
 E
		$U#A
		$U#A;;qDA	!Q$A+"	#q255y	1B
&&QUcMA%!a%3(::;a?
@ruu9s?S "B 	All1a GC	A!	B5J0JIIK
!tt<  
!tu= r   c                     [         R                  " SS9u  p[        R                  " [        R                  * S-  [        R                  S-  S5      =p#[        R
                  " X25      u  p2S[        R                  " SU-  5      S-  -  [        R                  " SU-  5      -  nS[        R                  " SU-  5      -  [        R                  " SU-  5      S-  S-   -  nXE-   nUR                  X2U5      n[        R                  R                  US	UR                  S
9 nUR                  SS9  S S S 5        WR                   V	s/ s H
  oS   S   PM     n
n	SU
;   d   eg ! , (       d  f       N8= fs  sn	f )Nr6   )r]   rL   r   r   r   rA   r   "_split_path_and_get_label_rotation)wrapsr   )rh   r   rC   )r   r   r   rs   r   r!   sincosr   r   patchobjectr   r:   call_args_list)r   r   latslonswavemeanr   r<   mocked_splittercargsidxss              r   test_label_contour_startr    s?    LLS!EA++ruufqj"%%!)R88DT(JD266!d(#q()BFF1t8,<<DD!!bffQX&61%<q%@AD;D	D	%B			477 
 
9<K
		1		
9 &5%C%CD%CE!HQK%CDD99
9 
9 Es   E!E2!
E/zcontour_corner_mask_False.pngzcontour_corner_mask_True.pnggGz?c                  h   Sn SnSn[         R                  R                  S/5        [         R                  " [         R                  " SSU 5      [         R                  " SSU 5      5      u  p4[         R
                  " SU-  5      [         R                  " SU-  5      -  U[         R                  R                  X 5      -  -   n[         R                  R                  X 5      U:  n[         R                  R                  XVS	9nS
 H,  n[        R                  " 5         [        R                  " XWS9  M.     g )N<   ffffff?r^   rC   r   rd   r   r   mask)FTcorner_mask)r   r   seedr!   rs   r   r   r8   marn   r   rm   r   )n
mask_level	noise_ampr   r   r   r
  r  s           r   test_corner_maskr  )  s     	AJIIINNA3;;r{{1c1-r{{1c1/EFDA
qsBFF1Q3K)BIINN1,@"@@A99>>!:-D
A!A$

Q0 %r   c                      SS/SS//n [         R                  " 5         [        R                  " [        5         [         R
                  " U SS/5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   ffffff?r^   r   )r   rm   r*   r+   
ValueErrorr   )r   s    r   test_contourf_decreasing_levelsr  :  sG    
sc3Z AJJL	z	"Qc
# 
#	"	"s   A
A)c                      [         R                  " S5      R                  S5      n [        R                  " SSS9n[        R
                  " XS9n[        UR                  [         R                  " SSS5      5        g )	Nr?   r@   rA   T)nbins	symmetricr   irB   )	r   r   r9   r   MaxNLocatorr   r   r4   rs   )r   r   r<   s      r   test_contourf_symmetric_locatorr  B  sS    
		"f%AooA6G	a	)BbiiS"a)@Ar   c                  >   [         R                  " [         R                  " SSS5      [         R                  " SSS5      5      u  p[         R                  " X5      n[        R
                  " 5         [        R                  " XU5      n[        R                  " U5        g )Nr   rL   rA   )r   r!   rs   hypotr   rm   r   r:   )r   r   rf   r<   s       r   test_circular_contour_warningr  J  s_    ;;r{{2q!,bkk"a.CDDA
AJJL	Q1	BJJrNr   z-use_clabeltext, contour_zorder, clabel_zorder))T{     )Fr  r   )Tr  N)Fr  Nc                 J   [         R                  " [         R                  " SS5      [         R                  " SS5      5      u  p4[         R                  " [         R                  " [        U5      [        U5      /5      S5      n[        R                  " SS9u  nu  pxUR                  X4XQS9n	UR                  X4XQS9n
U	R                  X S9nU
R                  UU S9nUc  SU-   nOUnU H  nUR                  5       U:X  a  M   e   U H  nUR                  5       U:X  a  M   e   g )Nr   r   rL   )ncols)zorder)r#  use_clabeltext)r   r!   r   rj   rk   rl   r   r   r   r   r:   
get_zorder)r$  contour_zorderclabel_zorderr   r   r   r   ax1ax2r<   	cs_filledclabels1clabels2expected_clabel_zorderr:   s                  r   test_clabel_zorderr.  S  s    ;;ryyB'1b)9:DA
ryy#a&#a&)*A.All+OC#	Q1	4BQ1<IyyyMH}/=   ?H !">!1!.  "&<<<<   "&<<<< r   c                     [         R                  " SSS5      =p[         R                  " X5      u  p#[         R                  " US-  * US-  -
  5      n[        R
                  " 5       u  pVUR                  X#U/ SQS9nUR                  USS9  g )	Nr   gGz@皙?rL   )r   r   r   g?r3   r6   )inline_spacing)r   r   r!   r   r   r   r   r:   )r   r   ru   rv   rw   r   r   
contoursets           r   test_clabel_with_large_spacingr3  l  sw     IIdD$''A;;qDA
1uq!t|AllnGCA!,?@JIIjI-r   zcontour_log_extension.pnggv?c            	         S[         R                  S'   [         R                  " SSSS9u  n u  pnU R                  SSS	9  [        R
                  " S
SS5      n[        R                  " SU5      R                  SS5      n[        R                  " SS5      n[        R                  " SU5      nUR                  U[        UR                  5       UR                  5       S9S9nUR                  XW[        UR                  5       UR                  5       S9SS9n	UR                  XW[        UR                  5       UR                  5       S9SS9n
[         R                  " XS9nUR                  R                  5       S:X  d   e[         R                  " XS9n[!        UR                  R                  5       [        R"                  " S5      5        [         R                  " XS9ng )NFr   rC   r&   )r   rB   r\   r0  r  )leftr   g      g      #@i  r   r   (   g      g      @r   )vminvmax)normr   )r4   r:  r   r   r   )g:0yE>g    _B)-C6?g    .A)r   r   r   r   r   rs   r   r9   r   r   r	   r   rj   r   r   get_ylimr   rn   )r   r(  r)  ax3data_expr   
levels_expr4   c1c2c3r   s               r   test_contourf_log_extensionrC    s   
 ',CLL"# <<1g>C#CT. {{4d+H88B!))"b1D3#JXXc:&F 
d"
D 
 
FB 
d"

6::<H& 
 
(B 
d"

6::<H# 
 
%B 
b	!B55>>|+++	b	!B"255>>#3RXXk5JK	b	!Br   zcontour_addlines.pnggQ?r   c                     S[         R                  S'   [         R                  " 5       u  p[        R                  R                  S5        [        R                  R                  SS5      S-  nUR                  U5      nUR                  US-   5      nU R                  U5      nUR                  U5        [        UR                  R                  5       SS/S	5        g )
NFr   i,N,r   i'  i  gd]Kȓ\@g6>W'z@r&   )r   r   r   r   r   r  r8   
pcolormeshr   r   	add_linesr   r   r<  )r   r   ru   pcmcontr   s         r   test_contour_addlinesrI    s     ',CLL"#llnGCIINN8
		r2u$A
--
C::afD	c	BLLbeenn.:0FJr   contour_uneven)baseline_imagesrJ   rV   rW   c                  D   S[         R                  S'   [        R                  " S5      R	                  SS5      n [         R
                  " SS5      u  pUS   nUR                  U / S	QS
9nUR                  XCSS9  US   nUR                  U / S	QS
9nUR                  XCSS9  g )NFr      rA   rZ   rC   rL   r   )rL   rA   rZ   r   r   r3   proportional)r   spacinguniform)r   r   r   r   r9   r   r   r   )r   r   r   r   r<   s        r   test_contour_unevenrQ    s     ',CLL"#
		"a#A||Aq!HC	QB	Q0	1BLLNL3	QB	Q0	1BLLIL.r   zCrc_lines_linewidth, rc_contour_linewidth, call_linewidths, expected))Gz?NNrR  )rR  (\@NrS  )rR  rS  Gz@rT  c                    [        U US.S9   [        R                  " 5       u  pE[        R                  " S5      R                  SS5      nUR                  XbS9nUR                  5       S   U:X  d   e S S S 5        g ! , (       d  f       g = f)N)zlines.linewidthzcontour.linewidth)rcr?   rA   r&   )
linewidthsr   )r   r   r   r   r   r9   r   get_linewidths)rc_lines_linewidthrc_contour_linewidthcall_linewidthsexpectedr   r   ru   r<   s           r   test_contour_linewidthr]    s     
+=-AC 
D,,.IIcN""1a(ZZZ6  "1%111
D 
D 
Ds   A&A==
Bpdfc                  d    [         R                  " [         R                  " SS/SS//5      5        g )NrC   rL   r&   rA   )r   r:   r    r   r   test_label_nonaggra    s&     JJs{{QFQF+,-r   contour_closed_line_loop)rK  rJ   rV   c                      / SQ/ SQ/ SQ/ SQ/n [         R                  " SS9u  pUR                  U S/S/SS	9  UR                  S
S5        UR	                  S
S5        g )N)r   r   r   )r   rL   r   )rL   rC   rL   )rL   rL   r5  r   r   r  )rW  alphagg @g@)r   r   r   set_xlimset_ylim)r   r   r   s      r   test_contour_closed_line_looprg    sV     
Iy)4All6*GCJJq3%RDJ4KKcKKcr   c                  N   [         R                  " SS/SS/5      u  pX-   n[        R                  " 5       u  p4UR	                  XU5      nUR                  XU5      nUR                  UR                  :w  d   eUR                  XR5      nUR                  UR                  :X  d   eg )Nr   r^   )r   r!   r   r   r   r   _contour_generator)r   r   r   r   r   qcs1qcs2qcs3s           r   test_quadcontourset_reuserm    s     ;;SzC:.DA	AllnGC;;qQD::aAD""d&=&====::dD""d&=&====r   contour_manualg{Gz?)rK  rJ   rV   rX   c                     SSK Jn   [        R                  " SS9u  pSnSS/SS/SS///nSS/SS//SS/SS	///nSS/SS	/SS/SS/SS///nSS/SS/SS/SS/SS//SS	/SS	/SS///nU " U/ S
QXg/SUS9  U " USS/XE/SSS/S9  S	S/SS/SS/S	S/S	S/SS/SS/SS/SS/SS//
/n/ SQ/n	U " USS/U/U	/SUS9  U " US/U/U	/SSS9  g )Nr   )
ContourSetrA   rA   r5  viridisrL   rC   r&   rA   r   rC   rL   T)r   r   rf   k)rW  ri   r   rB   rZ   )
rC   rL   rL   rL   O   rC   rL   rL   rL   ru  )ri   rW  )matplotlib.contourrp  r   r   )
rp  r   r   r   lines0lines1filled01filled12segskindss
             r   test_contour_manualr}    sw    .ll6*GCD 1v1v1v&'F1v1v!Q!Q 01FQ!Q!Q!Q!Q89HQ!Q!Q!Q!Q8Q!Q!Q(*Hr9x24dKrAq6F+3*M VaVaVaVaVVaVaVaVaV5 6D-.ErAq6D6E74dCrA3Br   !contour_line_start_on_corner_edgec                     [         R                  " SS9u  p[        R                  " / SQ/ SQ5      u  p#SUS-
  S-  -
  US-
  S-  -   n[        R                  " U[
        S9nS	=US
'   US'   [        R                  R                  XES9nUR                  X#US	S9nU R                  U5      nUR                  X#US	SS9nUR                  U5        g )N)rZ   rB   r5  )r   rC   rL   r&   rA   rs  g333333?rL   rC   dtypeT)rC   rC   )rC   r&   r	  r  rt  )r  ri   )r   r   r   r!   
zeros_likeboolr  rn   r   r   r   rF  )	r   r   r   r   r   r
  r   cbarliness	            r   &test_contour_line_start_on_corner_edger    s     ll6*GC;;	2DAq1uqjAEA:%A==$'D""DJd
A!A[[qd[3F<<DJJqQDJ=ENN5r   c                     [         R                  " S5      n [         R                  " [         R                  * [         R                  " U S-
  S-  S5      S-  -  5      n[
        R                  " US5      nUR                  SSSS	9nS
n[        X45        UR                  SSSS	9nSn[        X45        UR                  SSSS	9nSn[        X45        UR                  SSSSS9nSn[        X45        g )N   r  rB   rL   r         9@r   rC   Fpixel)rC   r   !   YİØt?r  gb?r   )rC   r   rB   g`3@gDlpf?gݓ?)r&   r      gͰQo&?ghW!@g|o^}?rB   r   indicesr  )rB   r      gA*Ŏ@g      @gA?)	r   r  r   r   sumr   r   find_nearest_contourr   )xyimgr<   nearest_contourexpected_nearests        r   test_find_nearest_contourr  !  s    	H	B
&&"%%26626A+q1%78
9C	S"	B--a%-@O?o@--a%-@O>o@--a%-@O?o@--aF%-PO:o@r   c                     [         R                  " S5      n [         R                  " [         R                  * [         R                  " U S-
  S-  S5      S-  -  5      n[
        R                  " US5      n[        R                  " [        SS9   UR                  S	S	S
S9  S S S 5        [        R                  " [        SS9   UR                  S	SSS
S9  S S S 5        [        R                  " [        SS9   UR                  SSSSS9  S S S 5        g ! , (       d  f       Nw= f! , (       d  f       NT= f! , (       d  f       g = f)Nr  rB   rL   r   r  r   z'Method does not support filled contoursr(   rC   Fr  r  r  )rL   r   T)r   r  r   r   r  r   r   r*   r+   r  r  )r  r  r<   s      r   #test_find_nearest_contour_no_filledr  7  s    	H	B
&&"%%26626A+q1%78
9C	c2	B	z)R	S
1E2 
T 
z)R	S
2vUC 
T 
z)R	S
1fDA 
T	S 
T	S 
T	S 
T	Ss$   D D!4D2
D!
D/2
E defaultc                  T   [         R                  " 5       R                  5       n [         R                  " [        R
                  " SSS5      R                  SS5      / SQS9nU R                  U5        U R                   Vs1 s H  o"R                  5       iM     sn1 Sk:X  d   eg s  snf )Ngư>r;  r6   r   )gh㈵>gh㈵>gh㈵?r3   >   0.251.004.00)
r   rm   add_subplotr   r   	geomspacer9   r:   textsrt   )r   r<   texts      r   )test_contour_autolabel_beyond_powerlimitsr  F  sw    		!	!	#B	R\\$c2::2rB0
2BIIbM(*1MMO15MMMM1s    B%c                    ^ SSK Jm  [        R                  " SS5      n U R	                  SS5      nX-  n[
        R                  " U/ SQ/ SQSS	9nUR                  R                  S
5        UR                  R                  S5        UR                  5         UR                  5       u  pEU/ SQ:X  d   eSn[        U4S jU 5       5      (       d   e[        S [        XF5       5       5      (       d   eg )Nr   )	RectanglerC   r   r~   r   r   r   )#FFFF00#FF00FFz#00FFFFr   r   r   r   )z$x \leq -1e+250s$z$10.0 < x \leq 30.0$z$30.0 < x \leq 50.0$z$x > 1e+250s$)r   r  r  r   c              3   <   >#    U  H  n[        UT5      v   M     g 7fN)
isinstance).0ar  s     r   	<genexpr>0test_contourf_legend_elements.<locals>.<genexpr>b  s     9Az!Y''s   c              3   Z   #    U  H!  u  p[        UR                  5       U5      v   M#     g 7fr  )r
   get_facecolorr  r  r   s      r   r  r  c  s*      :841 !//+Q//8   )+)matplotlib.patchesr  r   r   r9   r   r   r   set_over	set_underchangedlegend_elementsrE   zip)r   r   hr<   artistslabelsexpected_colorsr  s          @r   test_contourf_legend_elementsr  P  s    ,
		!RA			"aA	A	a>#
%B GGUGGfJJL((*OG ' ' ' ' <O999999 :w8: : : : :r   c                  F   [         R                  " SS5      n U R                  SS5      nX-  n/ SQn[        R                  " U/ SQUSS9nUR                  5       u  pVU/ SQ:X  d   e[        S	 U 5       5      (       d   e[        S
 [        XS5       5       5      (       d   eg )NrC   r   r~   )r   z#00FF00r   r  r   r   )z
$x = 10.0$z
$x = 30.0$z
$x = 50.0$c              3   j   #    U  H)  n[        U[        R                  R                  5      v   M+     g 7fr  )r  mplr  Line2D)r  r  s     r   r  /test_contour_legend_elements.<locals>.<genexpr>r  s$     @1z!SYY--..s   13c              3   Z   #    U  H!  u  p[        UR                  5       U5      v   M#     g 7fr  )r
   	get_colorr  s      r   r  r  s  s)      1/41 !++-++/r  )r   r   r9   r   r   r  rE   r  )r   r   r  ri   r<   r  r  s          r   test_contour_legend_elementsr  g  s    
		!RA			"aA	A'F	Q|""
$B ((*OG????@@@@@@ 1w/1 1 1 1 1r   zalgorithm, klassmpl2005mpl2014serialthreaded)invalidNc                 6   [         R                  " SS/SS//5      nUb2  [        R                  " X S9n[	        UR
                  U5      (       d   eg [        R                  " [        5         [        R                  " X S9  S S S 5        g ! , (       d  f       g = f)Nr^   rd   r_         @	algorithm)	r   rn   r   r   r  ri  r*   r+   r  )r  klassr   r<   s       r   test_algorithm_namer  w  sp     	3*sCj)*A\\!1"//7777]]:&LL0 '&&s   ,B


Br  r  r  r  r  c                 0   [         R                  " SS/SS//5      n[        R                  " XSS9  U S:w  a  [        R                  " XSS9  g [        R
                  " [        5         [        R                  " XSS9  S S S 5        g ! , (       d  f       g = f)	Nr^   rd   r_   r  F)r  r  r  T)r   rn   r   r   r*   r+   r  )r  r   s     r   #test_algorithm_supports_corner_maskr    sm     	3*sCj)*A LLU; IQ>]]:&LLTB '&&s   (B
Bcontour_all_algorithmsgQ?c            	         / SQn [         R                  R                  S5      n[         R                  " [         R                  " SSS5      [         R                  " SSS5      5      u  p#[         R
                  " SU-  5      [         R                  " SU-  5      -  UR                  SS	S
9-   n[         R                  " U[        S9nSUS'   [         R                  R                  XES9n[        R                  " SS5      u  pg[        UR                  5       U 5       H7  u  pUR!                  X#XIS9  UR#                  X#XISS9  UR%                  U	5        M9     g )Nr  i  r   r^   r   rZ   r  r   )rZ   r   )scalesizer  T)r&   r   r	  rL   r  rt  )r  ri   )r   r   default_rngr!   rs   r   r   normalr  r  r  rn   r   r   r  ravelr   r   	set_title)

algorithmsrngr   r   r   r
  r   r   r   r  s
             r   test_all_algorithmsr    s    >J
))


%C;;r{{3R0"++c32JKDA
r!tRVVBqD\!CJJSwJ$GGA==$'DDJ
A!A\\!QFASYY[*5
A!1


1
<
Y 6r   c                     Sn [         R                  " SSU 5      n[         R                  " SSU 5      n[         R                  " X5      u  p4[         R                  " US-  * US-  -
  5      n[         R                  " US-
  S-  * US-
  S-  -
  5      nXV-
  S-  n[        R
                  " 5       nUR                  SSS9n	U	 HG  n
U
R                  5       nUR                  X4U5      nUR                  US	S
S9  UR                  S5        MI     g )Nr   r   r_   r   rd   rL   rC   )nrowsr"  Tr   )r   rh   zSimplest default with labels)r   r   r!   r   r   rm   
subfiguresr   r   r:   r  )r   r   r   ru   rv   r   r   rw   r   figsfr   r   s                r   test_subfigure_clabelr    s    E
		$U#A
		$U#A;;qDA	!Q$!Q$	B	1q5Q,1q5Q,.	/B	AA
**,C>>>+DZZ\ZZa 
		"TB	/
34	 r   rW   )soliddasheddashdotdottedc           
      n   Sn[         R                  " SSU5      n[         R                  " SSU5      n[         R                  " X#5      u  pE[         R                  " US-  * US-  -
  5      n[         R                  " US-
  S-  * US-
  S-  -
  5      nXg-
  S-  n[        R
                  " 5       u  pU
R                  XEUSS	S
9nU
R                  USSS9  U
R                  S5        UR                  b   e[        R
                  " 5       u  pUR                  XEUSS	U S9nUR                  USSS9  UR                  SU  35        UR                  U :X  d   e[        R
                  " 5       u  nnUR                  XEUSS	U SS9nUR                  USSS9  UR                  SU  35        UR                  U :X  d   eg )Nr   r   r_   r   rd   rL   rC   rZ   rt  ri   r   Trh   r   z0Single color - positive contours solid (default))ri   
linestylesz!Single color - positive contours r  ri   r  negative_linestyles)
r   r   r!   r   r   r   r   r:   r  r  )rW   r   r   r   ru   rv   r   r   rw   fig1r(  CS1fig2r)  CS2fig3r=  CS3s                     r   test_linestylesr    s    E
		$U#A
		$U#A;;qDA	A1	B	!a%!q1uqj(	)B	AA ID
++aAq+
-CJJsQtJ,MMDE>>!!! ID
++aAq+
?CJJsQtJ,MM5eW=>>>U""" ID#
++aAq*3  5CJJsQtJ,MM5eW=>>>U"""r   c           
      ^   Sn[         R                  " SSU5      n[         R                  " SSU5      n[         R                  " X#5      u  pE[         R                  " US-  * US-  -
  5      n[         R                  " US-
  S-  * US-
  S-  -
  5      nXg-
  S-  n[        R
                  " 5       u  pU
R                  XEUSS	S
9nU
R                  USSS9  U
R                  S5        UR                  S:X  d   eU [        R                  S'   [        R
                  " 5       u  pUR                  XEUSS	S
9nUR                  USSS9  UR                  SU  S35        UR                  U :X  d   e[        R
                  " 5       u  nnUR                  XEUSS	U S9nUR                  USSS9  UR                  SU  35        UR                  U :X  d   e[        R
                  " 5       u  nnUR                  XEUSS	SU S9nUR                  USSS9  UR                  SU  35        UR                  U :X  d   eg )Nr   r   r_   r   rd   rL   rC   rZ   rt  r  r   Tr  z1Single color - negative contours dashed (default)r  zcontour.negative_linestylez!Single color - negative contours z(using rcParams))ri   r  r  r  )r   r   r!   r   r   r   r   r:   r  r  r   )rW   r   r   r   ru   rv   r   r   rw   r  r(  r  r  r)  r  r  r=  r  fig4ax4CS4s                        r   test_negative_linestylesr    s$    E
		$U#A
		$U#A;;qDA	A1	B	!a%!q1uqj(	)B	AA ID
++aAq+
-CJJsQtJ,MMEF""h... 27CLL-.ID
++aAq+
-CJJsQtJ,MM5eW%& '""e+++ ID#
++aAq%+
HCJJsQtJ,MM5eW=>""e+++ ID#
++aAq*/  1CJJsQtJ,MM5eW=>""e+++r   c                  j   [         R                  " 5       R                  5       n U R                  5       nU R	                  [
        R                  " S5      R                  S5      5      nUR                  5         U R                  5       U:w  d   eUR                  5         U R                  5       U:X  d   eg )Nr  rq  )
r   rm   r  get_childrenr   r   r   r9   r:   remove)r   orig_childrenr<   s      r   test_contour_remover    s    		!	!	#BOO%M	BIIbM))&1	2BIIK??---IIK??---r   c                      [         R                  " 5       u  pSS/SS//n[        R                  " [        SS9   UR                  US9  S S S 5        g ! , (       d  f       g = f)Nr   rC   zcontour\(\) takes from 1 to 4r(   )rw   )r   r   r*   r+   r,   r   )r   r   r   s      r   test_contour_no_argsr    sK    llnGCFQFD	y(H	I


T
 
J	I	Is   A
A c                      [         R                  " 5       u  pSS/SS//n[        R                  " SS/SUR                  S9nUR                  X#S9nUR                  5       c   eg )Nr   rC   r   )r   )	clip_path)r   r   mpatchesCircle	transAxesr   get_clip_path)r   r   r   circler<   s        r   test_contour_clip_pathr    s`    llnGCFQFD__c3ZEF	D	+B)))r   c                     [         R                  R                  SS5      u  p[         R                  " S5      S-  R	                  S5      R                  [        5      n/ SQ/ SQ/ SQ/n[        R                  " UR                  5       5      R                  R                  5       S/:X  d   e[        R                  " U5      R                  R                  5       S/:X  d   e[        R                  " [         R                  R                  X#S95      R                  R                  5       S/:X  d   e[        R                  " UR                  5       5      R                  R                  5       / SQ:X  d   e[        R                  " U5      R                  R                  5       / SQ:X  d   e[        R                  " [         R                  R                  X#S95      R                  R                  5       / SQ:X  d   eUR                  5       n[        R                  " XUR                  5       5      R                  R                  5       S/:X  d   e[        R                  " XU5      R                  R                  5       S/:X  d   e[        R                   " XUR                  5       5      R                  R                  5       / SQ:X  d   e[        R                   " XU5      R                  R                  5       / SQ:X  d   eg )	NrL   r   )r&   r&   )FFF)FTFr   r	  )r   r   rC   )r   r   r8   r   r9   astyper  r   r   tolistr4   r  rn   r   r  
tricontourtricontourf)r   r   r   ms       r   test_bool_autolevelr  %  s   99>>!QDA	1	""6*11$7A	 46KLA;;qxxz"))002rd:::;;q>  '')bT111;;ruu{{1{-.55<<>2$FFF<<
#**113zAAA<<?!!((*j888<<A./66==?:MMM		A>>!
+2299;tCCC>>!"))002rd:::??1,33::<
JJJ??1#**113zAAAr   c                     [         R                  " [         R                  [         R                  /[         R                  [         R                  //5      n [        [        R
                  " U 5      R                  / SQ5        g )N)	gvIh%<g7Q5gvIh%,g [nr   g [n=gvIh%,=g7Q5=gvIh%<=)r   rn   nanr   r   r   r4   )r   s    r   test_all_nanr  6  sN    
266266"RVVRVV$456Ackk!n33@Ar   c                     [         R                  " [         R                  " SSS5      [         R                  " SSS5      5      u  p[         R                  " U 5      [         R                  " U5      -  n[
        R                  " XUSS/S9nUR                  UR                  4 H<  n[        U5      S:X  d   e[        US   5      S:X  d   e[        US   5      S:X  a  M<   e   g )	Nr   r   rL   r   r3   rB   rC   rA   )
r   r!   r   r   r   r   r   allsegsallkindsrD   )r   r   r   r<   results        r   test_allsegs_allkindsr  =  s    ;;ryyB*BIIaQ,?@DA
q	BFF1IA	Q1aX	.B ::r{{+6{a6!9~"""6!9~""" ,r   )Wr   platformr-   unittestr   	contourpynumpyr   numpy.testingr   r   
matplotlibr  r   r   r   r   matplotlib.colorsr	   r
   r  patchesr  matplotlib.testing.decoratorsr   r   r*   r   r$   markparametrizer   emptyr1   r=   rH   rS   rp   r{   r   machiner   r   r   r   r   r   r  r  r  r  r  r.  r3  rC  rI  rQ  r]  backendra  rg  rm  r}  r  r  r  rW   contextr  r  r  Mpl2005ContourGeneratorMpl2014ContourGeneratorSerialContourGeneratorThreadedContourGeneratorr  r  r  r  r  r  r  r  r  r  r  r  r`  r   r   <module>r0     s     	    S  8 8 1 % O  iilBIIaL"((7"34=?iimRYYr]BHHW$56:<hhx"))B-'):;;=iimRXXh''):;;=hhv)288G+<=46hhw&)288G+<=46hhy288I.0AB.0hhy288I.0CD!#	seXKMcA3!KM'+ ,-,	 , (* )* *+WRVW
D X
D(& 23"'ugG#G# 9:#++-9auFF< *+"'ugG9G9  +N O$	O$ ,-W%P< Q<( ./w?# @#0 67"'s<><>82 24RS".1.1$B HAB=B=,.& ./"'""B )*G&..0H<d$HK	HK #3"4#W$gG/G/ I L
22 U. .
 #=">#W$88
> #3"4#W$DBCBC0 #F"G#W$88A,B 9N N:.1  223223	001)445	11 =?C?C #;"<#W$DB B "5( 57#7#@ 57&,7&,R.*B"A
#r   