
    G8ca                     B	   d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dl	Z
d dlmZ d dl	mZmZmZ d dlmZmZ d dlZd Zd Zej.                  j1                  d ej2                  d	       ej2                  d	       ej4                  d
      fdf ej2                  d       ej2                  d       ej4                  d
      fdf ej4                  d       ej2                  d       ej4                  d
      fdf ej2                  d       ej4                  d       ej4                  d
      fdf ej4                  d       ej4                  d
       ej4                  d
      fdf ej4                  d
       ej4                  d       ej4                  d
      fdf ej4                  d       ej4                  d       ej4                  d
      fdf ej4                  d       ej4                  d       ej4                  d      fdfd ggfdfd gd gd ggfdfg
      d        Zd Zd Zd Zd Z edgdd       d!        Z  ed"gd#      d$        Z! ed%gdd&'      d(        Z" ed)gd*      d+        Z# ed,gdd ejH                         d-k(  rd nd./      d0        Z% ed1d2gd#      d3        Z&d4 Z'd5 Z(d6 Z)ej.                  j1                  d7g d8      d9        Z* ed:gddd;/      d<        Z+ ed=gddd>/      d?        Z, ed@gdAgddB      dC        Z-ej.                  j1                  dDg dE      dF        Z.ej.                  j_                  dG      dH        Z0 edIgdAgdJ      dK        Z1dL Z2 edMgdAgdJ      dN        Z3 edOgdAgdJ      dP        Z4dQ Z5dR Z6e
jn                  jq                  dS      dT        Z9dU Z:dV Z;ej.                  j1                  dWdXejx                  fdYejz                  fdZej|                  fd[ej~                  fd\g      d]        Z@ej.                  j1                  d^g d_      d`        ZA edagdAgdJ      db        ZBdc ZCej.                  j1                  ddg de      df        ZDej.                  j1                  ddg de      dg        ZEy)h    N)assert_array_almost_equalassert_array_almost_equal_nulp)image_comparison)pyplot
rc_contextticker)LogNorm
same_colorc                      t        j                  d      } t        j                  d      }t         j                  j                  d      }t        j                         \  }}|j                  | ||       y N
   	   r   r   )nparangerandompltsubplotscontour)xyzfigaxs        ?/usr/lib/python3/dist-packages/matplotlib/tests/test_contour.pytest_contour_shape_1d_validr      sO    
		"A
		!A
		!AllnGCJJq!Q    c                     t        j                  d      } t        j                  d      }t        j                  | |      \  }}t         j                  j                  d      }t	        j
                         \  }}|j                  |||       y r   )r   r   meshgridr   r   r   r   )r   r   xgygr   r   r   s          r   test_contour_shape_2d_validr"      sc    
		"A
		!A[[AFB
		!AllnGCJJr2q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                     t        j                         \  }}t        j                  t        t        j                  |            5   |j                  |   d d d        y # 1 sw Y   y xY w)Nmatch)r   r   pytestraises	TypeErrorreescaper   )argsmessager   r   s       r   test_contour_shape_errorr/   %   sM    . llnGC	y		'(:	; 

D  s   AA(c                  @   t        j                  d      } t         j                  j                  d      }t        j                         \  }}t        j                  t              5 }|j                  | | |g        d d d        t              dk(  sJ y # 1 sw Y   xY w)Nr   r#   levels   )
r   r   r   r   r   r(   warnsUserWarningr   lenr   r   r   r   records        r   test_contour_empty_levelsr9   A   s{    
		!A
		 AllnGC	k	" 'f


1a2
&'v;!' 's   %BBc                  J   t        j                  d      j                  d      } t        j                         \  }}|j                  | d      }t        |j                        dkD  sJ |j                  | d      }|j                  |j                  k(  j                         sJ y )N   r$         r3   r1   )	r   r   reshaper   r   r   r6   r2   all)r   r   r   cs1cs2s        r   test_contour_NlevelsrC   L   s     			"f%AllnGC
**Q
Cszz?Q
**Qq*
!CJJ#**$))+++r   c                  \   t        j                  d      } t        j                  d      }t        j                         \  }}ddi}t        j                  t              5 }|j                  | | |dg      }|j                  ||       d d d        t              dk(  sJ y # 1 sw Y   xY w)Nr   r#         ?z%1.2fr1   )fmtr3   )r   r   zerosr   r   r(   r4   r5   r   clabelr6   )r   r   r   r   rF   r8   css          r   test_contour_badlevel_fmtrJ   W   s    
 			!A
AllnGCw-C	k	" fZZ1aZ-
		"#	 v;! s   *B""B+c                  (   t        j                  d      } t        j                  d      }t        j                         \  }}t        j                  t              5 }|j                  | | |       d d d        t              dk(  sJ y # 1 sw Y   xY w)Nr   r#   r3   )
r   r   onesr   r   r(   r4   r5   r   r6   r7   s        r   test_contour_uniform_zrM   g   sp    
		!A
AllnGC	k	" f


1av;! s   BBcontour_manual_labelsTmpl20)remove_textstylec                     t        j                  t        j                  dd      t        j                  dd            \  } }t        j                  t        j                  t        |       t        |      g      d      }t        j                  dd       t        j                  | ||      }t        j                  g d      }t        j                  ||       t        j                  g d	      }t        j                  ||d
d       y )Nr   r      )   rS      )figsizedpi))rE         @)rE   皙@)rE         @)manual))       @rX   )r\   rY   )r\   rZ   small)rg)r[   fontsizecolors)r   r   r   maxdstackabsr   figurer   arrayrH   )r   r   r   rI   ptss        r   test_contour_manual_labelsrh   r   s    ;;ryyB'1b)9:DAq
ryy#a&#a&)*A.AJJv3'	Q1	B
((7
8CJJr#
((7
8CJJr#
Cr   z$contour_manual_colors_and_levels.png)rP   c                     dt         j                  d<   t        j                  dd      \  } }t        j                  d      j                  dd      }g d}g d}t        |j                        D ]q  \  }}|dz  d	k(  }g d
|dz     }|r)|dv rdnd }	|dv rdnd }
|j                  |||	|
 ||      }n|j                  ||d d ||      }t        j                  ||       s y )NFpcolormesh.snaprS   r=   r;   r$   )redyellowpinkblueblack)rS   r=      r           )neitherminrb   both)rb   rr   r3   )rs   rr   )ra   r2   extendr   )r   rcParamsr   r   r   r?   	enumerateflatcontourfr   colorbar)_axsdatara   r2   ir   filledrv   first_color
last_colorcs               r   $test_given_colors_levels_and_extendsr      s     ',CLL"#\\!QFAs99R=  A&D7FF388$ 2Q"216:  &);;!K%);;JDJ)G#)&  :A 

4s"(  9A 	Q2!r   zcontour_log_locator.svgF)rQ   rP   c            
         t        j                         \  } }d}t        j                  dd|      }t        j                  dd|      }t        j                  ||      \  }}t        j
                  |dz   |dz  z
        }t        j
                  |dz  dz   |dz  dz  z
        }|d|z  z   }	|j                  |	t        j                         	      }
t        |
j                  t        j                  d
t        j                  dd                   | j                  |
|      }t        |j                  j                         |
j                         y )Nd         rX          r\   rS   r   2   locator      $@ir$   rw   )r   r   r   linspacer   expr{   r   
LogLocatorr   r2   powerr   r|   r   
get_yticks)r   r   Nr   r   XYZ1Z2r   r   cbs               r   test_log_locator_levelsr      s
    llnGCA
D#q!A
D#q!A;;q!DAq	A1	B	!b&1B{*	+BR<D
D&"3"3"56AahhryyQ7G(HI	aB	Bbee..0!((;r   zcontour_datetime_axis.png)rQ   c            	      h   t        j                         } | j                  ddd       t        j                  ddd      }t	        j
                  t        d      D cg c]  }|t        j                  |      z    c}      }t	        j                  d      }t	        j                  t	        j                  d      t	        j                  d            \  }}||z  }t        j                  d	       t        j                  |||       t        j                  d
       t        j                  |||       t	        j                  |t        j                     dd      }t	        j                  |d d t        j                  f   dd      }t        j                  d       t        j                  |||       t        j                  d       t        j                  |||       | j                         D ]9  }|j!                         D ]$  }	|	j#                  d       |	j%                  d       & ; y c c}w )Ng?g\(\?g333333?)hspacetopbottomi  r3      )days      r   )axis      right   )r   re   subplots_adjustdatetimer   rf   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G$++33GHA
		"A[[2		"6FB
RAKKKK1aKKLLAq
		!BJJ-!,A
		!ArzzM"BQ/AKKKK1aKKLLAqlln #'') 	#ELL!r"	## Hs    H/z!contour_test_label_transforms.pngx86_64g{Gz?)rP   rQ   tolc                     d} t        j                  dd|       }t        j                  dd|       }t        j                  ||      \  }}t        j                  |dz  |dz  z    dz        dt         j                  z  z  }t        j                  |dz
  dz  dz  |dz
  d	z  dz  z    dz        dt         j                  z  d	z  dz  z  }d
||z
  z  }t        j                  dd      \  }}	|	j                  |||      }
g d}g d}|
j                          |D ]  \  }}|
j                  ||dd         |D ]  \  }}|
j                  ||dd        y )N皙?r   rX   r   r\   rS   r3   g      ?      ?r   ))      )ig  i"  )i	  i  ))r   )r   g      )gffffff@r3   T)inline	transformF)
r   r   r   r   pir   r   r   rH   add_label_near)deltar   r   r   r   r   r   Zr   r   CS
disp_units
data_unitss                r   test_labelsr      s\    E
		$U#A
		$U#A;;q!DAq	!Q$A+"	#q255y	1B
&&QUcMA%!a%3(::;a?
@ruu9s?S "B 	RAll1a GC	Aq!	B5J0JIIK =1
!Qtt<=  >1
!Qtu=>r   zcontour_corner_mask_False.pngzcontour_corner_mask_True.pngc                  l   d} d}d}t         j                  j                  dg       t        j                  t        j                  dd|       t        j                  dd|             \  }}t        j
                  d|z        t        j                  d|z        z  |t         j                  j                  | |       z  z   }t         j                  j                  | |       |k\  }t         j                  j                  ||	      }d
D ]-  }t        j                          t        j                  ||       / y )N<   ffffff?rE   r3   r   r\      rp   mask)FTcorner_mask)r   r   seedr   r   cossinrandmarf   r   re   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FDAq
qsBFF1Q3K)BIINN1a,@"@@A99>>!Q:-D
AD!A$ 1

QK01r   c                      ddgddgg} t        j                          t        j                  t              5  t        j
                  | ddg       d d d        y # 1 sw Y   y xY w)Ng?g333333?r   ffffff?rE   rq   )r   re   r(   r)   
ValueErrorr{   )r   s    r   test_contourf_decreasing_levelsr      sP    
sc3Z AJJL	z	" $Qc
#$ $ $s   AA!c                      t        j                  d      j                  d      } t        j                  dd      }t        j
                  | |      }t        |j                  t        j                  ddd             y )	Nr;   r<   r=   T)nbins	symmetricr   ir>   )	r   r   r?   r   MaxNLocatorr{   r   r2   r   )r   r   rI   s      r   test_contourf_symmetric_locatorr     sU    
		"f%AooA6G	a	)BbiiS"a)@Ar   c                  6   t        j                  t        j                  ddd      t        j                  ddd            \  } }t        j                  | |      }t	        j
                          t	        j                  | ||      }t	        j                  |       y )Nr   rS   r=   )r   r   r   hypotr   re   r   rH   )r   r   r^   rI   s       r   test_circular_contour_warningr     se    ;;r{{2q!,bkk"a.CDDAq
AAJJL	Q1	BJJrNr   z-use_clabeltext, contour_zorder, clabel_zorder))T{     )Fr   r   )Tr   N)Fr   Nc                 \   t        j                  t        j                  dd      t        j                  dd            \  }}t        j                  t        j                  t        |      t        |      g      d      }t        j                  d      \  }\  }}|j                  ||||      }	|j                  ||||      }
|	j                  ||       }|
j                  ||       }|d|z   }n|}|D ]  }|j                         |k(  rJ  |D ]  }|j                         |k(  rJ  y )Nr   r   rS   )ncols)zorder)r   use_clabeltext)r   r   r   rb   rc   rd   r   r   r   r{   rH   
get_zorder)r   contour_zorderclabel_zorderr   r   r   r   ax1ax2rI   	cs_filledclabels1clabels2expected_clabel_zorderrH   s                  r   test_clabel_zorderr     s)    ;;ryyB'1b)9:DAq
ryy#a&#a&)*A.All+OC#s	Q1^	4BQ1^<IyynyMH}/=   ?H !">!1!. =  "&<<<<= =  "&<<<<=r   zcontour_log_extension.pnggv?c            	         dt         j                  d<   t        j                  ddd      \  } \  }}}| j                  dd	       t	        j
                  d
dd      }t	        j                  d|      j                  dd      }t	        j                  dd      }t	        j                  d|      }|j                  |t        |j                         |j                                     }|j                  ||t        |j                         |j                               d      }	|j                  ||t        |j                         |j                               d      }
t        j                  ||      }|j                  j                         dk(  sJ t        j                  |	|      }t!        |j                  j                         t	        j"                  d             t        j                  |
|      }y )NFrj   r3   r$   )r   r>   rV   g?r   )leftr   g      g      #@i  r   r   (   g      g      @r   )vminvmax)normrr   )r2   r   rv   rt   rw   )g:0yE>g    _B)-C6?g    .A)r   rx   r   r   r   r   r   r?   r   r{   r	   rs   rb   r|   r   get_ylimr   rf   )r   r   r   ax3data_expr   
levels_expr2   c1c2c3r   s               r   test_contourf_log_extensionr  3  s   
 ',CLL"# <<1g>C#sCT. {{4d+H88B!))"b1D3#JXXc:&F 
d"
D 
 
FB 
d6"

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

6::<H# 
 
%B 
bS	!B55>>|+++	bS	!B"255>>#3RXXk5JK	bS	!Br   zcontour_addlines.pnggQ?c                     dt         j                  d<   t        j                         \  } }t        j                  j                  d       t        j                  j                  dd      dz  }|j                  |      }|j                  |dz         }| j                  |      }|j                  |       t        |j                  j                         ddgd	       y )
NFrj   i,N,r   i'  i  gd]Kȓ\@g6>W'z@r$   )r   rx   r   r   r   r   r   
pcolormeshr   r|   	add_linesr   r   r   )r   r   r   pcmcontr   s         r   test_contour_addlinesr  W  s     ',CLL"#llnGCIINN8
		r2u$A
--
C::afD	c	BLLbeenn.:0FJr   contour_unevenpng)baseline_images
extensionsrP   rQ   c                  ^   dt         j                  d<   t        j                  d      j	                  dd      } t        j
                  dd      \  }}|d   }|j                  | g d	
      }|j                  ||d       |d   }|j                  | g d	
      }|j                  ||d       y )NFrj      r=   rT   r3   rS   r   )rS   r=   rT   r   r   r1   proportional)r   spacinguniform)r   rx   r   r   r?   r   r{   r|   )r   r   r~   r   rI   s        r   test_contour_unevenr  j  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?NNr  )r  (\@Nr  )r  r  Gz@r  c                    t        | |d      5  t        j                         \  }}t        j                  d      j                  dd      }|j                  ||      }|j                  d   d   |k(  sJ 	 d d d        y # 1 sw Y   y xY w)N)zlines.linewidthzcontour.linewidth)rcr;   r=   r$   )
linewidthsr   )r   r   r   r   r   r?   r   tlinewidths)rc_lines_linewidthrc_contour_linewidthcall_linewidthsexpectedr   r   r   rI   s           r   test_contour_linewidthr"  z  s     
+=-AC 
D 0,,.RIIcN""1a(ZZoZ6~~a #x///0 0 0s   A'BB
pdfc                  `    t        j                  t        j                  ddgddgg             y )Nr3   rS   r$   r=   )r   rH   r    r   r   test_label_nonaggr&    s&     JJs{{QFQF+,-r   contour_closed_line_loop)r  r  rP   c                      g dg dg dg dg} t        j                  d      \  }}|j                  | dgdgd	       |j                  d
d       |j	                  d
d       y )N)r   r   r   )r   rS   r   )rS   r3   rS   )rS   rS   r   r   r   r   )r  alphagg @g@)r   r   r   set_xlimset_ylim)r   r   r   s      r   test_contour_closed_line_loopr,    sX     
Iy)4All6*GCJJq3%RDJ4KKcKKcr   c                  R   t        j                  ddgddg      \  } }| |z   }t        j                         \  }}|j	                  | ||      }|j                  | ||      }|j                  |j                  k7  sJ |j                  ||      }|j                  |j                  k(  sJ y )Nrq   rE   )r   r   r   r   r{   r   _contour_generator)r   r   r   r   r   qcs1qcs2qcs3s           r   test_quadcontourset_reuser2    s     ;;SzC:.DAq	AAllnGC;;q!QD::aAD""d&=&====::dAD""d&=&====r   contour_manualc                     ddl m}  t        j                  d      \  }}d}ddgddgddggg}ddgddggddgdd	ggg}ddgdd	gddgddgddggg}ddgddgddgddgddggdd	gdd	gddggg} | |g d
||gd|        | |ddg||gdddg       d	dgddgddgd	dgd	dgddgddgddgddgddgg
g}g dg}	 | |ddg|g|	gd|        | |dg|g|	gdd       y )Nr   )
ContourSet)r=   r=   r   viridisrS   r3   r$   r=   r   r3   rS   T)r   cmapr^   k)r  ra   r   r>   rT   )
r3   rS   rS   rS   O   r3   rS   rS   rS   r:  )ra   r  )matplotlib.contourr5  r   r   )
r5  r   r   r8  lines0lines1filled01filled12segskindss
             r   test_contour_manualrB    s}    .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rAq6FF+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                     t        j                  d      \  } }t        j                  g dg d      \  }}d|dz
  dz  z
  |dz
  dz  z   }t        j                  |t
              }d	x|d
<   |d<   t        j                  j                  ||      }|j                  |||d	      }| j                  |      }|j                  |||d	d      }|j                  |       y )N)rT   r>   r   )r   r3   rS   r$   r=   r7  g333333?rS   r3   dtypeT)r3   r3   )r3   r$   r   r   r9  )r   ra   )r   r   r   r   
zeros_likeboolr   rf   r{   r|   r   r	  )	r   r   r   r   r   r   r   cbarliness	            r   &test_contour_line_start_on_corner_edgerK    s     ll6*GC;;	2DAqq1uqjAEA:%A==$'D""DJd
AD!A[[Aqd[3F<<DJJq!QDJ=ENN5r   c                     t        j                  d      } t        j                  t         j                   t        j                  | dz
  dz  d      dz  z        }t        j                  |d      }|j                  ddd	      }d
}t        ||       |j                  ddd	      }d}t        ||       |j                  ddd	      }d}t        ||       |j                  dddd      }d}t        ||       y )N   rN  r>   rS   r         9@r   r3   Fpixel)r3   r   !   YİØt?rS  gb?rp   )r3   r   r>   g`3@gDlpf?gݓ?)r$   r      gͰQo&?ghW!@g|o^}?r>   r   indicesrQ  )r>   r      gA*Ŏ@g      @gA?)	r   rW  r   r   sumr   r   find_nearest_contourr   )xyimgrI   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6<49 . ;O ;o/?@r   c                  ~   t        j                  d      } t        j                  t         j                   t        j                  | dz
  dz  d      dz  z        }t        j                  |d      }t        j                  t        d      5  |j                  d	d	d
       d d d        t        j                  t        d      5  |j                  d	ddd
       d d d        t        j                  t        d      5  |j                  dddd       d d d        y # 1 sw Y   |xY w# 1 sw Y   OxY w# 1 sw Y   y xY w)NrM  r>   rS   r   rO  r   z(Method does not support filled contours.r&   r3   FrP  rU  rV  )rS   r   T)r   rW  r   r   rY  r   r{   r(   r)   r   rZ  )r[  r\  rI   s      r   #test_find_nearest_contour_no_filledra    s   	H	B
&&"%%26626A+q1%78
9C	c2	B	zG
I 3
1E23 
zG
I D
2vUCD 
zG
I B
1fDAB B3 3D DB Bs$   DD'<D3D$'D03D<defaultc                  N   t        j                         j                         } t        j                  t	        j
                  ddd      j                  dd      g d      }| j                  |       | j                  D ch c]  }|j                          c}h dk(  sJ y c c}w )Ngư>r   r   r   )gh㈵>gh㈵>gh㈵?r1   >   0.251.004.00)
r   re   add_subplotr   r   	geomspacer?   rH   textsget_text)r   rI   texts      r   )test_contour_autolabel_beyond_powerlimitsrl    su    		!	!	#B	R\\$c2::2rB0
2BIIbM(*1DMMO15MMMM1s    B"c                     ddl m t        j                  dd      } | j	                  dd      }| |z  }t        j                  |g dg dd	      }|j                  j                  d
       |j                  j                  d       |j                          |j                         \  }}|g dk(  sJ d}t        fd|D              sJ t        d t        ||      D              sJ y )Nr   )	Rectangler3   r   ru   r   r   r   )#FFFF00#FF00FFz#00FFFFrt   r2   ra   rv   rk   rn   )z$x \leq -1e+250s$z$10.0 < x \leq 30.0$z$30.0 < x \leq 50.0$z$x > 1e+250s$)rn   rp  rq  rk   c              3   6   K   | ]  }t        |        y wN
isinstance).0arn  s     r   	<genexpr>z0test_contourf_legend_elements.<locals>.<genexpr>  s     9Az!Y'9   c              3   V   K   | ]!  \  }}t        |j                         |       # y wrt  )r
   get_facecolorrw  rx  r   s      r   ry  z0test_contourf_legend_elements.<locals>.<genexpr>  s*      :1a !//+Q/ :   '))matplotlib.patchesrn  r   r   r?   r   r{   r8  set_over	set_underchangedlegend_elementsr@   zip)r   r   hrI   artistslabelsexpected_colorsrn  s          @r   test_contourf_legend_elementsr  	  s    ,
		!RA			"aA	AA	a>#
%B GGUGGfJJL((*OGV ' ' ' ' <O99999 :w8: : : :r   c                  J   ddl m t        j                  dd      } | j	                  dd      }| |z  }g d}t        j                  |g d|d	      }|j                         \  }}|g d
k(  sJ t        fd|D              sJ t        d t        ||      D              sJ y )Nr   )LineCollectionr3   r   ru   )rn   z#00FF00rk   ro  rt   rr  )z
$x = 10.0$z
$x = 30.0$z
$x = 50.0$c              3   6   K   | ]  }t        |        y wrt  ru  )rw  rx  r  s     r   ry  z/test_contour_legend_elements.<locals>.<genexpr>,  s     >z!^,>rz  c              3   V   K   | ]!  \  }}t        |j                         |       # y wrt  )r
   	get_colorr}  s      r   ry  z/test_contour_legend_elements.<locals>.<genexpr>-  s)      11a !++-+ 1r~  )
matplotlib.collectionsr  r   r   r?   r   r   r  r@   r  )r   r   r  ra   rI   r  r  r  s          @r   test_contour_legend_elementsr     s    5
		!RA			"aA	AA'F	Q|""
$B ((*OGV????>g>>>> 1w/1 1 1 1r   zalgorithm, klassmpl2005mpl2014serialthreaded)invalidNc                 (   t        j                  ddgddgg      }|0t        j                  ||       }t	        |j
                  |      sJ y t        j                  t              5  t        j                  ||        d d d        y # 1 sw Y   y xY w)NrE   r\   rX         @	algorithm)	r   rf   r   r{   rv  r.  r(   r)   r   )r  klassr   rI   s       r   test_algorithm_namer  1  sz     	3*sCj)*A\\!y1"//777]]:& 	1LLi0	1 	1 	1s   'BBr  r  r  r  r  c                 2   t        j                  ddgddgg      }t        j                  || d       | dk7  rt        j                  || d       y t	        j
                  t              5  t        j                  || d       d d d        y # 1 sw Y   y xY w)	NrE   r\   rX   r  F)r  r   r  T)r   rf   r   r{   r(   r)   r   )r  r   s     r   #test_algorithm_supports_corner_maskr  B  s     	3*sCj)*A LLiU; IQ)>]]:& 	CLLiTB	C 	C 	Cs   +BBcontour_all_algorithmsc                     g d} t         j                  j                  d      }t        j                  t        j                  ddd      t        j                  ddd            \  }}t        j
                  d|z        t        j                  d|z        z  |j                  dd	
      z   }t        j                  |t              }d|d<   t         j                  j                  ||      }t        j                  dd      \  }}t        |j                         |       D ]A  \  }}	|j!                  ||||	       |j#                  ||||	d       |j%                  |	       C y )Nr  i  rq   rE   r   rT   rN  r   )rT   r   )scalesizerE  T)r$   r   r   rS   r  r9  )r  ra   )r   r   default_rngr   r   r   r   normalrG  rH  r   rf   r   r   r  ravelr{   r   	set_title)

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


1ai
<
Y r   c                     d} t        j                  dd|       }t        j                  dd|       }t        j                  ||      \  }}t        j                  |dz   |dz  z
        }t        j                  |dz
  dz   |dz
  dz  z
        }||z
  dz  }t	        j
                         }|j                  dd      }	|	D ]J  }
|
j                         }|j                  |||      }|j                  |d	d
       |j                  d       L y )Nr   r   rX   r   r\   rS   r3   )nrowsr   Tr   )r   r`   zSimplest default with labels)r   r   r   r   r   re   
subfiguresr   r   rH   r  )r   r   r   r   r   r   r   r   r   figsfr   r   s                r   test_subfigure_clabelr  e  s    E
		$U#A
		$U#A;;q!DAq	!Q$!Q$	B	1q5Q,1q5Q,.	/B	bAA
**,C>>>+D 5ZZ\ZZ1a 
		"TB	/
34	5r   rQ   )soliddasheddashdotdottedc           	         d}t        j                  dd|      }t        j                  dd|      }t        j                  ||      \  }}t        j                  |dz   |dz  z
        }t        j                  |dz
  dz   |dz
  dz  z
        }||z
  dz  }t	        j
                         \  }	}
|
j                  |||dd	
      }|
j                  |dd       |
j                  d       |j                  J t	        j
                         \  }}|j                  |||dd	|       }|j                  |dd       |j                  d|         |j                  | k(  sJ t	        j
                         \  }}|j                  |||dd	| d      }|j                  |dd       |j                  d|         |j                  | k(  sJ y )Nr   r   rX   r   r\   rS   r3   rT   r9  ra   r   Tr`   r   z0Single color - positive contours solid (default))ra   
linestylesz!Single color - positive contours r  ra   r  negative_linestyles)
r   r   r   r   r   r   r   rH   r  r  )rQ   r   r   r   r   r   r   r   r   fig1r   CS1fig2r   CS2fig3r   CS3s                     r   test_linestylesr  y  s    E
		$U#A
		$U#A;;q!DAq	A1	B	!a%!q1uqj(	)B	bAA ID#
++aAq+
-CJJsQtJ,MMDE>>!!! ID#
++aAq+
?CJJsQtJ,MM5eW=>>>U""" ID#
++aAq*3  5CJJsQtJ,MM5eW=>>>U"""r   c           	         d}t        j                  dd|      }t        j                  dd|      }t        j                  ||      \  }}t        j                  |dz   |dz  z
        }t        j                  |dz
  dz   |dz
  dz  z
        }||z
  dz  }t	        j
                         \  }	}
|
j                  |||dd	
      }|
j                  |dd       |
j                  d       |j                  dk(  sJ | t        j                  d<   t	        j
                         \  }}|j                  |||dd	
      }|j                  |dd       |j                  d|  d       |j                  | k(  sJ t	        j
                         \  }}|j                  |||dd	|       }|j                  |dd       |j                  d|         |j                  | k(  sJ t	        j
                         \  }}|j                  |||dd	d|       }|j                  |dd       |j                  d|         |j                  | k(  sJ y )Nr   r   rX   r   r\   rS   r3   rT   r9  r  r   Tr  z1Single color - negative contours dashed (default)r  zcontour.negative_linestylez!Single color - negative contours z(using rcParams))ra   r  r  r  )r   r   r   r   r   r   r   rH   r  r  rx   )rQ   r   r   r   r   r   r   r   r   r  r   r  r  r   r  r  r   r  fig4ax4CS4s                        r   test_negative_linestylesr    s6    E
		$U#A
		$U#A;;q!DAq	A1	B	!a%!q1uqj(	)B	bAA ID#
++aAq+
-CJJsQtJ,MMEF""h... 27CLL-.ID#
++aAq+
-CJJsQtJ,MM5eW%& '""e+++ ID#
++aAq%+
HCJJsQtJ,MM5eW=>""e+++ ID#
++aAq*/  1CJJsQtJ,MM5eW=>""e+++r   )Fr   platformr+   	contourpynumpyr   numpy.testingr   r   
matplotlibmplmatplotlib.testing.decoratorsr   r   r   r   r   matplotlib.colorsr	   r
   r(   r   r"   markparametrizer   emptyr/   r9   rC   rJ   rM   rh   r   r   r   machiner   r   r   r   r   r   r  r  r  r"  backendr&  r,  r2  rB  rK  r_  ra  rQ   contextrl  r  r  Mpl2005ContourGeneratorMpl2014ContourGeneratorSerialContourGeneratorThreadedContourGeneratorr  r  r  r  r  r  r%  r   r   <module>r     s     	  ?  : 8 8 1  biilIBIIaL("((7"34=?biimYRYYr]HBHHW$56:<bhhx)"))B-'):;;=biimXRXXh''):;;=bhhv)8288G+<=46bhhw&)8288G+<=46bhhy8288I.0AB.0bhhy8288I.0CD!#	seXKMcA3!KM'+ ,-,,  *+WM	D N	D 9:M N< ,-W#%<%<( ./w?# @#0 67"'+8++-9atE>E>8 213"$1$1$B HAB=B=2 ./"'""B )*"'t=K	=K #3"4#W$gG/G/ I L
00 U. .
 #=">#W$88
> #3"4#W$8C8C0 #F"G#W$88A0B$ 9N N:.1" 223223	001)445	11 =?C?C #;"<#W$8 8 "5( 57#7#@ 57&,7&,r   