
    d                   Z   d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
mZmZ d dlZd dlZd dlZd dlZd dlmZ d dlmZmZ d dlmZ d d	lmZ d d
lmZ d dlm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.  ed          Z/	 d dl0Z1d dl2m3Z4 d dl5Z5n# e6$ r Y nw xY w	 d dl7Z7n# e6$ r Y nw xY wej8        d             Z9 ej:        dd          d             Z;ej<        j=        ej<        >                    d          d                         Z?d Z@d ZAd ZBd ZCddZDd ZEe- G d d                      ZF G d d eF          ZG G d! d"eF          ZH G d# d$eF          ZI G d% d&eF          ZJe- G d' d(                      ZKe- G d) d*                      ZL G d+ d,          ZMej<        jN         G d- d.eMeF                      ZOej<        jN         G d/ d0eMeF                      ZP G d1 d2eMeF          ZQ G d3 d4eF          ZRej<        jN         G d5 d6eMeF                      ZS G d7 d8eMeF          ZT G d9 d:eF          ZUej<        V                    d;           G d< d=eF                      ZWej<        V                    d;           G d> d?eF                      ZXej<        V                    d;           G d@ dAeF                      ZYe- G dB dCeF                      ZZe- G dD dEeF                      Z[e- G dF dGeF                      Z\ G dH dIeF          Z]ej<        V                    dJ          e,ej<        ^                    e/ dK           G dL dMeF                                              Z_e,ej<        ^                    e/dN           G dO dPeF                                  Z`e- G dQ dR                      Zae-ej<        b                    dSg dT          ddW                        Zce-ej<        b                    dSdXdYg          ddZ                        Zde-dd[            Zee-d\             Zfe-ej<        b                    g d] ejg        d^ddd_i d`a           ejg        dbddd_dcddidea           ejg        ddfdd_i dga           ejg        ddhdd_dcddidia           ejg        ddfdd_i dja           ejg        ddfdkd_i dla           ejg        ddfdmd_i dna           ejg        ddddi doa           ejg        dddd_i dpa           ejg        dddd_dcddidqa          g
          ddx                        Zhe-e+ej<        b                    g dy ejg        d^ddd`a           ejg        ddfddga           ejg        ddfddja           ejg        ddddpa          g          ddz                                    Zie-dd{            Zje-dd|            Zke-ej<        b                    d}g d~          dd                        Zle-dd            Zme-ej<        b                    d ejg        g da           ejg        d da          g          ej<        b                    dg d          dd                                    Zne-dd            Zoe-dd            ZpdS )    )annotationsN)Hashable)copydatetime)AnyCallableLiteral)	DataArrayDataset)module_available)_infer_interval_breaks)_infer_meta_data)_assert_valid_xy_build_discrete_cmap_color_palette_determine_cmap_params
_maybe_gcaget_axislabel_from_attrs)assert_array_equalassert_equalassert_no_warningsrequires_cartopyrequires_cftimerequires_matplotlibrequires_seabornnc_time_axisc               /  n   K   	 dV  t          j        d           dS # t          j        d           w xY w)zCcontext manager which autocloses a figure (even if the test failed)Nallpltclose)argskwargss     6lib/python3.11/site-packages/xarray/tests/test_plot.pyfigure_contextr'   9   s@      


	%	%s    4functionT)scopeautousec               #  |   K   dV  t          t          j                              } | rt          d|  d          dS )aH  meta-test to ensure all figures are closed at the end of a test

    Notes:  Scope is kept to module (only invoke this function once per test
    module) else tests cannot be run in parallel (locally). Disadvantage: only
    catches one open figure per run. May still give a false positive if tests
    are run in parallel.
    Nz!tests did not close all figures (z figures open))lenr"   get_fignumsRuntimeError)	open_figss    r&   test_all_figures_closedr0   C   sX       JJJCO%%&&I 
I	III
 
 	

 
    zmaybe flakyreasonc                     d t          j                                        t          j        j                  D             S )z2
    Return the set of all text in the figure
    c                6    h | ]}|                                 S  get_text.0ts     r&   	<setcomp>ztext_in_fig.<locals>.<setcomp>[   s     CCCQAJJLLCCCr1   )r"   gcffindobjmpltextTextr6   r1   r&   text_in_figrB   U   s1     DC#'))"3"3CHM"B"BCCCCr1   c                 l    t          j                                        t          j        j                  S N)r"   r=   r>   r?   collectionsQuadMeshr6   r1   r&   find_possible_colorbarsrG   ^   s!    799S_5666r1   c                z    d |                     t          j        j                  D             }|D ]	}| |v r dS 
dS )zA
    Return True if a substring is found anywhere in an axes
    c                6    h | ]}|                                 S r6   r7   r9   s     r&   r<   z$substring_in_axes.<locals>.<setcomp>g        >>>qajjll>>>r1   TF)r>   r?   r@   rA   )	substringaxalltxttxts       r&   substring_in_axesrO   c   sR     ?>BJJsx}$=$=>>>F  44 5r1   c                     d |                     t          j        j                  D             } fd|D             }t	          |          S )zE
    Return True if a substring is not found anywhere in an axes
    c                6    h | ]}|                                 S r6   r7   r9   s     r&   r<   z(substring_not_in_axes.<locals>.<setcomp>r   rJ   r1   c                    g | ]}|vS r6   r6   )r:   rN   rK   s     r&   
<listcomp>z)substring_not_in_axes.<locals>.<listcomp>s   s    666is"666r1   )r>   r?   r@   rA   r    )rK   rL   rM   checks   `   r&   substring_not_in_axesrU   n   sM     ?>BJJsx}$=$=>>>F6666v666Eu::r1   c                    |                     t          j        j                  }g }|D ]F}|                                |k    r,|                    t          j        ||           |k               Gt          |          S )zd
    Return True if the specified text in an axes
    has the property assigned to property_str
    )	r>   r?   r@   rA   r8   appendr"   getpr    )propertyproperty_str
target_txtrL   rM   rT   r;   s          r&   property_in_axes_textr\   w   sr    
 ZZ&&FE @ @::<<:%%LL!X..,>???u::r1      c                ~    t          j        ||t          j        |                     }|                    |           S )z^
    Make an array with desired shape using np.linspace

    shape is a tuple like (2, 3)
    num)nplinspacemathprodreshape)shapestartstopas       r&   
easy_arrayrj      s6     	E4TYu%5%5666A99Ur1   c                |    | j         dk    r| j                                        S | j                                        S )Nvertical)orientationrL   
get_ylabel
get_xlabel)colorbars    r&   get_colorbar_labelrq      s8    z)){%%'''{%%'''r1   c                  z    e Zd Z ej        d          d             ZddZej        j        d             Z	d Z
dS )	PlotTestCaseTr*   c              #  :   K   d V  t          j        d           d S )Nr    r!   selfs    r&   setupzPlotTestCase.setup   s%      	%r1   Nc                    t          j        d|          \  }} ||d                    |d                                         sJ d S )N   )ncols
subplot_kwr   rL   )r"   subplotshas_data)rw   
plotmethodr|   figaxss        r&   pass_in_axiszPlotTestCase.pass_in_axis   sQ    <aJ???S
c!f1v       r1   c                     |             t          j                                        t          j        j                  }t          |          dk    S Nr   )r"   gcar>   r?   image	AxesImager,   )rw   r   imagess      r&   imshow_calledzPlotTestCase.imshow_called   s;    
""39#6776{{Qr1   c                     |             t          j                                        t          j        j                  }t          |          dk    S r   )r"   r   r>   r?   rE   PathCollectionr,   )rw   r   pathss      r&   contourf_calledzPlotTestCase.contourf_called   s;    
		!!#/"@AA5zzA~r1   rD   )__name__
__module____qualname__pytestfixturerx   r   markslowr   r   r6   r1   r&   rs   rs      s        V^D!!!  "!
! ! ! !
 [  
    r1   rs   c                     e Zd Z ej        d          d1d            Zd1dZd1dZd1dZd1d	Z	d1d
Z
d1dZd1dZd1dZd1dZd1dZd1dZd1dZd1dZd1dZd1dZd1dZd1dZej        j        d1d            Zd1dZd1dZd1dZd1dZd1dZd1dZd1dZ d1dZ!d1d Z"d1d!Z#d1d"Z$d1d#Z%ej        j        ej        &                    d$          d1d%                        Z'ej        j        d1d&            Z(ej        j        d1d'            Z)ej        j        ej        &                    d$          d1d(                        Z*d1d)Z+d1d*Z,d1d+Z-d1d,Z.ej        /                    d-d.          d1d/            Z0d0S )2TestPlotTrt   returnNonec                H    t          t          d                    | _        d S Nrz         r   rj   darrayrv   s    r&   setup_arrayzTestPlot.setup_array       
9 5 566r1   c                j    ddl m} t          j        |u sJ t	          | j        j        |          sJ d S )Nr   )DataArrayPlotAccessor)xarray.plot.accessorr   r   plot
isinstancer   )rw   r   s     r&   test_accessorzTestPlot.test_accessor   sJ    >>>>>>~!66666$+*,ABBBBBBBr1   c                   | j                                         }dt          |          k    sJ d|_        dt          |          k    sJ d|_        d|j        d<   d|j        d<   d	|j        d
<   dt          |          k    sJ |j                            d           dt          |          k    sJ |j                            d           d	t          |          k    sJ d|j        d<   |j                            d
           dt          |          k    sJ |j                            d           dt          |          k    sJ d}t          |          |_        t          |          |k    sJ d S )N r   0ri   a_unitsunitsa_long_name	long_namea_standard_namestandard_namea_long_name [a_units]za_standard_name [a_units]za [a_units]z3$Ra_s = \mathrm{mean}(\epsilon_k) / \mu M^2_\infty$)r   )r   r   r   nameattrspopdict)rw   dalong_latex_names      r&   test_label_from_attrszTestPlot.test_label_from_attrs   s   [%b))))))&r******% -$5!&*:2*>*>>>>>
[!!!*.>r.B.BBBBB
W $4R$8$88888%
_%%% 0 4 44444
W&r****** Q/222##666666r1   c                   | j         d d ddf                                          t          j        t          d          5  | j         d d ddf                             d           d d d            n# 1 swxY w Y   t          j        t
          d          5  | j         d d ddf         dz                                    d d d            d S # 1 swxY w Y   d S )Nr   zx must be one of None, 'dim_0'matchdim_1x
complex128              ?)r   r   r   raises
ValueError	TypeErrorrv   s    r&   test1dzTestPlot.test1d   s[   AAAq!G!!###]:-NOOO 	1 	1K1a %%%000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 ]9M::: 	/ 	/[Aq!B&,,...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s$    'A33A7:A7(CCCc                    t          j        | j        d d ddf         t                                                     d S )Nr   dtypexr	ones_liker   boolr   rv   s    r&   test_1d_boolzTestPlot.test_1d_bool   s:    
T[Aq)666;;=====r1   c                   t          j        d          }t          t          j        |          dg|gd          }d d gd dgdd gg}t	          j        dd          \  }}t          |          D ]+\  }\  }}|                    |||j        |                    ,t          j
        t          d	          5  |                    dd
           d d d            n# 1 swxY w Y   d}	t          j
        t          d|	 	          5  |                    d           d d d            n# 1 swxY w Y   t          j
        t          d|	 	          5  |                    d           d d d            d S # 1 swxY w Y   d S )N
   zfdimscoordsr   r   r]   r   yrL   zCannot specify bothr   r   r   zmust be one of None, 'z'x r   y r   )ra   aranger   cosr"   r~   	enumerater   flatr   r   r   )
rw   r   r   xyr   rL   aar   r   	error_msgs
             r&   test_1d_x_y_kwzTestPlot.test_1d_x_y_kw   s=   IbMMrvayyuaSsCCC'+TlT3K#t%MQ""2#B-- 	. 	.JBAGGa1G----]:-CDDD 	" 	"GGcSG!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" /	]:->9->->??? 	 	GGcGNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]:->9->->??? 	 	GGcGNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   5CC CD''D+.D+E44E8;E8c                0   t          j        t          j        d          dt	          dt          j        d          fdt          j        dd          f                    }|                    ddg          }dD ]K}|                    |          d	         }t          |                                ||         j	                   LdD ]K}|                    |
          d	         }t          |
                                ||         j	                   Ld S )N   r   r   ri   br   r   ri   r   r   r   r   )r   r   ra   r   r   	set_indexr   r   	get_xdatavalues	get_ydata)rw   r   r   hr   s        r&   test_multiindex_level_as_coordz'TestPlot.test_multiindex_level_as_coord   s   \IaLL3	!-#ryB7G7G1HIII
 
 

 \\S#J\'' 	< 	<A!QAq{{}}bel;;;; 	< 	<A!QAq{{}}bel;;;;	< 	<r1   c                    t          dt          j        ddg          dgdgt          j        ddg          fdgt          j        ddg          fd	
          }|j                            d          d         }t          |                                |j        d         j                   |j                                        d         }t          |                                |j        d         j                   d S )NIr      r;   皙?皙?d      )r;   V)r   datar   r   r   r   r   )	r   ra   arrayr   liner   r   r   r   )rw   currentr   s      r&   test_infer_line_datazTestPlot.test_infer_line_data  s    1a&!!eRXsCj112eRXsCj112 	
 
 
 |  3 ''*4>>++W^C-@-GHHH |  ""1%4>>++W^C-@-GHHHHHr1   c                   t          j        ddgdg          }t          j        ddgdg          }t          j        t          j        dd	gd
dgg          ddg||d          }|                    dd          d         }t          |                                |j        d         j                   |                    dd          d         }t          |	                                |j        d         j                   d S )Nr   r   r   r   r   r      r;   r   r]   r   	   )r   time)r   r   r   r   r   huer   r  )
r   r   ra   r   r   r   r   r   r   r   )rw   x_coordt_coordr   r   s        r&   test_line_plot_along_1d_coordz&TestPlot.test_line_plot_along_1d_coord  s    ,S#JcU;;;,RHC5999\Aq6Aq6*++s '22
 
 
 wwSw))!,4>>++RYv->-EFFFwwSw))!,4>>++RYv->-EFFFFFr1   c                    t          j        t          j        ddgddgg          ddg          }t	          j        t          d	          5  |                    dd
           d d d            d S # 1 swxY w Y   d S )Nr   r]   r   r   r   r;   r   zhue must be one ofr   wrong_coordr   )r   r   ra   r   r   r   r   r   rw   r   s     r&   test_line_plot_wrong_huez!TestPlot.test_line_plot_wrong_hue,  s    \Aq6Aq6*++s
 
 

 ]:-ABBB 	. 	.GGc}G---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   A11A58A5c                N   t          j        t          d          5  | j        d d d d df         j                                         d d d            n# 1 swxY w Y   | j        d d d d df         j                            d           | j        d d d d df         j                            d           | j        d d d d df         j                            d           | j        d d d d df         j                            dd	           | j        d d d d df         j                            dd
           t          j        t          d          5  | j        d d d d df         j                            ddd           d d d            d S # 1 swxY w Y   d S )Nr  r   r   r   r  r   r   dim_0r   r  Cannotr   r   r  r   r   r   r   r   r   rv   s    r&   test_2d_linezTestPlot.test_2d_line5  sG   ]:V444 	- 	-K111a %**,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	AAAqqq!G!&&7&333AAAqqq!G!&&&111AAAqqq!G!&&&111AAAqqq!G!&&g&>>>AAAqqq!G!&&g&>>>]:Y777 	N 	NK111a %**WW*MMM	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	Ns#   ,AAA0FF!Fc                   | j         d d d d df         j                            dd           t          j                                                    rJ t          j                     | j         d d d d df         j                            dd           t          j                                                    sJ t          j                                                                                                                    dk    sJ d S )Nr   r  F)r   
add_legendTr   )	r   r   r   r"   r   
get_legendcla	get_titler8   rv   s    r&   test_2d_line_accepts_legend_kwz'TestPlot.test_2d_line_accepts_legend_kwB  s    AAAqqq!G!&&U&CCC799'')))))			AAAqqq!G!&&T&BBBwyy##%%%%%wyy##%%//11::<<GGGGGGr1   c                   | j         d d d d df         j                            d           t          j                                                    dk    sJ t          j                     | j         d d d d df         j                            d           t          j                                                    dk    sJ d S )Nr   r  r   r   )r   r   r   r"   r   ro   r  rv   s    r&   test_2d_line_accepts_x_kwz"TestPlot.test_2d_line_accepts_x_kwK  s    AAAqqq!G!&&&111wyy##%%0000			AAAqqq!G!&&&111wyy##%%000000r1   c                   | j         d d d d df         j                            d           t          j                                                                                                                    dk    sJ t          j                     | j         d d d d df         j                            d           t          j                                                                                                                    dk    sJ d S )Nr   r  r  r   )	r   r   r   r"   r   r  r  r8   r  rv   s    r&   test_2d_line_accepts_hue_kwz$TestPlot.test_2d_line_accepts_hue_kwR  s    AAAqqq!G!&&7&333wyy##%%//11::<<GGGG			AAAqqq!G!&&7&333wyy##%%//11::<<GGGGGGr1   c                2   t          j        t          j        ddd          t          j        ddd                    \  }}||dz  z  }||dz  z  }t          j        t          j        d                              dd          dd	gd
|fd
|fd          }t                      5  |j        	                    dd	          }t          |          dk    sJ 	 d d d            n# 1 swxY w Y   t                      5  |j        	                    dd          }t          |          dk    sJ 	 d d d            n# 1 swxY w Y   t          j        t          d          5  |j        	                    dd           d d d            d S # 1 swxY w Y   d S )Nir   r   r      r   r   r   r   r   r   )latlonr   r  r   z&For 2D inputs, hue must be a dimensionr   r  )ra   meshgridrb   r   r   r   re   r'   r   r   r,   r   r   r   )rw   r  r  r   hdls        r&   test_2d_coords_line_plotz!TestPlot.test_2d_coords_line_plotY  sL   ;r{3A66Ar18M8MNNSsRxsRx\IbMM!!!Q''s&,j#5FGG
 
 
  	! 	!',,C,00Cs88q=====	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!  	! 	!',,C,00Cs88q=====	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! ]:-UVVV 	- 	-GLL5eL,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s6   %2C$$C(+C(=2D<<E E "FFFc                \   t          j        d          }t          j        d          }t          j        ||d          }|j        |j        z   |j        |j        z   fD ]L}|                    |          }|j        |j        z   |d<   |d         j                            dd	           Md S )
Nr   r   r   r   r   vr   r   r  )	ra   r   r   r   r   r   assign_coordsr   r   )rw   r   r   dsr   s        r&   2test_2d_coord_line_plot_coords_transpose_invariantz;TestPlot.test_2d_coord_line_plot_coords_transpose_invariantn  s    IbMMIbMMZQQ//000$+rtbd{+ 	. 	.A!!A!&&BdRTkBsGsGL----	. 	.r1   c                f    t          t          d                    }|                                 d S )N)r]   r   )r   rj   r   rw   ri   s     r&   test_2d_before_squeezezTestPlot.test_2d_before_squeezey  s(    j(())	r1   c                l    |                      | j        d d d d df         j        j                  sJ d S r   )r   r   r   imshowrv   s    r&   test2d_uniform_calls_imshowz$TestPlot.test2d_uniform_calls_imshow}  s=    !!$+aaaAg"6";"BCCCCCCCr1   c                    | j         d d d d df         }g d|j        d<   |                     |j        j                  sJ d S )Nr   )rz   r]   Y   r   )r   r   r   r   contourfr+  s     r&    test2d_nonuniform_calls_contourfz)TestPlot.test2d_nonuniform_calls_contourf  sP    K111a &JJ##AFO4444444r1   c                   d}t          |          }t          t          |          ddgddg|ft          j        dd|d                   d          }|j                            dd	           |j                            dd	           d S )
N)r   r   r   r   r   r]   )depthr   r   r5  r   )rj   r   ra   rb   r   r2  )rw   szr5  ri   s       r&   !test2d_1d_2d_coordinates_contourfz*TestPlot.test2d_1d_2d_coordinates_contourf  s    2rNNv"FmU3R[ArRSu=U=UVV
 
 
 	
&G,,,	'V,,,,,r1   c                   d}t          j        t          j        |          t          j        |                    \  }}t          t	          ||f          ddgddg|fddg|fd          }dD ]|\  }}|j                            ||          }|                                d         j        }t          j	        |d d	         dd
          \  }	}
t          j
        |
dk              sJ }d S )Nr   r   r   x2dy2dr   )r   r  )r:  r   )r   r:  )r   r;  )r;  r   r9  )r;  r:  r   r   T)axisreturn_countsr]   )ra   r   r   r   rj   r   
pcolormesh	get_pathsverticesuniquer    )rw   r6  r;  r:  ri   r   r   pr&  _unique_countss              r&   #test2d_1d_2d_coordinates_pcolormeshz,TestPlot.test2d_1d_2d_coordinates_pcolormesh  s   ;ry}}bimm<<SBx  s #J,sCj#5FGG
 
 
	
 	. 	.DAq !!A!++Aa )A  "y3B3atLLLA}6-1,------!	. 	.r1   c                    t          g dg dgdddgg dd          }|j                                         |j        j                                         d S )Nr]   rz   r   )r   r      r   r]   rz   ri   r   cr   )r   r   r?  Trw   r   s     r&   test_str_coordinates_pcolormeshz(TestPlot.test_str_coordinates_pcolormesh  sn    YY			"Qooo66
 
 

 	
	r1   c                   t          t          d          ddg          }t          j        j        }|j                            t          |          dd          }t          |	                    t          j                            t          j        g                    d          |t          j                            t          j        g                    d                    |	                    t          j                    |t          j                   k    sJ |	                    t          j                   |t          j                  k    sJ d S )	Nr   r   r   r   r   r   ?)cmapvminvmaxr   )r   rj   r?   cmviridisr   r2  r   r   rS  ra   mamasked_invalidnaninfrw   ri   rS  pls       r&   test_contourf_cmap_setzTestPlot.test_contourf_cmap_set  s
   j((V}===v~ V__$t**3S_AA 	GGBE(("&2233A6D%%rvh//003	
 	
 	
 www44==0000 wwrv$$rv,,......r1   c                   t          t          d          ddg          }t          t          j        j                  }|                    d           t          j         |t          j	        
                    t          j        g                    d         t          j                            t          j	        
                    t          j        g                    d         k              sJ |                    d            |t          j                   t          j                            t          j                   k    sJ |                    d            |t          j                  t          j                            t          j                   k    sJ |j                            t          |          	          }t#          |                    t          j	        
                    t          j        g                    d          |t          j	        
                    t          j        g                    d                    |                    t          j                    |t          j                   k    sJ |                    t          j                   |t          j                  k    sJ d S )
NrP  r   r   rQ  wr   rgrS  )r   rj   r   r?   rV  rW  set_badra   r    rX  rY  rZ  	set_underr[  set_overr   r2  r   rS  r\  s       r&   *test_contourf_cmap_set_with_bad_under_overz3TestPlot.test_contourf_cmap_set_with_bad_under_over  s   j((V}=== CFN##SvD%%rvh//003v~~be22BF8<<==a@A
 
 	
 	
 	

 	stRVG}}w 7 77777ctBF||sv~~rvg666666 V__$t**_-- 	GGBE(("&2233A6D%%rvh//003	
 	
 	
 www44==0000 wwrv$$rv,,......r1   c                8    | j                                          d S rD   )r   r   rv   s    r&   test3dzTestPlot.test3d  s    r1   c                D    |                      | j        j                   d S rD   )r   r   r   rv   s    r&   test_can_pass_in_axiszTestPlot.test_can_pass_in_axis  s!    $+*+++++r1   c           	        t          g dt          ddg                     t          g dt          g d                     t          t          j        dd          t	          j        d	d
          z
  t          t          j        dd                               t	          j        t	          j        d          t	          j        d                    \  }}|dd dd f         |d dd df         z   dz  }|dd dd f         |d dd df         z   dz  }t          |d          }t          |d          }t          |d          }t          |d          }t          j        	                    ||           t          j        	                    ||           t          j        t                    5  t          t	          j        g d          d           d d d            d S # 1 swxY w Y   d S )N)            ?      ?r   r]   )rm  rn  g      @      #@g      %@)r   r]   r   r   20000101r   periods   r   r   rI  r   r<  rz   r=  )r   rz   r]   T)check_monotonic)r   r   pd
date_rangera   timedelta64r   r   testingassert_allcloser   r   r   r   )rw   xrefyrefcxcyr   r   s          r&   test__infer_interval_breaksz$TestPlot.test__infer_interval_breaks  sI   +++-CQF-K-KLLL''')?)N)N	
 	
 	
 	M*a0002>"c3J3JJ"2=Q#G#G#GHH	
 	
 	
 [1ry||<<
d122qrr6lT#2#ss(^+q0122qrr6lT#2#ss(^+q0"2A..."11---"2A..."11---

""4+++

""4+++ ]:&& 	N 	N"28III#6#6MMMM	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	Ns   7&G**G.1G.c                0   t          j        ddd          }dt          j        ddd          z  }t           j                            t          |d	          |           t          j        ddd          }t          j        d
dd          }t          j        ||          \  }}t          j        dt          j        ddd          z  gdz            }t          |dd          }t          |dd          }t           j                            ||           dS )zU
        Check if interval breaks are defined in the logspace if scale="log"
        r   r   r   g            @r   logscaler      rt  r]   )r=  r  r   N)ra   logspacerb   rz  r{  r   r   vstack)rw   r   expected_interval_breaksr   s       r&   $test__infer_interval_breaks_logscalez-TestPlot.test__infer_interval_breaks_logscale  s   
 KAq!!#%T3)B)B#B 

"""1E2224L	
 	
 	

 KAq!!KAr""{1a  1#%9bBKc14M4M.M-NQS-S#T#T "11E:::"11E:::

""1&>?????r1   c                h   t          j        ddd          }t          j        t                    5  t          |d           ddd           n# 1 swxY w Y   t          j        ddd          }t          j        t                    5  t          |d           ddd           dS # 1 swxY w Y   dS )	z[
        Check error is raised when passing non-positive coordinates with logscale
        r   r   rI  r  r  Nr  r  )ra   rb   r   r   r   r   rM  s     r&   3test__infer_interval_breaks_logscale_invalid_coordsz<TestPlot.test__infer_interval_breaks_logscale_invalid_coords*  s+   
 K1a  ]:&& 	3 	3"1E2222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 KAr""]:&& 	3 	3"1E2222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s#   AAAB''B+.B+c                   t          j        g dg dg dg dg          }t          j        g dg dg dg dg          }t          j        |d	z  |d	z  z             }t          |d
d
|fd
|fd          }|                    dd           t          j                    }|                                sJ |                    dd           t          j                    }|                                sJ d S )N)gHzG0@g{Gz2@gGz3@g
ףp=3@gY2@)gR<@gQ>@g{G?@gGz?@gQ^>@)g33333C@g(\"E@gHzE@gzGE@gGzE@)g(\BI@g\(J@gfffffFK@g     @K@gHzJ@)gQ_g\(l\g{G:Yg(\Vg(\R)gq=
ף(`gHz\g(\bYgGzUgq=
ףPR)g33333`g     ]gp=
דYg{GUgq=
ףQ)g33333;ag(\?^gRYgRQUgHzPrz   r  )r  r  r   r  r  r   )ra   r   sqrtr   r   r"   r   r   )rw   r  r  r   r   rL   s         r&   test_geo_datazTestPlot.test_geo_data7  s8    h333333333333	
 
 h;;;;;;;;;;;;	
 
 wsAvQ''&,j#5FGG
 
 

 	%5!!!WYY{{}}
%5!!!WYY{{}}r1   c                   d}d}t          j        d|          }t          t          ||f          d|fdt	          |          fg          }|                                 t          j                    }|                                sJ d S )Nr   r   
2000-01-01rr  r   r   r$  )	rw  rx  r   rj   ranger   r"   r   r   )rw   nrowncolr   ri   rL   s         r&   test_datetime_dimensionz TestPlot.test_datetime_dimensionW  s    }\4888d|$$vtnsE$KK>P-Q
 
 
 	
WYY{{}}r1   ignore:tight_layout cannotc                   t          d          }t          |g d          }t          d          |j        d<   |                    ddddd	
          }t          |j        j        ddg           |j        j        D ]}|	                                sJ t          j        t          d          5  |                    dddt          j                               d d d            n# 1 swxY w Y   t          j        t          d          5  |d                             dddt          j                               d d d            d S # 1 swxY w Y   d S )Nr      r   r   r   r   rQ  abcdr   r   r   rz   cool)r   r   colcol_wraprS  [Ff]acetr   r   r   r  rL   r   )rj   r   listr   r   r   r   rf   r   r   r   r   r   r"   r   rw   ri   drb  rL   s        r&   test_convenient_facetgridz"TestPlot.test_convenient_facetgridb  s    {##aooo...VFFSCS16FBB15;A///%* 	! 	!B;;==    ]:[999 	8 	8FFSCSSWYYF777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 ]:[999 	; 	;aDIIs		I:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s$   0+C''C+.C+1EEEc           
     f   t          d          }t          |g d          }t          d          |j        d<   |                    ddddd	t          d
                    }|j        j        D ]A}|                                dd         t          j
                            d
          k    sJ Bd S )Nr  r  rQ  r  r   r   r   rz   r  ra  )	facecolor)r   r   r  r  rS  subplot_kwsr   r   )rj   r   r  r   r   r   r   r   get_facecolorr?   colorsto_rgbr  s        r&   test_subplot_kwszTestPlot.test_subplot_kwst  s    {##aooo...VFFs+++  
 
 %* 	E 	EB##%%ac*cj.?.?.D.DDDDDD	E 	Er1   c                d   | j         d d ddf                             d           t          t          j                                                              dk    sJ | j                             d           t          t          j                                                              dk    sJ | j                             d           t          j                                                    d         dk    sJ | j                             dd           t          t          j                                                              d	k    sJ t          j        t          d
          5  | j                             t          j	                    d           d d d            n# 1 swxY w Y   t          j        t          d
          5  | j                             dd           d d d            n# 1 swxY w Y   t          j        t          d
          5  | j                             dt          j	                               d d d            n# 1 swxY w Y   t          j        t          d          5  | j                             d           d d d            d S # 1 swxY w Y   d S )Nr   )   r   )figsizer   sizer]   rz   r  aspectr   r   cannot provide bothr   )r   r   )rL   r  )r  r  )r  rL   zcannot provide `aspect`r  )
r   r   tupler"   r=   get_size_inchesr   r   r   r   rv   s    r&   test_plot_sizezTestPlot.test_plot_size  sW   AAAq!G!!'!222SWYY..0011W<<<<)))SWYY..0011W<<<<a   wyy((**1-2222a***SWYY..0011W<<<<]:-CDDD 	; 	;K		6:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; ]:-CDDD 	5 	5K!V444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 ]:-CDDD 	3 	3K!		222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 ]:-GHHH 	' 	'KA&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'sH   -.F''F+.F+G66G:=G:.III<J%%J),J)c                   t          d          }t          |g d          }|                    dddd          }t          |j        j        d	d
g           |j        j        D ]}|                                sJ t          j	        t          d          5  |                    dddt          j                               d d d            d S # 1 swxY w Y   d S )Nr   r  rz   r   r   r   columnsrowsrQ  r   r   r  r  r   r   r  rowr   rz   r  r   r  )rj   r   r   r   r   rf   r   r   r   r   r   r"   r   r  s        r&   test_convenient_facetgrid_4dz%TestPlot.test_convenient_facetgrid_4d  s    ~&&a;;;<<<FFSCYFF;;15;A///%* 	! 	!B;;==    ]:[999 	> 	>FFSCY3799F===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s   +CCCc                    g d}| j                             d|                              d                                           dS )zTest line plot with intervals.r<  r   r]   rz   r  .Nr   groupby_binsmeanr   rw   binss     r&   test_coord_with_intervalz!TestPlot.test_coord_with_interval  sC    }}  $//44S99>>@@@@@r1   c                    g d}| j                             d|                              d                              d           dS )z3Test line plot with intervals explicitly on x axis.r  r  .
dim_0_binsr   Nr  r  s     r&   test_coord_with_interval_xz#TestPlot.test_coord_with_interval_x  H    }}  $//44S99>>>NNNNNr1   c                    g d}| j                             d|                              d                              d           dS )z3Test line plot with intervals explicitly on y axis.r  r  .r  r   Nr  r  s     r&   test_coord_with_interval_yz#TestPlot.test_coord_with_interval_y  r  r1   c                    g d}| j                             d|                              d          j                                         dS )z3Test line plot with intervals on both x and y axes.r  r  .N)r   r  r  r  r   r  s     r&   test_coord_with_interval_xyz$TestPlot.test_coord_with_interval_xy  sF    }}  $//44S99DIIKKKKKr1   dimr   c                (   g d}| j                             d|                              d          }d|j        j        d<    |j        di |di\  }|j                                        } t          |d| d                      }d	}||k    sJ d
S )z4Test line plot with intervals and a units attribute.r  r  .mr   r  get_labelzdim_0_bins_center [m]Nr6   )	r   r  r  r  r   r   figurer   getattr)rw   r  r  arrmappablerL   actualexpecteds           r&   $test_labels_with_units_with_intervalz-TestPlot.test_labels_with_units_with_interval  s     }}k&&w55::3??(+W%ch55#|!455_  ""/.C...//11*!!!!!!r1   Nr   r   )1r   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r  r  r  r"  r)  r,  r/  r   r   r3  r7  rF  rN  r^  rg  ri  rk  r  r  r  r  r  filterwarningsr  r  r  r  r  r  r  r  parametrizer  r6   r1   r&   r   r      s9       V^D!!!7 7 7 "!7C C C C7 7 7 7</ / / /> > > >   (< < < <"I I I I&G G G G". . . .N N N NH H H H1 1 1 1H H H H- - - -*	. 	. 	. 	.   D D D D [5 5 5 5

- 
- 
- 
-. . . .8   / / / /6"/ "/ "/ "/H   , , , ,N N N N2@ @ @ @(3 3 3 3   @	 	 	 	 [[ <==; ; ; >= ;  [E E E E  [' ' ' '2 [[ <==
> 
> 
> >= 
>A A A A
O O O O
O O O O
L L L L
 [UJ//" " " 0/" " "r1   r   c                      e Zd Z ej        d          dd            ZddZddZddZdd	Z	dd
Z
ddZddZddZddZej        j        dd            ZddZddZddZddZdS )
TestPlot1DTrt   r   r   c           	         g d}t          |dt          t          |                    id          | _        d| j        j        j        d<   d S )N)r   g?r   rz   period)r   r   sr   )r   r  r,   r   r  r   rw   r  s     r&   setUpzTestPlot1D.setUp  sJ    NN8U3q66]]*C(SSS,/ )))r1   c                    | j                                          dt          j                                                    k    sJ d S )Nz
period [s]r   r   r"   r   ro   rv   s    r&   test_xlabel_is_index_namez$TestPlot1D.test_xlabel_is_index_name  s?    swyy3355555555r1   c                    | j                             d           dt          j                                                    k    sJ d S )Nr  r   r   r  rv   s    r&   test_no_label_name_on_x_axisz'TestPlot1D.test_no_label_name_on_x_axis  sD    8$$$SWYY))++++++++r1   c                    | j                                          dt          j                                                    k    sJ d S )Nr   )r   r   r"   r   rn   rv   s    r&   test_no_label_name_on_y_axisz'TestPlot1D.test_no_label_name_on_y_axis  s?    SWYY))++++++++r1   c                    d| j         _        d| j         j        d<   | j                                          dt	          j                                                    k    sJ d S )Ntemperaturedegrees_Celsiusr   temperature [degrees_Celsius])r   r   r   r   r"   r   rn   rv   s    r&   test_ylabel_is_data_namez#TestPlot1D.test_ylabel_is_data_name  sX    (%6'".#'))2F2F2H2HHHHHHHr1   c                    d| j         _        d| j         j        d<   | j                             d           dt	          j                                                    k    sJ d S )Nr  r  r   r  r   r  )r   r   r   r   r"   r   ro   rv   s    r&   test_xlabel_is_data_namez#TestPlot1D.test_xlabel_is_data_name  s]    (%6'"8$$$.#'))2F2F2H2HHHHHHHr1   c                D    | j         j                            d           d S )Nror   r   r   rv   s    r&   test_format_stringzTestPlot1D.test_format_string  s!    d#####r1   c                N    |                      | j        j        j                   d S rD   )r   r   r   r   rv   s    r&   rk  z TestPlot1D.test_can_pass_in_axis  $    $+*/00000r1   c                h    t          g ddg did          }|j                                         d S )NrH  letterrJ  rQ  )r   r   r   r+  s     r&   test_nonnumeric_indexz TestPlot1D.test_nonnumeric_index  s6    iii(OOO!<8LLL	r1   c                    | j         j                                        }t          |d         t          j        j                  sJ d S r   )r   r   r   r   r?   linesLine2D)rw   rC  s     r&   test_primitive_returnedz"TestPlot1D.test_primitive_returned  s=    K!!##!A$	 01111111r1   c                j    t           j        | j        d<   | j        j                                         d S Nr]   )ra   rZ  r   r   r   rv   s    r&   test_plot_nanszTestPlot1D.test_plot_nans  s,    Ar1   c                P   t          j        dd          }t          t          j        t          |                    d|fg          }|j                                         t          j	                    
                                d                                         }|dk    sJ d S )Nr  
2000-01-10r;   r   )rw  rx  r   ra   r   r,   r   r   r"   r   get_xticklabelsget_rotationrw   r   ri   rotations       r&   !test_x_ticks_are_rotated_for_timez,TestPlot1D.test_x_ticks_are_rotated_for_time  s    }\<88biD		**c4[M::	799,,..q1>>@@1}}}}}}r1   c                V   | j         j                            dd           t          j                                                    }t          j                                                    }|d         |d         z
  |d         |d         z
  f}t          d |D                       sJ d S )NF	xincrease	yincreaser]   r   c              3  "   K   | ]
}|d k     V  dS )r   Nr6   r:   r   s     r&   	<genexpr>z@TestPlot1D.test_xyincrease_false_changes_axes.<locals>.<genexpr>  s&      ((Q1q5((((((r1   )r   r   r   r"   r   get_xlimget_ylimr    rw   xlimylimdiffss       r&   "test_xyincrease_false_changes_axesz-TestPlot1D.test_xyincrease_false_changes_axes	  s    ???wyy!!##wyy!!##Q$q'!47T!W#44((%((((((((((r1   c                    d| j         j        d<   | j         j                                         t	          j                                                    }d|k    sJ d S )NS㥛$@r  	d = 10.01)r   r   r   r   r"   r   r  )rw   titles     r&   test_slice_in_titlezTestPlot1D.test_slice_in_title  sV    "(3		##%%e######r1   c                    | j                             dt          j        dg          i          }|j                            d           t          j                                                    }d|k    sJ dS )z-Edge case for data of shape (1, N) or (N, 1).r  r  r  r   r  N)	r   expand_dimsra   r   r   r   r"   r   r  )rw   r   r  s      r&   %test_slice_in_title_single_item_arrayz0TestPlot1D.test_slice_in_title_single_item_array  so    ((#rx/A/A)BCC8$$$		##%%e######r1   Nr  )r   r   r   r   r   r  r  r  r  r  r  r  rk  r  r  r   r   r  r  r  r   r#  r6   r1   r&   r  r    st       V^D!!!0 0 0 "!0
6 6 6 6, , , ,, , , ,I I I II I I I$ $ $ $1 1 1 1   2 2 2 2 [          ) ) ) )$ $ $ $$ $ $ $ $ $r1   r  c                  f   e Zd Z ej        d          dd            ZddZej                            dg d          dd	            Z	dd
Z
ej                            dg d          dd            ZddZej                            dg d          dd            ZddZddZddZddZdS )TestPlotStepTrt   r   r   c                H    t          t          d                    | _        d S r   r   rv   s    r&   r  zTestPlotStep.setUp  r   r1   c                    | j         d         j                                        }d|d                                         v sJ d S )Nr   r   stepsr   r   r   stepget_drawstylerw   r!  s     r&   	test_stepzTestPlotStep.test_step#  sD    k$$))++#a&..00000000r1   where)prepostmidc                    | j         d         j                            |          }|d                                         d| k    sJ d S )Nr(  )r/  r   steps-r*  rw   r/  r!  s      r&   test_step_with_wherez!TestPlotStep.test_step_with_where'  sR    k$$)))661v##%%)9%)9)9999999r1   c                    | j         d         j                            d          }|d                                         dk    sJ d S )Nr   dim_2r  z	steps-prer*  r-  s     r&   test_step_with_huezTestPlotStep.test_step_with_hue,  sH    k!n!&&7&331v##%%444444r1   c                    | j         d         j                            d|          }|d                                         d| k    sJ d S )Nr   r8  )r  r/  r4  r*  r5  s      r&   test_step_with_hue_and_wherez)TestPlotStep.test_step_with_hue_and_where0  sS    k!n!&&7%&@@1v##%%)9%)9)9999999r1   c                    | j         d                             dd          }|d                                         dk    sJ d S )Nr   r8  r)  r  	drawstyler   r   r,  r-  s     r&   test_drawstyle_stepsz!TestPlotStep.test_drawstyle_steps5  sG    k!n!!g!AA1v##%%000000r1   c                    | j         d                             dd|           }|d                                         d| k    sJ d S )Nr   r8  r4  r=  r?  r5  s      r&   test_drawstyle_steps_with_wherez,TestPlotStep.test_drawstyle_steps_with_where9  sY    k!n!!g9I%9I9I!JJ1v##%%)9%)9)9999999r1   c                D   g d}| j                             d|                              d          j                                         t          t          j                    j        d         	                                          t          |          dz
  dz  k    sJ dS )zTest step plot with intervals.r  r  .r   r]   rz   N
r   r  r  r   r+  r,   r"   r   r  r   r  s     r&   test_coord_with_interval_stepz*TestPlotStep.test_coord_with_interval_step>  s    }}  $//44S99>CCEEE3799?1%//1122D		A7JKKKKKKr1   c                H   g d}| j                             d|                              d          j                            d           t          t          j                    j        d         	                                          t          |          dz
  dz  k    sJ d	S )
z3Test step plot with intervals explicitly on x axis.r  r  .r  r   r   r]   rz   NrD  r  s     r&   test_coord_with_interval_step_xz,TestPlotStep.test_coord_with_interval_step_xD      }}  $//44S99>CClCSSS3799?1%//1122D		A7JKKKKKKr1   c                H   g d}| j                             d|                              d          j                            d           t          t          j                    j        d         	                                          t          |          dz
  dz  k    sJ d	S )
z3Test step plot with intervals explicitly on y axis.r  r  .r  r   r   r]   rz   NrD  r  s     r&   test_coord_with_interval_step_yz,TestPlotStep.test_coord_with_interval_step_yJ  rH  r1   c           	     r   t          j        t          j        dd          t          j        dd          gdt          j        dd          t          j        dd          gfg          }t	          j        t          d          5  |j                                         ddd           dS # 1 swxY w Y   dS )	zHTest that step plot with intervals both on x and y axes raises an error.r   r]   rz   r   r$  zintervals against intervalsr   N)	r   r   rw  Intervalr   r   r   r   r+  rw   r  s     r&   8test_coord_with_interval_step_x_and_y_raises_valueeerrorzETestPlotStep.test_coord_with_interval_step_x_and_y_raises_valueeerrorP  s    l[AAq 1 122;q!,,bk!Q.?.?@AB
 
 
 ]9,IJJJ 	 	HMMOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   B,,B03B0Nr  )r   r   r   r   r   r  r.  r   r  r6  r9  r;  r@  rB  rE  rG  rJ  rN  r6   r1   r&   r%  r%    s       V^D!!!7 7 7 "!71 1 1 1 [W&<&<&<==: : : >=:5 5 5 5 [W&<&<&<==: : : >=:1 1 1 1 [W&<&<&<==: : : >=:L L L LL L L LL L L L     r1   r%  c                      e Zd Z ej        d          dd            ZddZddZddZdd	Z	dd
Z
ddZej        j        dd            ZddZdS )TestPlotHistogramTrt   r   r   c                H    t          t          d                    | _        d S r   r   rv   s    r&   r  zTestPlotHistogram.setUp[  r   r1   c                B    | j         j                                         d S rD   )r   r   histrv   s    r&   test_3d_arrayzTestPlotHistogram.test_3d_array_  s    r1   c                    d| j         _        d| j         j        d<   | j         j                                         dt          j                                                    k    sJ d S )N
testpoints	testunitsr   ztestpoints [testunits])r   r   r   r   rS  r"   r   ro   rv   s    r&   test_xlabel_uses_namez'TestPlotHistogram.test_xlabel_uses_nameb  s[    '%0'"'3799+?+?+A+AAAAAAAr1   c                    d| j         j        d<   | j         j                                         dt	          j                                                    k    sJ d S )Nr   r  zd = 10)r   r   r   rS  r"   r   r  rv   s    r&   test_title_is_histogramz)TestPlotHistogram.test_title_is_histogramh  sQ    "$33799..00000000r1   c                    d}| j         j                            |           |t          t	          j                    j                  k    sJ d S )Nr   )r  )r   r   rS  r,   r"   r   patches)rw   nbinss     r&   test_can_pass_in_kwargsz)TestPlotHistogram.test_can_pass_in_kwargsm  sK    5)))CGII-........r1   c                N    |                      | j        j        j                   d S rD   )r   r   r   rS  rv   s    r&   rk  z'TestPlotHistogram.test_can_pass_in_axisr  r  r1   c                    | j         j                                        }t          |d         d         t          j        j                  sJ d S )Nr<  r   )r   r   rS  r   r?   r\  	Rectangle)rw   r   s     r&   r  z)TestPlotHistogram.test_primitive_returnedu  sA    K!!##!B%(CK$9:::::::r1   c                j    t           j        | j        d<   | j        j                                         d S )N)r   r   r   )ra   rZ  r   r   rS  rv   s    r&   r  z TestPlotHistogram.test_plot_nansy  s-    !vGr1   c                    | j                             dg d                              d          j                            d           d S )Nr  r  .)r<  rz   r  )r   r  r  r   rS  rv   s    r&   test_hist_coord_with_intervalz/TestPlotHistogram.test_hist_coord_with_interval~  s@    K$$Wmmm<<T#YY$$W$%%%%%r1   Nr  )r   r   r   r   r   r  rT  rX  rZ  r^  rk  r  r   r   r  re  r6   r1   r&   rP  rP  Z  s        V^D!!!7 7 7 "!7       B B B B1 1 1 1
/ / / /
1 1 1 1; ; ; ; [       
 
 
 
 
 
r1   rP  c                      e Zd Z ej        d          dd            ZddZddZddZdd	Z	dd
Z
ddZej        j        dd            ZddZddZddZdS )TestDetermineCmapParamsTrt   r   r   c                >    t          j        ddd          | _        d S )Nr   r]   r   r_   )ra   rb   r   rv   s    r&   r  zTestDetermineCmapParams.setUp  s    K1#...			r1   c                *   t          | j        d          }|d         t          j        | j        d          k    sJ |d         t          j        | j        d          k    sJ |d         dk    sJ |d	         d
k    sJ |d         J |d         J d S )NTrobustrT  rz   rU  b   rS  rW  extendbothlevelsnorm)r   r   ra   
percentilerw   cmap_paramss     r&   test_robustz#TestDetermineCmapParams.test_robust  s    ,TYtDDD6"bmDIq&A&AAAAA6"bmDIr&B&BBBBB6"i////8$....8$,,,6"*****r1   c                    t          | j        d          }|d         dz
  d|d         z
  k    sJ |d         dk    sJ |d         dk    sJ |d	         J |d
         J d S )Nrn  centerrU  rT  rS  RdBu_rrm  neitherro  rp  )r   r   rr  s     r&   test_centerz#TestDetermineCmapParams.test_center  s    ,TYsCCC6"S(C+f2E,EEEEE6"h....8$	11118$,,,6"*****r1   c                    t          j        d          5  t          | j                  }|d         dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nmagmacmap_sequentialrS  r   set_optionsr   r   rr  s     r&   test_cmap_sequential_optionz3TestDetermineCmapParams.test_cmap_sequential_option  s    ^G444 	2 	20;;Kv&'11111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   #AAAc                    t          j        t          j        j                  5  t          | j                  }|d         t          j        j        k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr}  rS  )r   r  r?   rV  r|  r   r   rr  s     r&   $test_cmap_sequential_explicit_optionz<TestDetermineCmapParams.test_cmap_sequential_explicit_option  s    ^CFL999 	7 	70;;Kv&#&,66666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   2A%%A),A)c                    t          j        d          5  t          | j        d          }|d         dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr|  )cmap_divergentrn  rv  rS  r  rr  s     r&   test_cmap_divergent_optionz2TestDetermineCmapParams.test_cmap_divergent_option  s    ^7333 	2 	203GGGKv&'11111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   %A		AAc                    t          | j                  }| j        }t          j        |dd<   t          j        |dd<   t          |          }|d         |d         k    sJ |d         |d         k    sJ d S )N2   7   8   <   rT  rU  )r   r   ra   rZ  r[  )rw   cmap_params1r   cmap_params2s       r&   test_nan_inf_are_ignoredz0TestDetermineCmapParams.test_nan_inf_are_ignored  s    -di88yfRUfRU-d33F#|F';;;;;F#|F';;;;;;;r1   c                   | j         dz   }t          j        ddt                    D ]s}t	          ||          }|d         J |d         J |d         j        |d	         d
         k    sJ |d         j        |d	         d         k    sJ |d         dk    sJ tt	          |dd
dd          }|d         J |d         J |d         j        d
k    sJ |d         j        dk    sJ |d         j        |d	         d
         k    sJ |d         j        |d	         d         k    sJ |d         j        dk    sJ |d         dk    sJ |d         j        dk    sJ |d         j        dk    sJ t	          |ddd          }|d         j        dk    sJ |d         dk    sJ t	          |dd          }|d         j        dk    sJ |d         dk    sJ t	          |ddd          }|d         j        dk    sJ |d         dk    sJ d S )Nr]   rz   r   r   ro  rT  rU  rp  ro  r   r<  rm  ry  r   Bluesro  rT  rU  rS  rS  r   rn  ro  ro  rT  rU  rW  max)ro  rT  ming?rn  )	r   ra   r   intr   rT  rU  r   N)rw   r   levelrs  s       r&   test_integer_levelsz+TestDetermineCmapParams.test_integer_levels  s   y1} Yq"C000 	6 	6E0eDDDKv&...v&...v&+{8/DQ/GGGGGv&+{8/DR/HHHHHx(I55555 -
 
 
 6"***6"***6"'1,,,,6"'1,,,,6"';x+@+CCCCC6"';x+@+DDDDD6"'722228$	11116"$))))6"$)))),T!#CPPP6"'944448$----,T!#FFF6"'944448$----,T!#CPPP6"'944448$......r1   c                   | j         dz   }g d}t          ||dd          }|d         J |d         J |d         j        dk    sJ |d         j        d	k    sJ |d
         j        d	k    sJ |d         j        dk    sJ t
          t          j        t          j	        t          fD ]2}t          | ||                    }t          |d         |           3d S )Nr]   )r   r]   rz   r   r   r   r   r   r  rT  rU  rp  r   rS  rI  r  ro  )r   r   rT  rU  r  r  ra   r   rw  Indexr   r   )rw   r   orig_levelsrs  wrap_levelss        r&   test_list_levelsz(TestDetermineCmapParams.test_list_levels  s   y1}(((,T+ATUVVV6"***6"***6"'1,,,,6"'1,,,,6"$))))6"$)))) "(BHi@ 	C 	CK0kk+>V>VWWWK{84kBBBB	C 	Cr1   c                r   | j         dz
  }| j         }t          |          }|d         dk    sJ |d         dk    sJ |d         dk    sJ t          |          }|d         dk    sJ |d         d	k    sJ |d         d
k    sJ t          |dd          }|d         dk    sJ |d         d	k    sJ |d         dk    sJ t          |dd          }|d         dk    sJ |d         dk    sJ |d         dk    sJ t          |d          }|d         dk    sJ |d         d	k    sJ |d         dk    sJ t          |d          }|d         dk    sJ |d         d	k    sJ |d         d
k    sJ t          |d          }|d         dk    sJ |d         dk    sJ |d         d
k    sJ t          |d          }|d         dk    sJ |d         dk    sJ |d         d
k    sJ t          |dd          }|d         dk    sJ |d         dk    sJ |d         d
k    sJ t          |d          }|d         dk    sJ |d         dk    sJ |d         d
k    sJ t          |d          }|d         dk    sJ |d         dk    sJ |d         dk    sJ t          |d          }|d         dk    sJ |d         dk    sJ |d         dk    sJ t          |dd          }|d         dk    sJ |d         dk    sJ |d         dk    sJ t          |g d          }|d         j        d
k    sJ d S )Nr   rT  r   rU  r]   rS  rW  grR  rx  皙F)rT  rw  rn  )rU  rw  rv  )rT  )rU  rm  g333333?皙ٿgɿrT  rU  )r  r   r]   r  )r   r   r   )rw   negposrs  s       r&   test_divergentcontrolz-TestDetermineCmapParams.test_divergentcontrol  s   i#oi -S116"a''''6"a''''6"i//// -S116"d****6"c))))6"h.... -StEJJJ6"d****6"c))))6"i////,Ss5III6"d****6"c))))6"i//// -S???6"d****6"c))))6"i//// -S;;;6"d****6"c))))6"h.... -St<<<6"d****6"c))))6"h....,Ss;;;6"d****6"c))))6"h....,Ss3GGG6"d****6"c))))6"h.... -St<<<6"d****6"c))))6"h....,Ss;;;6"c))))6"a''''6"i////,Ss;;;6"a''''6"c))))6"i//// -St#FFF6"d****6"c))))6"i//// -SFFF6"'8333333r1   c           
        | j                                         }| j                                         }t          t          j                                        t          j                                        t          j                            |dz   |dz
            t          j                            d |dz
            t          j                            |dz   d           gg dg d          D ]\  }}}|j        |n|j        }|j        |n|j        }t          | j         ||          }|d         J |d         J |d         j        |k    sJ |d         j        |k    sJ |d         |k    sJ |d         |k    sJ d S )	Nr   )ry  ry  rn  r  r  )   NNNN)rp  ro  rT  rU  rp  rm  )
r   r  r  zipr?   r  	NormalizerT  rU  r   )	rw   rT  rU  rp  rm  ro  test_mintest_maxrs  s	            r&   test_norm_sets_vmin_vmaxz0TestDetermineCmapParams.test_norm_sets_vmin_vmax<  s   y}}y}}$'
$$&&
$$&&
$$TCZ<<
$$T4#:66
$$TCZ66 988'''
%
 
%
 	/ 	/ D&&  $y0ttdiH#y0ttdiH0fUUUKv&...v&...v&+x7777v&+x7777x(F2222v&$.....)	/ 	/r1   Nr  )r   r   r   r   r   r  rt  rz  r  r  r  r  r   r   r  r  r  r  r6   r1   r&   rg  rg    s&       V^D!!!/ / / "!/+ + + ++ + + +2 2 2 2
7 7 7 7
2 2 2 2
< < < < [%/ %/ %/ %/NC C C C"L4 L4 L4 L4\/ / / / / /r1   rg  c                  
   e Zd Z ej        d          d             Zej        j        dd            Zej        j        dd            Z	ej        j        dd            Z
ej        j        dd	            Zdd
ZddZddZdS )TestDiscreteColorMapTrt   c           
   #    K   t          j        ddd          }t          j        ddd          }t          j        t          j        ||                    }t           j                            |d          }t          |t          t          d	||f                              | _	        |
                                | _        |                                | _        d V  t          j        d
           d S )Nr   r   rz   )rg   rh   r+  r   iru  r  r    )ra   r   dstackr   linalgrp  r   r  r  r   r  data_minr  data_maxr"   r#   )rw   r   r   r   distances        r&   r  zTestDiscreteColorMap.setUpY  s      IABQ///IABR000Yr{1a(())9>>"1>--$s:1v/F/F*G*GHH  	%r1   r   r   c                    t          dd          }t          |          t          j        k    sJ t	          |          dk    sJ d S )Njetr   )r   typera   ndarrayr,   )rw   pals     r&   'test_recover_from_seaborn_jet_exceptionz<TestDiscreteColorMap.test_recover_from_seaborn_jet_exceptionf  sA    UA&&CyyBJ&&&&3xx1}}}}}}r1   c                   dddgddfdddgd	d
ffD ]\  }}}}t          ||||          \  }}|j        t          |          dz
  k    sJ t          |j                  t          |          dz
  k    sJ |j        t          |          k    sJ t	          |j        |           t          |          |j        k    sJ t          |          |j	        k    sJ |r|j
        |k    sJ |j
        d	k    sJ d S )Nr  r   r]   rn  Fhotr  r   r  T)r   r  r,   r  r   
boundariesr  rU  r  rT  colorbar_extend)rw   rS  ro  rm  filledncmapcnorms          r&   test_build_discrete_cmapz-TestDiscreteColorMap.test_build_discrete_cmapl  s7    QFFE*RGUD)-
 	6 	6(D&&& 0fffMMLE57c&kkAo----u|$$Fa77777c&kk))))u/888v;;%*,,,,v;;%*,,,, 6,66666,55555	6 	6r1   c                   dg dfdg dfdg dfdg dffD ]\  }}d	D ]} t          | j        j        |          |
          }t          ||j        j                   t          |          |j        j        k    sJ t          |          |j        j	        k    sJ |dk    r||j
        j        k    sJ nd|j
        j        k    sJ t          |          dz
  t          |j
        j                  k    sJ ٌd S )Nr  )r<  rz   r   r   r   rn  )rz   r   r   r  ry  r   r   r   r  r  )rz   r   r   r  r.  r?  r2  contourr  r  r]   )r  r   r   r   rp  r  r  rU  r  rT  rS  r  r,   r  )rw   rm  ro  kind	primitives        r&   %test_discrete_colormap_list_of_levelsz:TestDiscreteColorMap.test_discrete_colormap_list_of_levels~  sG    %%%&^^^$'NNN#	
 	E 	ENFF H 	E 	E;GDK$4d;;6JJJ	"69>+DEEE6{{in&999996{{in&999999$$!Y^%CCCCCC IN$BBBBB6{{Q#in.C*D*DDDDDD	E	E 	Er1   c                ,   dddd dt           j        j        fddfD ]\  }}}}}dD ]} t          | j        j        |          ||||          }|t          |j        j                  d	z
  k    sJ ||j        j	        | j
        k    sJ n|j        j	        |k    sJ ||j        j        | j        k    sJ n|j        j        |k    sJ |d
k    r||j        j        k    sJ nd|j        j        k    sJ |t          |j        j                  k    sJ d S )N)ry  r  NNNry  r  r   )rn  r  r   r   N)r  r   r   r  Nr  r  r]   r  r  )r?   rV  RdBur  r   r   r,   rp  r  rU  r  rT  r  rS  r  r  )rw   rm  ro  rT  rU  rS  r  r  s           r&   !test_discrete_colormap_int_levelsz6TestDiscreteColorMap.test_discrete_colormap_int_levels  sv    -4SV[1#$	1
 	< 	<,FFD$ H < <;GDK$4d;;!4d  	 Y^%>!?!?!!CCCCC<$>.$-?????$>.$6666<$>.$-?????$>.$66669$$!Y^%CCCCCC IN$BBBBBY^%:!;!;;;;;;#<	< 	<r1   c                    g d}| j                             |dd          }|j        j        t	          |          k    sJ |j        j        t          |          k    sJ d S )Nr  r  r   r  )r   r   rp  rU  r  rT  r  )rw   ro  r  s      r&   3test_discrete_colormap_list_levels_and_vmin_or_vmaxzHTestDiscreteColorMap.test_discrete_colormap_list_levels_and_vmin_or_vmax  se    K$$F"$EE	~"c&kk1111~"c&kk111111r1   c                    t           j                            g dd          }| j        j                            |          }t          j                            |j	        |j
                   d S Nr  r   rp  )r?   r  BoundaryNormr   r   r2  ra   rz  r{  ro  r  rw   rp  r  s      r&   -test_discrete_colormap_provided_boundary_normzBTestDiscreteColorMap.test_discrete_colormap_provided_boundary_norm  s[    z&&~~~q99K$--4-88	

""9#3T_EEEEEr1   c                    t           j                            g dd          }| j        j                            |          }|j        j        j        |j        j        j	        k    sJ d S r  )
r?   r  r  r   r   r2  rp   rp  Ncmapr  r  s      r&   Btest_discrete_colormap_provided_boundary_norm_matching_cmap_levelszWTestDiscreteColorMap.test_discrete_colormap_provided_boundary_norm_matching_cmap_levels  sc     z&&~~~q99K$--4-88	!&,	0B0G0IIIIIIIr1   Nr  )r   r   r   r   r   r  r   r   r  r  r  r  r  r  r  r6   r1   r&   r  r  W  s       V^D!!!
 
 "!
 [   
 [6 6 6 6" [E E E E$ [< < < <42 2 2 2F F F F
J J J J J Jr1   r  c                  ^   e Zd ZU dZded<   ded<   ded<   dZd	ed
<    ej        d          d@d            Zd@dZ	d@dZ
d@dZd@dZd@dZd@dZd@dZd@dZd@dZd@dZd@dZd@dZd@dZej                            d          ej                            d          d@d                        Zej                            d           d@d!            Zd@d"Zd@d#Zd@d$Zed@d%            Zd@d&Zd@d'Z d@d(Z!d@d)Z"d@d*Z#d@d+Z$d@d,Z%d@d-Z&d@d.Z'd@d/Z(d@d0Z)d@d1Z*d@d2Z+d@d3Z,d@d4Z-ej                            d5          d@d6            Z.ej                            d5          d@d7            Z/ej                            d8          d@d9            Z0d@d:Z1d@d;Z2d@d<Z3d@d=Z4d@d>Z5d@d?Z6dS )ACommon2dMixinz
    Common tests for 2d plotting go here.

    These tests assume that a staticmethod for `self.plotfunc` exists.
    Should have the same name as the method.
    r   r   staticmethodplotfuncr	   r   Nzdict[Any, Any] | Noner  Trt   r   r   c                   t          t          dd          ddgt          j        d          t          j        d          d	          }|                    d
          }t          j        |j        j        |j        j                  \  }}t          |ddg          |d<   t          |ddg          |d<   |	                    ddg          }|j
        | _        d| j        j        d<   d| j        j        d<   d| j        j        j        d<   d| j        j        j        d<   d| j        j        j        d<   d| j        j        j        d<   t          | j        j        | j        j                  | _        d S )N)r   r  r<  rg   r   r   r   r  r  r   testvarr   rQ  r:  r;  r   r   r   r   x_long_namex_unitsy_long_namey_units)r   rj   ra   r   
to_datasetr   r   r   r   
set_coordsr  r   r   r  r   r  r   r   )rw   r   r(  r   r   s        r&   r  zCommon2dMixin.setUp  sO   xr***s2RYr]];;
 
 
 ]]	]**{24;441asCj1115	asCj1115	]]E5>**!# *7+&%.'"+8K('0G$+8K('0G$!$+"2DM4JKKr1   c                    |                                   dt          j                                                    k    sJ dt          j                                                    k    sJ d S )Nx_long_name [x_units]y_long_name [y_units]r   r"   r   ro   rn   rv   s    r&   test_label_nameszCommon2dMixin.test_label_names  s^    &#'))*>*>*@*@@@@@&#'))*>*>*@*@@@@@@@r1   c                    t          j        t          d          5  |                     | j        dd d f                    d d d            d S # 1 swxY w Y   d S )NDataArray must be 2dr   r   )r   r   r   r  r   rv   s    r&   test_1d_raises_valueerrorz'Common2dMixin.test_1d_raises_valueerror  s    ]:-DEEE 	- 	-MM$+ad+,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   %AAAc                j    t          j        | j        t                                                     d S )Nr   r   rv   s    r&   	test_boolzCommon2dMixin.test_bool  s+    
T[---2244444r1   c                    t          j        t          d          5  | j        dz                                    d d d            d S # 1 swxY w Y   d S )Nr   r   r   )r   r   r   r   r   rv   s    r&   test_complex_raises_typeerrorz+Common2dMixin.test_complex_raises_typeerror  s    ]9M::: 	& 	&[2##%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   AA
A
c                   t          t          d                    }| j        j        dk    rt	          j                     t	          j        t          d          5  |                     |           d d d            d S # 1 swxY w Y   d S )Nr   r.  r  r   )r   rj   r  r   r   skipr   r   r+  s     r&   test_3d_raises_valueerrorz'Common2dMixin.test_3d_raises_valueerror  s    j++,,=!X--KMMM]:-DEEE 	 	MM!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A>>BBc                *   t          t          d          g dddgg          }| j        j        dk    rIt	          j        t                    5  |                     |           d d d            d S # 1 swxY w Y   d S |                     |           d S )Nr   rz   rJ  r  er$  surface)r   rj   r  r   r   r   	Exceptionr+  s     r&   r  z#Common2dMixin.test_nonnumeric_index  s    j((///C:1NOOO=!Y..y)) ! !a   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! MM!s   A11A58A5c                :   t          t          d          dt          dg dfdddgfddd	gf
                    }|                    d          }t	          j        t          d          5  |                     |           d d d            d S # 1 swxY w Y   d S )Nr  r   r   r   r]   rz   r   r   r]   rz   r   r   ri   r   r   r   r   z[Pp]lotr   )r   rj   r   r   r   r   r   r  r+  s     r&    test_multiindex_raises_typeerrorz.Common2dMixin.test_multiindex_raises_typeerror  s    v3			*sQFmaV}MMM
 
 

 KK*K%%]9J777 	 	MM!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   -BBBc                :    |                      | j                   d S rD   r   r   rv   s    r&   rk  z#Common2dMixin.test_can_pass_in_axis  s    $/*****r1   c                   |                      t          t          d          g dddgg                     t          j                                                    }|d         |d         k     sJ t          j                                                    }|d         |d         k     sJ |                      t          t          d          g dddgg                     t          j                                                    }|d         |d         k     sJ t          j                                                    }|d         |d         k     sJ d S )Nr  rH  r]   rz   r$  r   )r   rz   r]   )r  r   rj   r"   r   r  r  )rw   boundss     r&   test_xyincrease_defaultsz&Common2dMixin.test_xyincrease_defaults  s2    	i
6 2 2III1v;NOOOPPP##%%ay6!9$$$$##%%ay6!9$$$$i
6 2 2III1v;NOOOPPP##%%ay6!9$$$$##%%ay6!9$$$$$$r1   c                R   |                      dd           t          j                                                    }t          j                                                    }|d         dz
  |d         dz
  |d         dz
  |d         dz
  f}t          d |D                       sJ d S )NFr  r      r]   r   c              3  <   K   | ]}t          |          d k     V  dS r]   Nabsr  s     r&   r  zCCommon2dMixin.test_xyincrease_false_changes_axes.<locals>.<genexpr>)  ,      --!3q66A:------r1   r   r"   r   r  r  r    r  s       r&   r  z0Common2dMixin.test_xyincrease_false_changes_axes$  s    %5999wyy!!##wyy!!##Q"d1gk47Q;Q!C--u----------r1   c                R   |                      dd           t          j                                                    }t          j                                                    }|d         dz
  |d         dz
  |d         dz
  |d         dz
  f}t          d |D                       sJ d S )NTr  r   r]   r  r   c              3  <   K   | ]}t          |          d k     V  dS r  r  r  s     r&   r  zBCommon2dMixin.test_xyincrease_true_changes_axes.<locals>.<genexpr>0  r
  r1   r  r  s       r&   !test_xyincrease_true_changes_axesz/Common2dMixin.test_xyincrease_true_changes_axes+  s    $$777wyy!!##wyy!!##Q!T!Wr\47Q;Q!C--u----------r1   c                l   t          j        dd          }t          t          j                            dt          |                    dddgfd|fg          }|                    d           t          j	                    
                                d                                         }|dk    sJ d S )	Nr  r  rz   xxr]   r;   r   r   )rw  rx  r   ra   randomrandnr,   r   r"   r   r	  r
  r  s       r&   r  z/Common2dMixin.test_x_ticks_are_rotated_for_time2  s    }\<88biooaT33taVnsDk5RSS	799,,..q1>>@@1}}}}}}r1   c                $   | j         d d         }| j                                         }t          j        |dd <   |                     |                                          }|                     |                                          }||k    sJ d S )Nr   )r   r   ra   rZ  r  get_clim)rw   x1x2clim1clim2s        r&   r  zCommon2dMixin.test_plot_nans9  s~    [!_[122b!!**,,b!!**,,~~~~~~r1   zignore::UserWarningz ignore:invalid value encounteredc                    |                      t          t          j        dt          j                                       d S )Nrz   rz   )r  r   ra   fullrZ  rv   s    r&   test_can_plot_all_nansz$Common2dMixin.test_can_plot_all_nansB  s2     	i 7 78899999r1   zignore: Attempting to setc                    | j         j        dvr6|                      t          t          j        d                               d S d S )N)r  r2  )r]   r]   )r  r   r   ra   onesrv   s    r&   test_can_plot_axis_size_onez)Common2dMixin.test_can_plot_axis_size_oneH  sD    =!)@@@MM)BGFOO4455555 A@r1   c                    t          j        t                    5  |                     t	          t          j        d                    d           d d d            d S # 1 swxY w Y   d S )Nr  znot Nonergb)r   r   r   r  r   ra   r  rv   s    r&   test_disallows_rgb_argz$Common2dMixin.test_disallows_rgb_argM  s    ]:&& 	F 	FMM)BGFOO44*MEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fs   7AA"%A"c                p    |                      d                                          j        }d|k    sJ d S )NrW  rc  r   get_cmapr   rw   	cmap_names     r&   test_viridis_cmapzCommon2dMixin.test_viridis_cmapR  s;    OOO33<<>>C	I%%%%%%r1   c                    |                                                                  j        }d|k    sJ |                     t	          | j                                                            j        }d|k    sJ d S )Nrx  rW  )r   r&  r   r  r	  r   r'  s     r&   test_default_cmapzCommon2dMixin.test_default_cmapV  sr    OO%%..005	9$$$$MM#dk"2"233<<>>C	I%%%%%%r1   c                r    |                      dd                                          j        }d|k    sJ d S )Nrz   husl)ro  rS  r%  r'  s     r&   test_seaborn_palette_as_cmapz*Common2dMixin.test_seaborn_palette_as_cmap]  s=    OO16O::CCEEJ	""""""r1   c                p    |                      d                                          j        }d|k    sJ d S )Nr  rc  r%  r'  s     r&   test_can_change_default_cmapz*Common2dMixin.test_can_change_default_cmapb  s;    OOO11::<<A	)######r1   c                    |                                  }|                                \  }}t          t          | |z
            d          dk    sJ d S )Nr  r   )r   r  roundr	  )rw   artistrT  rU  s       r&   test_diverging_color_limitsz)Common2dMixin.test_diverging_color_limitsf  sS    ""__&&
dS$&&**a//////r1   c                    |                      dd           t          j                    }d|                                k    sJ d|                                k    sJ d S )Nr   r   r   r  r  r  rw   rL   s     r&   test_xy_stringszCommon2dMixin.test_xy_stringsk  s[    #%%%WYY&"--//9999&"--//999999r1   c                z   |                      d           t          j                    }d|                                k    sJ d|                                k    sJ |                      d           t          j                    }d|                                k    sJ d|                                k    sJ d S )Nr   r   r  r  r   )r   r"   r   rn   ro   r6  s     r&   test_positional_coord_stringz*Common2dMixin.test_positional_coord_stringq  s    #WYY&"--//9999&"--//9999#WYY&"--//9999&"--//999999r1   c                   t          j        t          d          5  |                     dd           d d d            n# 1 swxY w Y   d}t          j        t          d|           5  |                     dd           d d d            n# 1 swxY w Y   t          j        t          d|           5  |                     d           d d d            n# 1 swxY w Y   t          j        t          d	|           5  |                     d
           d d d            n# 1 swxY w Y   d| j        j        d<   d S )Nzx and y cannot be equal.r   r   r   z+must be one of None, 'x', 'x2d', 'y', 'y2d'r   not_a_real_dimr   r   r   r   r   )r   r   r   r   r   r   )rw   r   s     r&   test_bad_x_string_exceptionz)Common2dMixin.test_bad_x_string_exception|  s:   ]:-HIII 	* 	*OOcSO)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* B	]:->9->->??? 	7 	7OO.#O666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7]:->9->->??? 	0 	0OO.O///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0]:->9->->??? 	0 	0OO.O///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0"%3sG   A  AA+BBB8CC"CD''D+.D+c                v    ddht          | j        j                  k    sJ |                     dd           d S )Nr   r   r  )setr   r   r   rv   s    r&   test_coord_stringsz Common2dMixin.test_coord_strings  s@    SzS!1222222#%%%%%r1   c                ^   | j         j        dz   | j         j        d<   |                     | j         dd           t	          j                    }d|                                k    sJ d|                                k    sJ t          j	        |
                                          dk    sJ d S N   newyr   r   r  g      Y@)r   r   r   r  r"   r   ro   rn   ra   r  r  r6  s     r&   test_non_linked_coordsz$Common2dMixin.test_non_linked_coords  s    %)[]S%86"dkSF333WYY&"--//9999(((( vbkkmm$$u,,,,,,r1   c                ^   | j         j        dz   | j         j        d<   |                     | j         dd           t	          j                    }d|                                k    sJ d|                                k    sJ t          j	        |
                                          dk    sJ d S rA  )r   r   r   r  r"   r   ro   rn   ra   r  r  r6  s     r&    test_non_linked_coords_transposez.Common2dMixin.test_non_linked_coords_transpose  s    
 &*[]S%86"dkVs333WYY((((&"--//9999 vbkkmm$$u,,,,,,r1   c                   t          t          d          dt          dg dfdddgfddd	gf
                    }|                    ddg          }dD ]d\  }}|                     |||           t          j                    }||                                k    sJ ||                                k    sJ et          j
        t          d          5  |                     |dd           d d d            n# 1 swxY w Y   t          j
        t          d          5  |                     |dd           d d d            d S # 1 swxY w Y   d S )Nr  r   r   r  r   r   r]   rz   r   r  r   ri   r   r   ))ri   r   )r   r   )r   ri   )r   r   zlevels of the same MultiIndexr   z$y must be one of None, 'a', 'b', 'x')r   rj   r   r   r  r"   r   ro   rn   r   r   r   )rw   r   r   r   rL   s        r&   r   z,Common2dMixin.test_multiindex_level_as_coord  s   v3			*sQFmaV}MMM
 
 

 \\S#J\''D 	( 	(DAqMM"QM'''B''''''''']:-MNNN 	, 	,MM"sM+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, ]:-TUUU 	, 	,MM"sM+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s$   C;;C?C?!EEEc                .   t          t          d          g d          }ddg|j        d<   d|j        d<   |                     |                    d	                     t          j                                                    }d
|k    sd|k    sJ d S d S )N)r   r   rz   rJ  rQ  r   r]   rK  foor  rK  zc = 1, d = foozd = foo, c = 1)r   rj   r   r  iselr"   r   r  )rw   ri   r  s      r&   test_default_titlez Common2dMixin.test_default_title  s    j++///BBBAaffqfkk"""		##%%5((,<,E,E,E,E((,E,Er1   c                V    |                      d           dt                      v sJ d S )NTadd_colorbarr   )r   rB   rv   s    r&   test_colorbar_default_labelz)Common2dMixin.test_colorbar_default_label  s1    T***&+--777777r1   c                    d| j         _        d| j         j        d<   |                     d           t	                      }dD ]}||vsJ 	d S )Nr  
test_unitsr   F)
add_labels)r  r  testvar [test_units])r   r   r   r   rB   )rw   rM   strings      r&   test_no_labelszCommon2dMixin.test_no_labels  si    $%1'"5)))
 	( 	(F
 '''''	( 	(r1   c                \   | j         j                            d           d| j         j        d<   |                     d           t	                      }d|v sJ | j         j                            d           d| j         _        |                     ddd	i
           t	                      }d	|v sJ d|vsJ |                     dd
           t	                      }d	|v sJ d|vsJ t          j        dd          \  }\  }}|                     ||dddi           |                                sJ |                                sJ t	                      }d|v sJ d|vsJ t          j        dd          \  }\  }}|                     |dd|d           |                                sJ |                                sJ t	                      }d|v sJ d|vsJ |                     d           dt	                      vsJ t          j
        t          | j        dddi
           d S )Nr   rR  r   TrN  rT  r  r  MyLabel)rO  cbar_kwargs))r  rX  r]   rz   MyBar)rL   cbar_axrO  rY  )r  cax)rL   rO  rY  F)r   r   r   r   rB   r   r"   r~   r   r   r   r   )rw   rM   r   rL   r\  s        r&   test_colorbar_kwargsz"Common2dMixin.test_colorbar_kwargs  s   k***%1'"T***%////g&&&$T7KLLLF""""&&&&T7NOOOF""""&&&&a++Yb#3T?Q 	 	
 	
 	
 {{}}||~~&    &&&&a++Yb#GC2P2P 	 	
 	
 	
 {{}}||~~&    &&&&U+++----O '*		
 	
 	
 	
 	
 	
r1   c                   t          d          }t          |g d          }t          j        |d| j                  }|                    | j        dd           |j        j        D ]}|	                                sJ d S )Nr   r  r   r  rQ  r   )r  r  r   r   )
rj   r   xplt	FacetGridr  map_dataarrayr  r   r   r   r  s        r&   test_verbose_facetgridz$Common2dMixin.test_verbose_facetgrid  s    {##aooo...N1#43CDDD	sC000%* 	! 	!B;;==    	! 	!r1   c                    t          j        | j                  }t          j        | j                  }|j                                        D ]\  }}|j        |         |k    sJ d S rD   )inspect	signaturer  r   
parametersitems)rw   func_sig
method_sigargnameparams        r&   *test_2d_function_and_method_signature_samez8Common2dMixin.test_2d_function_and_method_signature_same  sn    $T]33&t77
(399;; 	9 	9NGU&w/588888	9 	9r1   r  c                   t          d          }t          |g d          }|                     |dddd          }t          |j        j        ddg           t          j        |j                  D ]\  \  }}}|                                sJ |d	k    rd|	                                k    sJ nd
|	                                k    sJ |dk    rd|
                                k    sJ zd
|
                                k    sJ |                     |dd          }t          |j        j        ddg           t          j        |j                  D ]\  \  }}}|                                sJ |d	k    rd|	                                k    sJ nd
|	                                k    sJ |dk    rd|
                                k    sJ zd
|
                                k    sJ d S )Nr  r  rQ  r   r   r   rz   r   r   r  r  r   r   r]   r  r  rj   r   r  r   r   rf   ra   ndenumerater   rn   ro   rw   ri   r  rb  r   r   rL   s          r&   r  z'Common2dMixin.test_convenient_facetgrid  s   {##aooo...MM!scsQM??15;A///.// 		- 		-JFQB;;==   Avvbmmoo-----R]]__,,,,Avvbmmoo-----R]]__,,,,, MM!qM1115;A///.// 		- 		-JFQB;;==   Avvbmmoo-----R]]__,,,,Avvbmmoo-----R]]__,,,,,		- 		-r1   c                    t          d          }t          |g d          }|                     |dddd          }t          |j        j        d	d
g           |j        j        D ]}|                                sJ d S )Nr  r  rQ  r   r   r  r  r  r   rz   )rj   r   r  r   r   rf   r   r   r  s        r&   r  z*Common2dMixin.test_convenient_facetgrid_4d6  s    ~&&a;;;<<<MM!scyfMEE15;A///%* 	! 	!B;;==    	! 	!r1   zignore:This figure includesc                    t          d          }t          |g d          }|                     |dddd          }|j        }|                    d	            |j        }||k    sJ d S )
Nr  r  rQ  r   r   r  r  r  c                 ,    t          j        dd          S r  )r"   r   r6   r1   r&   <lambda>zICommon2dMixin.test_facetgrid_map_only_appends_mappables.<locals>.<lambda>H  s    chq!nn r1   )rj   r   r  
_mappablesmap)rw   ri   r  rb  r  r  s         r&   )test_facetgrid_map_only_appends_mappablesz7Common2dMixin.test_facetgrid_map_only_appends_mappables@  s~    ~&&a;;;<<<MM!scyfMEE<	$$%%%6!!!!!!r1   c                `   t           j                            d          t          j        ddd          z   }t          |g d          }|j                            d	          }t          d
 |j        D                       dk    sJ t          d |j        D                       dk    sJ d S )N)r      rt  r  r  r   rt  )r   r   r   rQ  r   r  c                6    h | ]}|                                 S r6   )r  r:   r  s     r&   r<   z4Common2dMixin.test_facetgrid_cmap.<locals>.<setcomp>S  s     888QAJJLL888r1   r]   c                @    h | ]}|                                 j        S r6   )r&  r   r  s     r&   r<   z4Common2dMixin.test_facetgrid_cmap.<locals>.<setcomp>U  s#    ===!AJJLL%===r1   )ra   r  rb   r   r   r?  r,   rx  )rw   r   r  fgs       r&   test_facetgrid_cmapz!Common2dMixin.test_facetgrid_cmapM  s    y\22R[Q5K5KKd!3!3!3444V6**88"-88899Q>>>>==r}===>>!CCCCCCr1   c           	         t          d          }t          |g d          }|                     |dddddd	i
          }|j        t	          |j                  d	k    sJ d S d S )Nr  r  rQ  r   r   r  r  r  
test_label)r   r   r  r  rY  )rj   r   r  cbarrq   )rw   ri   r  rb  s       r&   test_facetgrid_cbar_kwargsz(Common2dMixin.test_facetgrid_cbar_kwargsW  s    ~&&a;;;<<<MM ,/  
 
 6%af--==== ==r1   c           	         t          d          }t          |g d          }t          j        t                    5  |                     |ddddd	           d d d            d S # 1 swxY w Y   d S )
Nr  r  rQ  r   r   r  r  r]   )r   r   r  r  r[  )rj   r   r   r   r   r  rw   ri   r  s      r&   test_facetgrid_no_cbar_axz'Common2dMixin.test_facetgrid_no_cbar_axg  s    ~&&a;;;<<<]:&& 	Q 	QMM!scyfaMPPP	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Qs   A%%A),A)c                    t          j        t                    5  |                     dd           d d d            d S # 1 swxY w Y   d S Nkr  )r  rS  r   r   r   r   rv   s    r&   test_cmap_and_color_bothz&Common2dMixin.test_cmap_and_color_bothm      ]:&& 	5 	5OO3VO444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5   ?AAc                    | j         j        D ]b}| j                             |t          d          d                              |g          }dD ]} t          |j        |                        cd S )Nr  T)restore_coord_dimsr  )r   r   r  r  r  r  r   )rw   r  gpr  s       r&   test_2d_coord_with_intervalz)Common2dMixin.test_2d_coord_with_intervalq  s    ;# 	) 	)C))#uRyyT)RRWW B H ) )&&&(((()		) 	)r1   c                |   t           j                            dd          }t          j        t
                    5  | j                            |d           d d d            n# 1 swxY w Y   t          j        t
                    5  | j                            |d           d d d            d S # 1 swxY w Y   d S )Nr   g      $@rz   )rp  rT  )rp  rU  )r?   r  LogNormr   r   r   r   r   )rw   rp  s     r&   &test_colormap_error_norm_and_vmin_vmaxz4Common2dMixin.test_colormap_error_norm_and_vmin_vmaxy  s*   z!!#s++]:&& 	0 	0K$Q///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 ]:&& 	0 	0K$Q///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s#   A##A'*A'B11B58B5r  )7r   r   r   __doc____annotations__r  r   r   r  r  r  r  r  r  r  r  rk  r  r  r  r  r  r   r  r  r  r#  r)  r+  r   r.  r0  r4  r7  r9  r<  r?  rD  rF  r   rL  rP  rV  r]  rc  rm  r  r  rz  r  r  r  r  r  r  r6   r1   r&   r  r    s           *.K----V^D!!!L L L "!L2A A A A
- - - -5 5 5 5& & & &         + + + +% % % %. . . .. . . .       [ 566[ BCC: : : DC 76: [ ;<<6 6 6 =<6F F F F
& & & && & & & # # # #$ $ $ $0 0 0 0
: : : :	: 	: 	: 	:& & & && & & &

- 
- 
- 
-- - - -, , , ,*F F F F8 8 8 8
( 
( 
( 
(1
 1
 1
 1
f! ! ! !9 9 9 9 [ <==- - - >=-> [ <==! ! ! >=! [ =>>
" 
" 
" ?>
"D D D D> > > > Q Q Q Q5 5 5 5) ) ) )0 0 0 0 0 0r1   r  c                      e Zd Z eej                  Zej        j	        d	d            Z
d	dZej        j	        d	d            Zej        j	        d	d            Zej        j	        d	d            ZdS )
TestContourfr   r   c                    |                      | j        j        j                  rJ |                      | j        j        j                  sJ d S rD   )r   r   r   r.  r2  rv   s    r&   test_contourf_calledz!TestContourf.test_contourf_called  sN     ''(8(?@@@@@##DK$4$=>>>>>>>r1   c                p    |                                  }t          |t          j        j                  sJ d S rD   )r   r   r?   r  QuadContourSetrw   r3  s     r&   test_primitive_artist_returnedz+TestContourf.test_primitive_artist_returned  s2    ""&#+"<=======r1   c                n   |                                  }|j        dk    sJ d| j        d<   d| j        d<   |                      d          }|j        dk    sJ d	| j        d<   d	| j        d<   |                      d	d
          }|j        dk    sJ |                      dd	          }|j        dk    sJ d S )Nry  ir(  r   r<  r<  Trj  rn  r   r   r  r  ir  )r   rm  r   r  s     r&   test_extendzTestContourf.test_extend  s    ""}	)))) D!F--}&&&&DFbr22}%%%%c22}%%%%%%r1   c                    |                      dd           t          j                    }d|                                k    sJ d|                                k    sJ d S Nr:  r;  r   r  r6  s     r&   test_2d_coord_namesz TestContourf.test_2d_coord_names  [    %5)))WYY''''''''''r1   c                    |                      g d          }|j        dk    sJ |                      d          }|j        dk    sJ d S )N)rm  r  r   r  rn  r   ry  )r   rm  r  s     r&   test_levelszTestContourf.test_levels  s[    (9(9(9::}&&&&**}	))))))r1   Nr  )r   r   r   r  r`  r2  r  r   r   r   r  r  r  r  r  r6   r1   r&   r  r    s        |DM**H[? ? ? ?
> > > > [& & & &" [( ( ( ( [* * * * * *r1   r  c                      e Zd Z eej                  Zed             ZddZddZ	ddZ
ddZej        j        dd            Zdd	Zd
S )TestContourc                0    t          | d d                   S )Nr   )r  rJ  s    r&   _color_as_tuplezTestContour._color_as_tuple  s    QrrU||r1   r   r   c                (   |                      d          }|j        j        d         dk    sJ |                      ddg          }|                     |j        j        d                   dk    sJ | j        j                            g dg d	          }|                     |j        j        d                   d
k    sJ |                     |j        j        d                   dk    sJ |                     |j        j                  dk    sJ d S )Nr  )r  r   r   r]           r        ?rm  r  rn  r  r  ra  r`  r   ro  r  r  r  r  rz   r  r  r  )r   rS  r  r  r   r   r  
_rgba_overr  s     r&   test_colorszTestContour.test_colors  s   ,,{!!$++++c
33##FK$6q$9::oMMMM!))(((1E1E1E * 
 
 ##FK$6q$9::oMMMM##FK$6q$9::oMMMM##FK$:;;NNNNNNr1   c                n   t          j        g d          }| j        j                            |g d          }|                     |j        j        d                   dk    sJ |                     |j        j        d                   dk    sJ |                     |j        j                  dk    sJ d S )	Nr  r  r  r]   r  rz   r  r  )	ra   r   r   r   r  r  rS  r  r  )rw   ro  r3  s      r&   test_colors_np_levelsz!TestContour.test_colors_np_levels  s    ///00!))@T@T@T)UU##FK$6q$9::oMMMM##FK$6q$9::oMMMM##FK$:;;NNNNNNr1   c                    t          j        t                    5  |                     dd           d d d            d S # 1 swxY w Y   d S r  r  rv   s    r&   r  z$TestContour.test_cmap_and_color_both  r  r  c                    t          j        t          d          5  |                     ddg           d d d            d S # 1 swxY w Y   d S )Nzlist of colorsr   r  r   rc  r  rv   s    r&   #list_of_colors_in_cmap_raises_errorz/TestContour.list_of_colors_in_cmap_raises_error  s    ]:->??? 	- 	-OO#sO,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   AA	Ac                    |                      dd           t          j                    }d|                                k    sJ d|                                k    sJ d S r  r  r6  s     r&   r  zTestContour.test_2d_coord_names  r  r1   c                `    |                      dg           |                      d           d S )Nr   r  r]   )r   rv   s    r&   test_single_levelzTestContour.test_single_level  s4     	u%%%q!!!!!r1   Nr  )r   r   r   r  r`  r  r  r  r  r  r  r  r   r   r   r  r  r6   r1   r&   r  r    s        |DL))H   \O O O O O O O O5 5 5 5- - - - [( ( ( (" " " " " "r1   r  c                  r    e Zd Z eej                  ZddZddZe	j
        j        dd            ZddZdS )	TestPcolormeshr   r   c                p    |                                  }t          |t          j        j                  sJ d S rD   )r   r   r?   rE   rF   r  s     r&   r  z-TestPcolormesh.test_primitive_artist_returned  s2    ""&#/":;;;;;;;r1   c                    |                                  }|                                j        | j        j        k    sJ d S rD   )r   	get_arrayr  r   r  s     r&   test_everything_plottedz&TestPcolormesh.test_everything_plotted  s<    ""!!&$+*:::::::r1   c                    |                      dd           t          j                    }d|                                k    sJ d|                                k    sJ d S r  r  r6  s     r&   r  z"TestPcolormesh.test_2d_coord_names  r  r1   c                   t          j                    }t          |dd           |                     dd|          }t	          |t
          j        j                  sJ |                                j	        | j
        j	        k    sJ d S )N
projectionTr:  r;  r   )r"   r   setattrr   r   r?   rE   rF   r  r  r   )rw   rL   r3  s      r&   +test_dont_infer_interval_breaks_for_cartopyz:TestPcolormesh.test_dont_infer_interval_breaks_for_cartopy  s|    WYYL$'''5Eb99&#/":;;;;;!!&$+*:::::::r1   Nr  )r   r   r   r  r`  r?  r  r  r  r   r   r   r  r  r6   r1   r&   r  r    s        |DO,,H< < < <; ; ; ; [( ( ( (; ; ; ; ; ;r1   r  c                  p    e Zd ZdZ eej                  Z ej	        d          d	d            Z
d	dZdS )
TestPcolormeshLogscalez;
    Test pcolormesh axes when x and y are in logscale
    Trt   r   r   c                <   d| _         d}t          j        | j         d         | j         d         |d                   }t          j        | j         d         | j         d         |d                   }t          t	          |d          d	d
g||dd          }|| _        d S )N)r<  r   r  r   )r   r  r   r]   rz   r   r<  r  r   r   r  r  r   )r  ra   r  r   rj   r   )rw   rf   r   r   r   s        r&   r  zTestPcolormeshLogscale.setUp  s    (K*DOA,>aIIK*DOA,>aIIuB'''s##	
 
 
 r1   c                   | j         j                            dd          }d |                                d         D             }d |                                d         D             }t	          j        |          t	          j        |          }}t	          j        |          t	          j        |          }}d}t          j                            |d| j	        d         |z
  z             t          j                            |d| j	        d	         |z   z             t          j                            |d| j	        d
         |z
  z             t          j                            |d| j	        d         |z   z             dS )zx
        Check if the outer vertices of the pcolormesh are the expected values

        Checks bugfix for #5333
        r  )xscaleyscalec                0    g | ]}|j         d d df         S r   rA  r:   rC  s     r&   rS   zHTestPcolormeshLogscale.test_interval_breaks_logspace.<locals>.<listcomp>*  '    MMM1ajA&MMMr1   r   c                0    g | ]}|j         d d df         S r  r  r  s     r&   rS   zHTestPcolormeshLogscale.test_interval_breaks_logspace.<locals>.<listcomp>+  r  r1   rn  r   r   r]   rz   r   N)
r   r   r?  
propertiesra   r  r  rz  r{  r  )	rw   r3  
x_vertices
y_verticesxminxmaxyminymaxlog_intervals	            r&   test_interval_breaks_logspacez4TestPcolormeshLogscale.test_interval_breaks_logspace!  sY    !,,E%,HH NM0A0A0C0CG0LMMM
MM0A0A0C0CG0LMMM
 VJ''
););dVJ''
););d 

""40B\0Q)RSSS

""40B\0Q)RSSS

""40B\0Q)RSSS

""40B\0Q)RSSSSSr1   Nr  )r   r   r   r  r  r`  r?  r  r   r   r  r  r6   r1   r&   r  r    sy          |DO,,HV^D!!!   "!T T T T T Tr1   r  c                     e Zd Z eej                  Zej        j	        dd            Z
ddZddZej        j	        dd            Zej        j	        dd            Zej        j	        edd                        Zdd	Zdd
ZddZddZddZddZddZddZej                            g dg d          d d            ZddZddZej                            d          dd            ZddZdS )!
TestImshowr   r   c                    |                      | j        j        j                  rJ |                      | j        j        j                  sJ d S rD   )r   r   r   r2  r.  rv   s    r&   test_imshow_calledzTestImshow.test_imshow_called>  sN     %%dk&6&?@@@@@!!$+"2"9:::::::r1   c                6   | j         j                            d           t          j        ddgt          j                                                              sJ t          j        ddgt          j                                                              sJ d S )NFr  rm  g      -@rp  )	r   r   r.  ra   allcloser"   r   r  r  rv   s    r&   test_xy_pixel_centeredz!TestImshow.test_xy_pixel_centeredD  s    %000{D$<););)=)=>>>>>{C;		(:(:(<(<=======r1   c                    | j         j                                         dt          j                                                    k    sJ d S )Nauto)r   r   r.  r"   r   
get_aspectrv   s    r&   test_default_aspect_is_autoz&TestImshow.test_default_aspect_is_autoI  sB    !!!--////////r1   c                   t          j        t          d          5  | j        j                            d           d d d            n# 1 swxY w Y   | j        j                            dd           dt          j                                                    k    sJ t          t          j
                                                              d	k    sJ d S )
Nznot available in xarrayr   equalr  r   rz   r  r  r  )r   r   r   r   r   r.  r"   r   r  r  r=   r  rv   s    r&   test_cannot_change_mpl_aspectz(TestImshow.test_cannot_change_mpl_aspectM  s    ]:-GHHH 	4 	4K##7#333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	Qq111--//////SWYY..0011W<<<<<<s   !A		AAc                p    |                                  }t          |t          j        j                  sJ d S rD   )r   r   r?   r   r   r  s     r&   r  z)TestImshow.test_primitive_artist_returnedW  s2    ""&#)"56666666r1   c                    t          j        t                    5  |                     d           d d d            d S # 1 swxY w Y   d S )Nr-  rc  r  rv   s    r&   !test_seaborn_palette_needs_levelsz,TestImshow.test_seaborn_palette_needs_levels\  s     ]:&& 	) 	)OOO(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   >AAc                    t          j        t          d          5  |                     dd           d d d            d S # 1 swxY w Y   d S )Nzrequires 1D coordinatesr   r:  r;  r   r  rv   s    r&   r  zTestImshow.test_2d_coord_namesb  s    ]:-GHHH 	. 	.OOeuO---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   AAAc                    t          t          dd          g d          j                                         dt	          t                                k    sJ d S )Nr_  r   r  r   r   bandrQ  r   rj   r   r.  r,   rG   rv   s    r&   test_plot_rgb_imagezTestImshow.test_plot_rgb_imagef  s`    {!,,,3E3E3E	
 	
 	

vvxxxC/1122222222r1   c                    t          t          dd          g d          j                            ddd	           dt	          t                                k    sJ d S )
Nr_  r   r  r  rQ  r   r   r  )r   r   r"  r  rv   s    r&   test_plot_rgb_image_explicitz'TestImshow.test_plot_rgb_image_explicitl  sk    {!,,,3E3E3E	
 	
 	

vvsv///C/1122222222r1   c                    t          t          dd          g d          j                            dd           dt	          t                                k    sJ d S )	N)rz   rz   r   r  r   r   r  )ri   r   r   r   r  rQ  ri   r   r  r  r  rv   s    r&   test_plot_rgb_facetedz TestImshow.test_plot_rgb_facetedr  sj    (2229U9U9U	
 	
 	

vv#3v'''C/1122222222r1   c                x    t          t          dd          g d          j                                         d S )N)r   r   r  r   r  )r  r   r   rQ  r   rj   r   r.  rv   s    r&   test_plot_rgba_image_transposedz*TestImshow.test_plot_rgba_image_transposedx  s>    {!,,,3E3E3E	
 	
 	

vvxxxxxr1   c                H   t          t          d          g d          }t          j        t                    5  |j                                         d d d            n# 1 swxY w Y   |j                            d           |j                            dd           d S )	N)r   r   r   r  rQ  r  r!  r   r   r   )r   rj   r   warnsUserWarningr   r.  rM  s     r&   test_warns_ambigious_dimz#TestImshow.test_warns_ambigious_dim~  s    
9--4F4F4FGGG\+&& 	 	HOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	F####%%%%%s   A  A$'A$c                    t          t          d          g d          }t          j        t                    5  |j                            d           d d d            d S # 1 swxY w Y   d S )N)r   r   r   r   )r   r   r   r  rQ  r  r!  r   rj   r   r   r   r   r.  rM  s     r&   test_rgb_errors_too_many_dimsz(TestImshow.test_rgb_errors_too_many_dims  s    
<007N7N7NOOO]:&& 	( 	(HOOO'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(   A##A'*A'c                    t          t          d          g d          }t          j        t                    5  |j                            d           d d d            d S # 1 swxY w Y   d S )N)r   r   r   r  rQ  r  r!  r  rM  s     r&   test_rgb_errors_bad_dim_sizesz(TestImshow.test_rgb_errors_bad_dim_sizes  s    
9--4F4F4FGGG]:&& 	( 	(HOOO'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(r  rT  rU  rk  ))r<  NF)Nrz   F)r<  r]   F)r   r   F)r   NT)Nr<  TrT  float | NonerU  rk  r   c                   t          t          ddd                    }|j                            |||                                          }d|                                cxk    r|                                cxk    rdk    sn J d S )Nr   r   r   333333ffffff?rg   rh   r  r   r]   )r   rj   r   r.  r  r  r  )rw   rT  rU  rk  r   r  s         r&   test_normalize_rgb_imshowz$TestImshow.test_normalize_rgb_imshow  s     z)4cBBBCCgnn$T&nAAKKMMCGGII////////a////////r1   c                6   t          t          ddd                    }dD ]R\  }}t          j        t                    5  |j                            ||           d d d            n# 1 swxY w Y   SdD ]!\  }}|j                            ||           "d S )Nr  r  r  r  ))Nr<  )rz   Nr  ))g333333r<  )rz   g @r  )rw   r   rT  rU  vmin2vmax2s         r&    test_normalize_rgb_one_arg_errorz+TestImshow.test_normalize_rgb_one_arg_error  s    z)4cBBBCC1 	5 	5JD$z** 5 5Dt4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 3 	3 	3LE5GNNEN2222	3 	3s    A))A-	0A-	c                x   t          t          j        dd                              d                    }t	          j                    \  }}|j                            |                                          }|j	        t          j
        k    sJ |dd df         |j        k                                    sJ d S )NK   uint8r   r  r}   .r   )r   ra   r   re   r"   r~   r   r.  r  r   r  r   r    )rw   r   rD  rL   outs        r&   %test_imshow_rgb_values_in_valid_rangez0TestImshow.test_imshow_rgb_values_in_valid_range  s    ry7333;;IFFGG2gnnn##--//yBH$$$$C!G	)..0000000r1   z'ignore:Several dimensions of this arrayc                v    t          t          ddd                    }|j                                         d S )N)r]   r   r   r  r  r  r  r  s     r&   'test_regression_rgb_imshow_dim_size_onez2TestImshow.test_regression_rgb_imshow_dim_size_one  s8     z)3SAAABB
r1   c                P   t          t          d          g dddgg          }t                      5  |j                            d           t          j                    d         dk     sJ t          j                    d         dk     sJ 	 d d d            n# 1 swxY w Y   t                      5  |j                            d	           t          j                    d         dk     sJ t          j                    d         dk     sJ 	 d d d            d S # 1 swxY w Y   d S )
Nr  )r   rz   r<  r]   r$  upper)originr   lower)r   rj   r'   r   r.  r"   r  r  r  s     r&    test_origin_overrides_xyincreasez+TestImshow.test_origin_overrides_xyincrease  s   z&)):::Aw2GHHH 	% 	%GNN'N***8::a=1$$$$8::a=1$$$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%
  	% 	%GNN'N***8::a=1$$$$8::a=1$$$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s%   ABB!B3ADD"DNr  )rT  r  rU  r  rk  r   r   r   ) r   r   r   r  r`  r.  r  r   r   r   r  r  r  r  r  r   r  r  r  r  r  r   r  r  r
  r  r  r  r  r  r  r#  r6   r1   r&   r  r  :  sJ       |DK((H[; ; ; ;
> > > >
0 0 0 0 [= = = = [7 7 7 7 [) ) )  ). . . .3 3 3 33 3 3 33 3 3 3   & & & &( ( ( (
( ( ( (
 ["""	
 	
 	

 
0 0 0
 
03 3 3 31 1 1 1 [ IJJ   KJ

% 
% 
% 
% 
% 
%r1   r  c                  ,    e Zd Z eej                  ZddiZddZe	j
        j        dd            ZddZddZdd	Zdd
ZddZddZddZd fdZe	j
                            d          dd            Zd fdZd fdZd fdZd fdZ xZS )TestSurfacer  3dr   r   c                z    |                                  }t          |t          j        j        j                  sJ d S rD   )r   r   mpl_toolkitsmplot3dart3dPoly3DCollectionr  s     r&   r  z*TestSurface.test_primitive_artist_returned  s6    ""&,"6"<"MNNNNNNNr1   c                *   |                      dd           t          j                    }d|                                k    sJ d|                                k    sJ | j        j         d| j        j         d|                                k    sJ d S )Nr:  r;  r   z [])	r   r"   r   ro   rn   r   r   r   
get_zlabelr6  s     r&   r  zTestSurface.test_2d_coord_names  s    %5)))WYY''''''''+'??4;+<???2==??RRRRRRr1   c                .    t          j        d           d S Nz%does not make sense for surface plotsr   r  rv   s    r&   r  z.TestSurface.test_xyincrease_false_changes_axes      ;<<<<<r1   c                .    t          j        d           d S r0  r1  rv   s    r&   r  z-TestSurface.test_xyincrease_true_changes_axes  r2  r1   c                B    |                      | j        ddi           d S )Nr  r&  )r|   r   rv   s    r&   rk  z!TestSurface.test_can_pass_in_axis  s(    $/|T6JKKKKKr1   c                .    t          j        d           d S r0  r1  rv   s    r&   r+  zTestSurface.test_default_cmap  r2  r1   c                .    t          j        d           d S r0  r1  rv   s    r&   r4  z'TestSurface.test_diverging_color_limits  r2  r1   c                .    t          j        d           d S r0  r1  rv   s    r&   r]  z TestSurface.test_colorbar_kwargs  r2  r1   c                .    t          j        d           d S r0  r1  rv   s    r&   r  z$TestSurface.test_cmap_and_color_both  r2  r1   c                    t          j        t                    5  t                                                       d d d            d S # 1 swxY w Y   d S rD   )r   r   r   superr.  rw   	__class__s    r&   r.  z(TestSurface.test_seaborn_palette_as_cmap  s    ]:&& 	3 	3GG00222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   !A		AAr  c                   t          d          }t          |g d          }|                     |dddd          }t          |j        j        ddg           t          j        |j                  D ]R\  \  }}}|                                sJ d|	                                k    sJ d|
                                k    sJ S|                     |dd	          }t          |j        j        ddg           t          j        |j                  D ]R\  \  }}}|                                sJ d|	                                k    sJ d|
                                k    sJ Sd S )
Nr  r  rQ  r   r   r   rz   ro  rp  rq  rs  s          r&   r  z%TestSurface.test_convenient_facetgrid  sk   {##aooo...MM!scsQM??15;A///.// 	* 	*JFQB;;==   "--//))))"--//))))) MM!qM1115;A///.// 	* 	*JFQB;;==   "--//))))"--//)))))	* 	*r1   c                D    t                                                      S rD   )r:  r)  r;  s    r&   r)  zTestSurface.test_viridis_cmap  s    ww((***r1   c                D    t                                                      S rD   )r:  r0  r;  s    r&   r0  z(TestSurface.test_can_change_default_cmap  s    ww33555r1   c                D    t                                                      S rD   )r:  rP  r;  s    r&   rP  z'TestSurface.test_colorbar_default_label  s    ww22444r1   c                D    t                                                      S rD   )r:  rz  r;  s    r&   rz  z5TestSurface.test_facetgrid_map_only_appends_mappables  s    ww@@BBBr1   r  )r   r   r   r  r`  r  r  r  r  r   r   r   r  r  r  rk  r+  r4  r]  r  r.  r  r  r)  r0  rP  rz  __classcell__)r<  s   @r&   r%  r%    s       |DL))H&KO O O O [S S S S= = = == = = =L L L L= = = == = = == = = == = = =3 3 3 3 3 3 [ <==* * * >=*&+ + + + + +6 6 6 6 6 65 5 5 5 5 5C C C C C C C C C Cr1   r%  c                     e Zd Z ej        d          dd            Zej        j        dd            Zej        j        dd            Z	ej        j        dd            Z
ej        j        dd	            Zdd
Zej        j        dd            Zej        j        dd            Zej        j        dd            Zej        j        dd            Zej        j        dd            Zej        j        dd            Zej        j        dd            Zej        j        dd            Zej        j        ej                            d          dd                        Zej        j        dd            Zej        j        dd            Zej        j        dd            Zej        j        dd            Zej        j        dd            Zej        j        dd            Zej        j        dd            ZdS )TestFacetGridTrt   r   r   c                    t          d          }t          |g ddg di          | _        t          j        | j        d          | _        d S )Nr_  r  r   rJ  r   r}  )rj   r   r   r`  ra  rb  r  s     r&   r  zTestFacetGrid.setUp  sN    {##ooo@VWWW555r1   c                    | j                             t          j        dd           t	                      }d|vsJ | j         j        j        D ]}|                                sJ d S )Nr   r   r   )rb  rb  r`  r2  rB   r   r   r   )rw   rM   rL   s      r&   test_no_argszTestFacetGrid.test_no_args!  sp    T]C555 V####&*/ 	! 	!B;;==    	! 	!r1   c                @   d| j         _        | j                            t          j        dd           t          d| j        j        j                  D ]"\  }}d| |	                                k    sJ #t                      }| j         j        |v sJ dD ]}||v sJ 	d S )Nr  r   r   abczz = r   )r   r   rb  rb  r`  r2  r  r   r   r  rB   )rw   r  rL   rM   r  s        r&   test_names_appear_somewherez)TestFacetGrid.test_names_appear_somewhere,  s    $T]C555
00 	0 	0EAr!:://///{6)))) 	# 	#EF?????	# 	#r1   c                z   d dD             | j         j        d<   t          j        | j         d          }|                    t          j        dd           t                      }t          d |D                       }|dk     sJ |j        d	         	                                }|
                    d
          sJ d S )Nc                    g | ]}d |z  S )r   r6   )r:   r  s     r&   rS   z:TestFacetGrid.test_text_not_super_long.<locals>.<listcomp>:  s    "D"D"DF3<"D"D"Dr1   rI  r   r}  r   r   c              3  4   K   | ]}t          |          V  d S rD   )r,   )r:   rN   s     r&   r  z9TestFacetGrid.test_text_not_super_long.<locals>.<genexpr>>  s(      00#SXX000000r1   r  r(  z...)r   r   r`  ra  rb  r  rB   r  r   r  endswith)rw   rb  rM   maxlent0s        r&   test_text_not_super_longz&TestFacetGrid.test_text_not_super_long8  s    "D"De"D"D"D3N4;C000	c3///0000000{{{{U4[""$${{5!!!!!!!r1   c                "   | j         j                                        }| j         j                                        }t	          j        ||f          }| j                            t          j	        dd           t          j                                        t          j        j                  D ]?}t	          j        |                                          }t	          j        ||          sJ @dt%          t'                                k    sJ d S )Nr   r   r]   )r   r   r  r  ra   r   rb  rb  r`  r.  r"   r=   r>   r?   r   r   r  r  r,   rG   rw   rT  rU  r  r   clims         r&   test_colorbarzTestFacetGrid.test_colorbarD  s    {!%%''{!%%''8T4L))T[#s333WYY&&sy':;; 	/ 	/E8ENN,,--D;x......C/1122222222r1   c                    t          ddt          j        d                              dd          fi          }|j                            dddd          }|j        }|J |j        dk    sJ |j        dk    sJ d S )	Nri   r   r   rz   r   )r   r   r  r  r   r   )	r   ra   r   re   r   scatterr  rT  rU  )rw   r(  r  r  s       r&   test_colorbar_scatterz#TestFacetGrid.test_colorbar_scatterR  s    cJ	!(<(<Q(B(BCDEEW__scs_LLwyA~~~~yA~~~~~~r1   c                    t          j        | j        dd          }|                    t           j        dd           |j        d         }|                                rJ |                                rJ d S )Nr   rz   rp  r   r   r  )r`  ra  r   rb  r.  r   r   get_visiblerw   rb  bottomrights      r&   test_empty_cellzTestFacetGrid.test_empty_cellZ  ss    N4;C!<<<	S#...eFm'')))))**,,,,,,,r1   c                    t          j        t          d          5  t          j        | j                   d d d            d S # 1 swxY w Y   d S )Nz[Rr]owr   )r   r   r   r`  ra  r   rv   s    r&   test_norow_nocol_errorz$TestFacetGrid.test_norow_nocol_errorc  s    ]:Y777 	( 	(N4;'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   AA
Ac                    | j                             t          j        dd           | j         j        d         }| j        j        |         }| j                            d          }t          ||           d S )Nr   r   r(  r   r%  )	rb  rb  r`  r.  
name_dictsr   locrK  r   )rw   upperleft_dictupperleft_arrayz0s       r&   test_groupszTestFacetGrid.test_groupsh  si    T[#s333*40+/.9[""_b)))))r1   c                    g d| j         j        d<   t          j        | j         d          }|                    t          j        dd           d S )N)r   r   g?r   r}  r   r   )r   r   r`  ra  rb  r.  rw   rb  s     r&   test_float_indexzTestFacetGrid.test_float_indexq  sI    "1//3N4;C000	S#.....r1   c                    g d| j         j        d<   t          j        t          d          5  t          j        | j         d           d d d            d S # 1 swxY w Y   d S )N)r   r   r   r   z	[Uu]niquer   r}  )r   r   r   r   r   r`  ra  rv   s    r&   test_nonunique_index_errorz(TestFacetGrid.test_nonunique_index_errorw  s    "1//3]:\::: 	1 	1N4;C0000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   AAAc                   t          j        d          }t          |g d          }d|d d d d df<   d|d<   d|d<   t          j        |d	
          }|                    t          j        ddd           t                      }t                      }|D ]5}	 |	                    t          |                     &# t          $ r Y 2w xY wt          d |D                       }|dk     sJ d S )N)r   r   rz   r  rQ  r]   i)rz   r   r     )r   r   r   r   r}  r   r   Trj  c              3  4   K   | ]}t          |          V  d S rD   r  r  s     r&   r  z,TestFacetGrid.test_robust.<locals>.<genexpr>  s(      ..c!ff......r1      )ra   zerosr   r`  ra  rb  r.  r>  rB   addfloatr   r  )rw   r   r   rb  numbersrM   rN   largests           r&   rt  zTestFacetGrid.test_robust}  s   H[!!1???333qqq!!!QwwwN6s+++	S#d;;; %% 	 	CE#JJ''''   ..g.....||||||s   "B;;
CCc                x   d\  }}t          j        ||f          }| j                            t          j        dd||           t          j                                        t          j
        j                  D ]?}t          j        |                                          }t          j        ||          sJ @d S )N)g      I@     @@r   r   r  )ra   r   rb  rb  r`  r.  r"   r=   r>   r?   r   r   r  r  rS  s         r&   test_can_set_vmin_vmaxz$TestFacetGrid.test_can_set_vmin_vmax  s    !
d8T4L))T[#sDIIIWYY&&sy':;; 	/ 	/E8ENN,,--D;x......	/ 	/r1   c                    | j                             t          j        dddd          }|j        D ]}|j        j        |j        j        k    sJ d S )Nr   r   r  r  )rb  rb  r`  r.  rx  rp  rT  rU  )rw   r  r  s      r&   test_vmin_vmax_equalz"TestFacetGrid.test_vmin_vmax_equal  s_     V!!$+sCbr!JJ 	< 	<H=%);;;;;;	< 	<r1   ignorec                   t           j                            d          }| j                            t
          j        dd|           t          j                    	                    t           j
        j                  D ]}|j        |u sJ d S )Nr   r   r   r  )r?   r  
SymLogNormrb  rb  r`  r.  r"   r=   r>   r   r   rp  )rw   rp  r   s      r&   test_can_set_normzTestFacetGrid.test_can_set_norm  s     z$$S))T[#s>>>WYY&&sy':;; 	& 	&E:%%%%%	& 	&r1   c                   t          | j        j                                        d           t	          j        | j        dd          }t          |j                                        d           | j        j                            dd          }t          |j                                        d           t	          j        | j        ddd          }t          |j                                        d	           t	          j        | j        dd
          }t          |j                                        d
           t          j
        t          d          5  t	          j        | j        dddd          }d d d            n# 1 swxY w Y   t          j
        t          d          5  t	          j        | j        ddt          j                    d          }d d d            d S # 1 swxY w Y   d S )Nr   r   r   rI  )r  r  )   rI  r   rn  )r  r  r  )r  r   )r   r   )r  r  r  r   rz   )rI  r   )r  r  r  r  z	Can't use)r  r  rL   r  )r   rb  r   r  r`  ra  r   r   r.  r   r   r   r"   r   rh  s     r&   test_figure_sizezTestFacetGrid.test_figure_size  sJ   46:5577AAAN4;Ca888150022G<<<K##!#44150022G<<<N4;CaDDD150022F;;;N4;C@@@150022F;;;]:-CDDD 	O 	O	$+1#vANNNA	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O ]:\::: 	M 	M	$+1##'))!LLLA	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	Ms$   FF	F	+0G((G,/G,c                   d}|dz   }| j                             t          j        dd           | j                             ||           | j         j        j        D ]j}t          |                                          }t          |	                                          }||k    sJ ||k    sJ ||dz  k    sJ ||dz  k    sJ kd S )Nc   r]   r   r   )
max_xticks
max_yticksg       @)
rb  rb  r`  r.  	set_ticksr   r   r,   
get_xticks
get_yticks)rw   nticksmaxticksrL   xticksytickss         r&   test_num_tickszTestFacetGrid.test_num_ticks  s    A:T[#s333Fv>>>&*/ 	* 	*B))F))FX%%%%X%%%%Vc\))))Vc\)))))	* 	*r1   c                    | j         j        du sJ | j                             t          j        ddd           | j         j        du sJ | j                             d            d S )NFr   r   .Tc                     d S rD   r6   r6   r1   r&   rw  z(TestFacetGrid.test_map.<locals>.<lambda>  s    4 r1   )rb  
_finalizedry  r"   r2  rv   s    r&   test_mapzTestFacetGrid.test_map  sf    v E))))

3<c3///v D((((

<<     r1   c                   t          j        | j                            d          d          }|                    t
          j        ddd           t                      }dD ]}||v sJ 	d|vsJ d|vsJ d	t          t                                k    sJ |
                    d
           d
t                      v sJ dt          t                                k    sJ d S )NrI  r  r   r}  r   r   r   r   r   zcolors!)r  r]   )r`  ra  r   r  ry  r"   r2  rB   r,   rG   rO  rw   rb  rM   r  s       r&   test_map_datasetzTestFacetGrid.test_map_dataset  s    N4;11u1==3GGG	clCe,,, 	# 	#EF?????V#### F""""C/11222222	Y'''KMM))))C/1122222222r1   c                    | j                             t          j        dd          }|                    dd           t                      }dD ]}||v sJ 	d S )Nr   r   	longitudelatitude)r  r  )rb  rb  r`  r2  set_axis_labelsrB   r  s       r&   test_set_axis_labelsz"TestFacetGrid.test_set_axis_labels  sd    F  S99	+z222. 	# 	#EF?????	# 	#r1   c                   t          d          }t          |g dd          }|j                            ddd           d	t	          t                                k    sJ |j                            dddd
           d	t	          t                                k    sJ |j                            dddd           dt	          t                                k    sJ d S )Nr  r  rI  )r   r   r   r   r   r   r   r  r]   T)r   r   r  rO  Fr   )rj   r   r   r.  r,   rG   r  s      r&   test_facetgrid_colorbarz%TestFacetGrid.test_facetgrid_colorbar  s    {##aoooE:::	s,,,C/11222222	s$???C/11222222	s%@@@C/1122222222r1   c                h    | j         j                            dt          d          dd           d S )Nr   polar)r  F)r  r  sharexsharey)r   r   r?  r   rv   s    r&   test_facetgrid_polarz"TestFacetGrid.test_facetgrid_polar	  sE     	##!9!9!9%PU 	$ 	
 	
 	
 	
 	
r1   Nr  )r   r   r   r   r   r  r   r   rG  rJ  rQ  rU  rX  r]  r_  rf  ri  rk  rt  rw  ry  r  r}  r  r  r  r  r  r  r  r6   r1   r&   rD  rD    sm       V^D!!!6 6 6 "!6
 [! ! ! ! [	# 	# 	# 	# [	" 	" 	" 	" [3 3 3 3    [- - - - [( ( ( ( [* * * * [/ / / /
 [1 1 1 1
 [   * [/ / / / [< < < < [[))& & & *) & [M M M M* [* * * * [! ! ! ! [3 3 3 3$ [# # # # [3 3 3 3 [
 
 
 
 
 
r1   rD  r  c                  x    e Zd Z ej        d          d	d            Zd	dZej        j        d	d            Z	dS )
TestFacetGrid4dTrt   r   r   c                0   t          d          }t          |g d          }t          j        d |j        d         j        D                       |j        d<   t          j        d |j        d         j        D                       |j        d<   || _        d S )N)r   r  r   rz   )r   r   r  r  rQ  c                2    g | ]}d t          |          z   S r}  strr  s     r&   rS   z)TestFacetGrid4d.setUp.<locals>.<listcomp>	  "    AAAUSVV^AAAr1   r  c                2    g | ]}d t          |          z   S r  r  r  s     r&   rS   z)TestFacetGrid4d.setUp.<locals>.<listcomp>	  r  r1   r  )rj   r   ra   r   r   r   r   )rw   ri   r   s      r&   r  zTestFacetGrid4d.setUp	  s    ~&&1#;#;#;<<<!xAAV]5%9%@AAA 
  
e  "xAAV]5%9%@AAA 
  
e r1   c                   t          j        | j        dd          }|                    dd           t	          | j        j        d         j        |j        d d df                   D ]\  }}t          dd||          sJ t	          | j        j        d         j        |j        d	d d f                   D ]\  }}t          dd||          sJ d S )
Nr  r  r  r  z{value}bold)templateweightr<  r  r   )	r`  ra  r   
set_titlesr  r   r   r   r\   rw   rb  r  rL   s       r&   test_title_kwargsz!TestFacetGrid4d.test_title_kwargs	  s    N4;Eu===	i777 T[/6=quQQQU|LL 	F 	FIE2(65"EEEEEE T[/6=quQT{KK 	F 	FIE2(65"EEEEEE	F 	Fr1   c                   t          j        | j        dd          }d|j        j        k    sJ |                    t           j        dd           t          | j        j        d         j	        |j        d d df                   D ]\  }}t          ||          sJ t          | j        j        d         j	        |j        dd d f                   D ]\  }}t          ||          sJ |                    d	           t          | j        j        d         j	        |j        d d df                   D ],\  }}t          d
| |          sJ t          d|          sJ -t          | j        j        d         j	        |j        dd d f                   D ],\  }}t          d
| |          sJ t          d|          sJ -d S )Nr  r  r  )rz   r   r   r   r<  r   zabc={value}zabc=zrow=zcol=)r`  ra  r   r   rf   rb  r.  r  r   r   rO   r  rU   r  s       r&   test_default_labelsz#TestFacetGrid4d.test_default_labels$	  s   N4;Eu===$$$$	S#... T[/6=quQQQU|LL 	0 	0IE2$UB////// T[/6=quQT{KK 	0 	0IE2$UB////// 	
]###T[/6=quQQQU|LL 	5 	5IE2$^E^^R88888(444444T[/6=quQT{KK 	5 	5IE2$^E^^R88888(444444	5 	5r1   Nr  )
r   r   r   r   r   r  r  r   r   r  r6   r1   r&   r  r  		  s        V^D!!!
 
 
 "!

F 
F 
F 
F [5 5 5 5 5 5r1   r  c                  L    e Zd Z ej        d          dd            ZddZdS )	TestFacetedLinePlotsLegendTrt   r   r   c                L    t           j                                        | _        d S rD   )r   tutorialscatter_example_datasetr   rv   s    r&   r  z TestFacetedLinePlotsLegend.setUpB	  s    k99;;r1   c                    | j         j        j                            ddd          }d |j        j        D             }t          |          g dk    sJ d S )Nr   r`  r   )r  r  r  c                6    g | ]}|                                 S r6   r7   r9   s     r&   rS   zATestFacetedLinePlotsLegend.test_legend_labels.<locals>.<listcomp>H	  s     FFFaQZZ\\FFFr1   )r   123)r   Ar   r   	figlegendtextssorted)rw   r  all_legend_labelss      r&   test_legend_labelsz-TestFacetedLinePlotsLegend.test_legend_labelsF	  sc    []$$#3$??FF2<3EFFF'((,@,@,@@@@@@@r1   Nr  )r   r   r   r   r   r  r  r6   r1   r&   r  r  @	  s\        V^D!!!< < < "!<A A A A A Ar1   r  c                      e Zd Z ej        d          dd            ZddZddZddZdd	Z	dd
Z
ddZddZddZdS )TestFacetedLinePlotsTrt   r   r   c           	        t          t          j                            dddd          g dt	          d          t	          d          t	          d          g dgd          | _        d	| j        j        _        d
| j        j        j        d<   d| j        j	        j        d<   d| j        j
        j        d<   d| j        j        j        d<   d S )Nr   rI  r   r   )r  r   r  r  )r  BCzC++zCornelius Ortega the 1str   huenamehunitsr   xunitscolunitsrowunits)r   ra   r  r  r  r   r  r   r   r   r  r  rv   s    r&   r  zTestFacetedLinePlots.setUpO	  s    IOOB1a((+++"IIuQxxq3I3I3IJ+	
 
 
  ))1g&'/G$)3g&)3g&&&r1   c                   | j                             ddd          }|j        j        t	          | j         j                  t	          | j         j                  fk    sJ | j                             ddd          }|j        j        t	          | j         j                  t	          | j         j                  fk    sJ d S )Nr  r  r  r  r  r  )r   r   r   rf   r,   r  r  rh  s     r&   test_facetgrid_shapez)TestFacetedLinePlots.test_facetgrid_shape^	  s    KEu==u{s4;?33S5I5IJJJJJKEu==u{s4;?33S5I5IJJJJJJJr1   c                (   | j         j                            dddd          }d |j        j        d                                         D             }|d                                         dk    sJ |d                                         d	k    sJ d S )
Nzo--r  r  r  r  c                P    g | ]#}t          |t          j        j                  !|$S r6   )r   r?   r  r  )r:   qs     r&   rS   z:TestFacetedLinePlots.test_unnamed_args.<locals>.<listcomp>g	  s<     
 
 
z!SYEU7V7V

 
 
r1   r   oz--)r   r   r   r   r   get_children
get_markerget_linestyle)rw   rb  r  s      r&   test_unnamed_argsz&TestFacetedLinePlots.test_unnamed_argse	  s    K!!%U5!II
 
uz!}1133
 
 
 Qx""$$++++Qx%%''4//////r1   c                   | j                             ddd          }t          | j         j        d         j        |j        d d df                   D ]\  }}t          ||          sJ t          | j         j        d         j        |j        dd d f                   D ]$\  }}t          t          |          |          sJ %|j        d d df         D ]}t          | j         j        |          sJ d S )Nr  r  r  r  r<  r   )	r   r   r  r   r   r   rO   r  r   r  s       r&   r  z(TestFacetedLinePlots.test_default_labelsn	  s   KEu==T[/6=quQQQU|LL 	0 	0IE2$UB////// T[/6=quQT{KK 	5 	5IE2$SZZ444444 %1+ 	; 	;B$T[%5r::::::	; 	;r1   c                    | j                             d                              d                              ddd          }|j        d         }|                                rJ |                                rJ d S )	Nr]   r  r  r  r  rz   )r  r  r  r  )r   rK  	drop_varsr   r   r   rZ  r[  s      r&   test_test_empty_cellz)TestFacetedLinePlots.test_test_empty_cell|	  s    K##YuTeT33 	

 eFm'')))))**,,,,,,,r1   c                    | j                             ddd          }|                    dd           t                      }d|v sJ d|v sJ d S )Nr  r  r  r  r  r  )r   r   r  rB   )rw   rb  rM   s      r&   r  z)TestFacetedLinePlots.test_set_axis_labels	  se    KEu==	+z222f$$$$V######r1   c                    t          j        t                    5  | j        j                            dddt          j                               d d d            d S # 1 swxY w Y   d S )Nr  r  r   )r  r  r   rL   )r   r   r   r   r   r   r"   axesrv   s    r&   test_axes_in_faceted_plotz.TestFacetedLinePlots.test_axes_in_faceted_plot	  s    ]:&& 	N 	NK!!e##(**!MMM	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N   5AA #A c                    t          j        t                    5  | j        j                            ddddd           d d d            d S # 1 swxY w Y   d S )Nr  r  r   r   r   r   )r  r  r   r  r  r  rv   s    r&   test_figsize_and_sizez*TestFacetedLinePlots.test_figsize_and_size	  s    ]:&& 	W 	WK!!e#Av!VVV	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W   %AAAc                    t          j        t                    5  | j                            dd           | j        j                            dd           d d d            d S # 1 swxY w Y   d S )Nr  r  )r  r  r  rv   s    r&   test_wrong_num_of_dimensionsz1TestFacetedLinePlots.test_wrong_num_of_dimensions	  s    ]:&& 	8 	8KE222K!!e!777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s   >A%%A),A)Nr  )r   r   r   r   r   r  r  r  r  r  r  r  r  r  r6   r1   r&   r  r  M	  s        V^D!!!4 4 4 "!4K K K K0 0 0 0; ; ; ;- - - -$ $ $ $N N N NW W W W8 8 8 8 8 8r1   r  c                      e Zd Z ej        d          dd            ZddZddZej        	                    dg d	          d
             Z
dS )TestDatasetQuiverPlotsTrt   r   r   c                `   d dD             }t          |d         |d         d          }d|j        j        d<   d|j        j        d<   d	|j        j        d<   d
|j        j        d<   d|j        j        d<   d|j        j        d<   t          j	        |j        |j                  |d<   || _
        d S )Nc           
         g | ]@}t          t          j                            d d dd          g dd dD                       AS )r   r   r   r   r  r  c                ,    g | ]}t          |          S r6   rd  r:   r  s     r&   rS   z;TestDatasetQuiverPlots.setUp.<locals>.<listcomp>.<listcomp>	      777Qa777r1   r   r   r   r   r   r   ra   r  r  r:   rD  s     r&   rS   z0TestDatasetQuiverPlots.setUp.<locals>.<listcomp>	  j     
 
 
  	1a++---77,777  
 
 
r1   r]   rz   r   r]   ur&  r  r   yunitsr  r  uunitsvunitsmagr   r   r   r   r  r  r  r&  ra   hypotr(  rw   dasr(  s      r&   r  zTestDatasetQuiverPlots.setUp	      
 
 
 
 
 3q6A//00&
7&
7 *W *W&
7&
7HRT24((5	r1   c           	        t                      5  | j                            dd          j                            dddd          }t          |t          j        j                  sJ 	 d d d            n# 1 swxY w Y   t          j	        t          d	          5  | j                            dd          j                            ddd
           d d d            n# 1 swxY w Y   t          j	        t          d	          5  | j                            dd          j                            dddddd           d d d            d S # 1 swxY w Y   d S Nr   r  r   r   r  r&  r   r   r  r&  zspecify x, y, u, vr   )r   r   r  	hue_styler  discrete)r   r   r  r&  r  r  )r'   r(  rK  r   quiverr   r?   Quiverr   r   r   r-  s     r&   test_quiverz"TestDatasetQuiverPlots.test_quiver	  s    	6 	6',,1!,,,1883#PS8TTCc3:#4555555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 ]:-BCCC 	H 	HGLLQAL&&+22SC32GGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H ]:\::: 	 	GLLQAL&&+22s 3   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	6   AA66A:=A:8C  C$'C$;EEEc                   t                      5  | j        j                            dddddddd	          }|j        D ]#}t          |t          j        j                  sJ $|j        J d
|j        j	        
                                v sJ 	 d d d            n# 1 swxY w Y   t                      5  | j        j                            ddddddddd	  	        }|j        J 	 d d d            n# 1 swxY w Y   t          j        t          d          5  | j        j                            dddddd           d d d            d S # 1 swxY w Y   d S )Nr   r   r  r&  r  r  r]   r  )r   r   r  r&  r  r  r  r  r  F)	r   r   r  r&  r  r  r  r  	add_guidezPlease provide scaler   )r   r   r  r&  r  r  )r'   r(  r   r  rx  r   r?   r  	quiverkeyr@   r8   r   r   r   rw   r  handles      r&   test_facetgridz%TestDatasetQuiverPlots.test_facetgrid	  sZ    	< 	<$$s5u %  B - = =!&#**;<<<<<<<+++r|099;;;;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<  	( 	($$ % 
 
B <''''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( ]:-DEEE 	R 	RGL#s5QQQ	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	Rs6   A>BB!B32C22C69C6&EEE&add_guide, hue_style, legend, colorbar)NNFTFNFFTNFTT
continuousFTc           	     l    t          | j        ddd||d          }|d         |u sJ |d         |u sJ d S )Nr   r   r  r  r   r   r  r  r  funcnamer  rO  r   r(  rw   r  r  legendrp   	meta_datas         r&   test_add_guidez%TestDatasetQuiverPlots.test_add_guide	  sc     %G
 
 
	 &&0000(H444444r1   Nr  )r   r   r   r   r   r  r  r  r   r  r  r6   r1   r&   r  r  	  s        V^D!!!   "!&
 
 
 
R R R R4 [0	
 	
 	
 5 5 5 5 5r1   r  c                  T    e Zd Z ej        d          d	d            Zd	dZd	dZdS )
TestDatasetStreamplotPlotsTrt   r   r   c                `   d dD             }t          |d         |d         d          }d|j        j        d<   d|j        j        d<   d	|j        j        d<   d
|j        j        d<   d|j        j        d<   d|j        j        d<   t          j	        |j        |j                  |d<   || _
        d S )Nc           
         g | ]@}t          t          j                            d d dd          g dd dD                       AS )r   rz   r  c                ,    g | ]}t          |          S r6   rd  r  s     r&   rS   z?TestDatasetStreamplotPlots.setUp.<locals>.<listcomp>.<listcomp>	  r  r1   )r   r   rz   rz   r   r  r  s     r&   rS   z4TestDatasetStreamplotPlots.setUp.<locals>.<listcomp>	  r  r1   r  r   r]   r  r  r   r  r  r  r  r  r  r  r  s      r&   r  z TestDatasetStreamplotPlots.setUp	  r   r1   c           	        t                      5  | j                            dd          j                            dddd          }t          |t          j        j                  sJ 	 d d d            n# 1 swxY w Y   t          j
        t          d	          5  | j                            dd          j                            ddd
           d d d            n# 1 swxY w Y   t          j
        t          d	          5  | j                            dd          j                            dddddd           d d d            d S # 1 swxY w Y   d S r  )r'   r(  rK  r   
streamplotr   r?   rE   LineCollectionr   r   r   r-  s     r&   test_streamlinez*TestDatasetStreamplotPlots.test_streamline
  s,    	C 	C',,1!,,,1<<scSTW<XXCc3?#ABBBBBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C ]:-BCCC 	L 	LGLLQAL&&+66s6KKK	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L ]:\::: 	 	GLLQAL&&+66s 7   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r	  c                   t                      5  | j        j                            ddddddd          }|j        D ]#}t          |t          j        j                  sJ $	 d d d            n# 1 swxY w Y   t                      5  | j        j                            dddddddd	
          }d d d            d S # 1 swxY w Y   d S )Nr   r   r  r&  r  r  r  )r   r   r  r&  r  r  r  F)r   r   r  r&  r  r  r  r  )	r'   r(  r   r$  rx  r   r?   rE   r%  r  s      r&   r  z)TestDatasetStreamplotPlots.test_facetgrid
  s    	J 	J((s5e )  B - J J!&#/*HIIIIIIJ		J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J  
	 
	(( ) 	 	B
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	s$   AA..A25A2(B<<C C Nr  )r   r   r   r   r   r  r&  r  r6   r1   r&   r  r  	  sj        V^D!!!   "!&
 
 
 
     r1   r  c                     e Zd Z ej        d          d7d            Zd7dZej                            dg d          d8d            Z	d7dZ
d7dZd7dZd7dZej                            d ej        ddddded           ej        ddddded          g          d9d&            Zej                            d'(          ej                            dd)d*g          d:d,                        Zej                            dd)d*g          d:d-            Zej                            g d.d/d0g          d;d2            Zd7d3Zd7d4Zd7d5Zd7d6ZdS )<TestDatasetScatterPlotsTrt   r   r   c                4   d dD             }t          |d         |d         d          }d|j        _        d|j        j        d<   d	|j        j        d<   d
|j        j        d<   d|j        j        d<   d|j        j        d<   d|j        j        d<   || _	        d S )Nc           
         g | ]@}t          t          j                            d d dd          g dd dD                       AS )r   r   )r   r  r  r  c                ,    g | ]}t          |          S r6   rd  r  s     r&   rS   z<TestDatasetScatterPlots.setUp.<locals>.<listcomp>.<listcomp>.
  r  r1   r  r   r  r  s     r&   rS   z1TestDatasetScatterPlots.setUp.<locals>.<listcomp>*
  sj     
 
 
  	1a++///77,777  
 
 
r1   r  r   r]   )r  r  r  r  r   r  r  r  AunitsBunits)
r   r  r   r   r   r  r  r  r  r(  r  s      r&   r  zTestDatasetScatterPlots.setUp(
  s    
 
 
 
 
 3q6A//00 (W&
7 *W *W&
7&
7r1   c                j    ddl m} t          j        |u sJ t	          | j        j        |          sJ d S )Nr   )DatasetPlotAccessor)r   r0  r   r   r   r(  )rw   r0  s     r&   r   z%TestDatasetScatterPlots.test_accessor<
  sI    <<<<<<|22222$',(;<<<<<<<r1   r  )r  r  r  r  )Fr  FF)Tr  TFr  bool | Noner  'Literal['continuous', 'discrete', None]r  r   rp   c           	     l    t          | j        ddd||d          }|d         |u sJ |d         |u sJ d S )Nr  r  r  rW  r  r  rO  r  r  s         r&   r  z&TestDatasetScatterPlots.test_add_guideB
  sc    $ %G
 
 
	 &&0000(H444444r1   c                   | j         j                            dddd          }|j        j        t          | j         j                  t          | j         j                  fk    sJ | j         j                            dddd          }|j        j        t          | j         j                  t          | j         j                  fk    sJ d S )Nr  r  r  r  r  )r(  r   rW  r   rf   r,   r  r  rh  s     r&   r  z,TestDatasetScatterPlots.test_facetgrid_shape`
  s    GL  3#5e DDu{s47;//TW[1A1ABBBBBGL  3#5e DDu{s47;//TW[1A1ABBBBBBBr1   c                   | j         j                            ddddd          }t          | j         j        d         j        |j        dd d f                   D ]$\  }}t          t          |          |          sJ %|j        dd d f         D ]}|	                                d	k    sJ |j        d d df         D ]}|
                                d
k    sJ d S )Nr  r  r  r  r  )r   r   r  r  r  r   r<  z
A [Aunits]z
B [Bunits])r(  r   rW  r  r   r   r   rO   r  ro   rn   r  s       r&   r  z+TestDatasetScatterPlots.test_default_labelsg
  s    GL  3#5e OO TW^E2915AAA;GG 	5 	5IE2$SZZ444444 %AAA, 	3 	3B==??l22222 %1+ 	3 	3B==??l22222	3 	3r1   c                    t          j        t                    5  | j        j                            dddt          j                               d d d            d S # 1 swxY w Y   d S )Nr  r  r  )r   r   r  rL   )r   r   r   r(  r   rW  r"   r  rv   s    r&   r  z1TestDatasetScatterPlots.test_axes_in_faceted_plotv
  s    ]:&& 	I 	IGL  3#5SXZZ HHH	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	Ir  c                    t          j        t                    5  | j        j                            ddddd           d d d            d S # 1 swxY w Y   d S )Nr  r  r  r   r  )r   r   r  r  r  )r   r   r   r(  r   rW  rv   s    r&   r  z-TestDatasetScatterPlots.test_figsize_and_sizez
  s    ]:&& 	R 	RGL  3#5q& QQQ	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	Rr  z/x, y, hue, add_legend, add_colorbar, error_typer  zThe Spanish InquisitionNbad_yidr  bad_xr   r   r   r  Hashable | Noner  rO  
error_typetype[Exception]c                    t          j        |          5  | j        j                            |||||           d d d            d S # 1 swxY w Y   d S )N)r   r   r  r  rO  )r   r   r(  r   rW  )rw   r   r   r  r  rO  r=  s          r&   test_bad_argsz%TestDatasetScatterPlots.test_bad_args~
  s    ( ]:&& 	 	GL  qcj| !   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   %AAAz.datetime,timedelta hue variable not supported.r2   r  r  !Literal['discrete', 'continuous']c                   | j                                         }t          j        dd          |d<   |j                            ddd|           t          j        ddd	
          |d<   |j                            ddd|           d S )Nz2000-1-1r   rr  r  r  r  )r   r   r  r  z-1DD)rs  freq)r(  r   rw  rx  r   rW  timedelta_range)rw   r  ds2s      r&   test_datetime_huez)TestDatasetScatterPlots.test_datetime_hue
  s     gllnn]:q999E
3#5IFFF'qsCCCE
3#5IFFFFFr1   c                    | j         j                            ddddd|          }t          |j        d         t
          j        j                  sJ d S )Nr  r  r  r  r  )r   r   r  r  r  r  r<  )r(  r   rW  r   rx  r?   rE   r   )rw   r  rb  s      r&   test_facetgrid_hue_stylez0TestDatasetScatterPlots.test_facetgrid_hue_style
  sY     GL  SeEY ! 
 
 !,r*CO,JKKKKKKKr1   r   r   r  
markersize)r  r  r   r  )r   r  r  r  rK  c                    | j         j                            ||||           t          j        t
          d          5  | j         j                            ||dd           d d d            d S # 1 swxY w Y   d S )NrJ  zu, vr   r  r  r  )r(  r   rW  r   r   r   )rw   r   r   r  rK  s        r&   test_scatterz$TestDatasetScatterPlots.test_scatter
  s     	qA3:FFF]:W555 	= 	=GL  1Ue <<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   $A00A47A4c                    | j                                         }g d|d<   |j                            ddd          }|j        j        J d S )N)ri   r   rK  r  r  r  r  r   r   rK  )r(  r   r   rW  r  legend_)rw   rF  pcs      r&   test_non_numeric_legendz/TestDatasetScatterPlots.test_non_numeric_legend
  sR    gllnn)))E
Xsu==w*****r1   c                    | j                                         }g d|d<   |j                            ddd          }d |j                                        j        D             }g d}||k    sJ d S )N)ri   ri   r   r   r  r  r  rO  c                6    g | ]}|                                 S r6   r7   r9   s     r&   rS   z>TestDatasetScatterPlots.test_legend_labels.<locals>.<listcomp>
  s     CCC1!**,,CCCr1   )r  ri   r   )r(  r   r   rW  r  r  r  )rw   rF  rQ  r  r  s        r&   r  z*TestDatasetScatterPlots.test_legend_labels
  s    gllnn)))E
Xsu==CC(:(:(<(<(BCCC$$$!!!!!!r1   c                    | j                                         }g d|d<   |j                            ddddd          }|j        }|J t          d |j        D                       }d	}||k    sJ d S )
N)r  ri   rK  r   r  r  r  r   r  )r   r   r  rK  r  c              3  >   K   | ]}|                                 V  d S rD   r7   r9   s     r&   r  zGTestDatasetScatterPlots.test_legend_labels_facetgrid.<locals>.<genexpr>
  s*      ::qzz||::::::r1   )z
x [xunits]z$\mathdefault{0}$z$\mathdefault{1}$z$\mathdefault{2}$)r(  r   r   rW  r  r  r  )rw   rF  rb  r  r  r  s         r&   test_legend_labels_facetgridz4TestDatasetScatterPlots.test_legend_labels_facetgrid
  s    gllnn)))E
Hscu%PP!!!::V\:::::
 !!!!!!r1   c                    | j         j                            ddd          }t          |j        j                  dk    sJ d S )Nr  r  r  r  rz   )r(  r   rW  r,   r  r  )rw   scs     r&   test_add_legend_by_defaultz2TestDatasetScatterPlots.test_add_legend_by_default
  sC    W\!!C3E!::29>""a''''''r1   r  )
r  r1  r  r2  r  r   rp   r   r   r   )r   r   r   r   r  r<  r  r1  rO  r1  r=  r>  )r  rA  r   r   )
r   r   r   r   r  r   rK  r   r   r   )r   r   r   r   r   r  r   r   r  r  r  r  r  r  rl  KeyErrorr   r@  xfailrG  rI  rM  rR  r  rW  rZ  r6   r1   r&   r)  r)  &
  s       V^D!!!   "!&= = = = [0	
 	
 	

 
5 5 5
 
5&C C C C3 3 3 3I I I IR R R R [9FL.dD(w   FL)3dD*QX  		

 
  
 
 [NOO[[:|*DEEG G G FE POG [[:|*DEEL L L FEL ['''	!78 = = =	 =+ + + +" " " "" " " "( ( ( ( ( (r1   r)  c                      e Zd Z ej        d          dd            ZddZddZddZej	        
                    d	          dd
            ZdS )TestDatetimePlotTrt   r   r   c                    t          j        ddd          }t          j        dt           j        z  |z  dz            }t	          |dg          }t          j        d |D                       |j        d<   || _        dS )	zU
        Create a DataArray with a time-axis that contains datetime objects.
        r]   r  rz         (@r   rQ  c                0    g | ]}t          d |d          S )i  r]   r   r  s     r&   rS   z*TestDatetimePlot.setUp.<locals>.<listcomp>
  s$    )N)N)N1(4A*>*>)N)N)Nr1   N)ra   r   sinpir   r   r   r   rw   monthr   r   s       r&   r  zTestDatetimePlot.setUp
  sz    
 	!R##va"%i%'$.//4vh/// ")N)N)N)N)N O Ofr1   c                B    | j         j                                         d S rD   r  rv   s    r&   test_datetime_line_plotz(TestDatetimePlot.test_datetime_line_plot
  s    r1   c                    t          j                    \  }}|                    | j        d         | j                   t	          |j                                                  t          j        j	        u sJ d S )Nr   )
r"   r~   r   r   r  xaxisget_major_locatorr?   datesAutoDateLocator)rw   r   rL   s      r&   test_datetime_unitsz$TestDatetimePlot.test_datetime_units
  sb    ,..R
F#T[111 BH..0011SY5NNNNNNNr1   c                    | j         j                                        }|d         j        }t	          |j                                                  t          j        j	        u sJ d S r   )
r   r   r   r  r  ri  rj  r?   rk  rl  )rw   rC  rL   s      r&   test_datetime_plot1dz%TestDatetimePlot.test_datetime_plot1d
  sW    K!!##qTY BH..0011SY5NNNNNNNr1   z ignore:Converting non-nanosecondc           
     b   t          t          j        d                              dd          dg dd t	          dd          D             d	          }|j                                        }|j        }t          |j	        
                                          t          j        j        u sJ d S )
Nrt  r   r   r   rH  c                >    g | ]}t          j        d |d          S )z2000-01-02d)ra   
datetime64r  s     r&   rS   z9TestDatetimePlot.test_datetime_plot2d.<locals>.<listcomp>  s.    MMMAbm$6q$6$6$677MMMr1   r]   r   r   )r   ra   r   re   r  r   r?  r  r  ri  rj  r?   rk  rl  )rw   r   rC  rL   s       r&   test_datetime_plot2dz%TestDatetimePlot.test_datetime_plot2d
  s     Ie$$Q**YYMMq!MMM 
 
 
 G  V BH..0011SY5NNNNNNNr1   Nr  )r   r   r   r   r   r  rg  rm  ro  r   r  rt  r6   r1   r&   r^  r^  
  s        V^D!!!
 
 
 "!
       O O O OO O O O [ BCCO O O DCO O Or1   r^  z/ignore:setting an array element with a sequenceznc_time_axis is not installedc                  \    e Zd Z ej        d          d
d            Zd
dZd
dZd
dZd	S )TestCFDatetimePlotTrt   r   r   c                    t           j                            dd          }t          j        dddd          }t          |ddg	          }||j        d<   || _        d
S )d
        Create a DataArray with a time-axis that contains cftime.datetime
        objects.
        r   rt  20171Mnoleaprg   rs  rD  calendarr   r   rQ  N)ra   r  randr   cftime_ranger   r   r   )rw   r   r   r   s       r&   r  zTestCFDatetimePlot.setUp  s^     y~~a$$VRdXVVV4sFm444 $fr1   c                j    | j                             d          j                                         d S )Nr   r   )r   rK  r   r   rv   s    r&   test_cfdatetime_line_plotz,TestCFDatetimePlot.test_cfdatetime_line_plot$  s0    1"'')))))r1   c                B    | j         j                                         d S rD   )r   r   r?  rv   s    r&   test_cfdatetime_pcolormesh_plotz2TestCFDatetimePlot.test_cfdatetime_pcolormesh_plot'  s    ##%%%%%r1   c                B    | j         j                                         d S rD   )r   r   r  rv   s    r&   test_cfdatetime_contour_plotz/TestCFDatetimePlot.test_cfdatetime_contour_plot*  s      """""r1   Nr  )	r   r   r   r   r   r  r  r  r  r6   r1   r&   rv  rv    s         V^D!!!   "!* * * *& & & &# # # # # #r1   rv  znc_time_axis is installedc                  L    e Zd Z ej        d          dd            ZddZdS )	TestNcAxisNotInstalledTrt   r   r   c                    t          j        ddd          }t          j        dt           j        z  |z  dz            }t	          |dg          }t          j        ddd	d
          |j        d<   || _        dS )rx  r]   r  rz   r`  r   rQ  ry  rt  rz  r{  r|  N)	ra   r   rb  rc  r   r   r  r   r   rd  s       r&   r  zTestNcAxisNotInstalled.setUp1  s}     	!R##va"%i%'$.//4vh/// ""4(!
 !
 !
f r1   c                    t          j        t          d          5  | j        j                                         d d d            d S # 1 swxY w Y   d S )Nzoptional `nc-time-axis`r   )r   r   ImportErrorr   r   r   rv   s    r&   "test_ncaxis_notinstalled_line_plotz9TestNcAxisNotInstalled.test_ncaxis_notinstalled_line_plot@  s    ];.HIII 	$ 	$K!!###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   AAANr  )r   r   r   r   r   r  r  r6   r1   r&   r  r  .  sX         V^D!!!   "!$ $ $ $ $ $r1   r  c                     e Zd Z ej        g d          d             Z ej        ddg          d             Zej                            ddd	g          dd            Z	ej                            ddd	g          dd            Z
ej                            dg d          dd            Zej                            dg d          dd            ZddZddZddZddZddZddZdS )TestAxesKwargsrH  )paramsc                    |j         }|dk    rt          t          d                    S |dk    rt          t          d                    S |dk    rt          t          d                    S dS )z+
        Return a simple DataArray
        r]   )r   rz   r  r   )r   r   rz   N)rl  r   rj   rw   requestr   s      r&   
data_arrayzTestAxesKwargs.data_arrayG  so    
 }199Z..///199Z00111199Z
33444 9r1   r]   rz   c           
     f   |j         }|dk    r:t          t          j        d          ddt          j        ddd          i          S |dk    rct          t          j        d	                              d
d
          dt          j        ddd
          t          j        ddd
          d          S dS )zF
        Return a simple DataArray with logspaced coordinates
        r]   r  r   r   r  r   r   rz      r   r  r<  r  r   N)rl  r   ra   r   r  re   r  s      r&   data_array_logspacedz#TestAxesKwargs.data_array_logspacedT  s    
 }199	!63B18M8M2N    199	"%%a++[Q22RQ9O9OPP    9r1   r  TFr   r   c                    t                      5  |                    |           t          j                                                    | k    sJ 	 d d d            d S # 1 swxY w Y   d S )N)r  )r'   r   r"   r   xaxis_inverted)rw   r  r  s      r&   test_xincrease_kwargz#TestAxesKwargs.test_xincrease_kwarge       	A 	AOOiO000799++--i-@@@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A   AA  A$'A$r  c                    t                      5  |                    |           t          j                                                    | k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr  )r'   r   r"   r   yaxis_inverted)rw   r  r  s      r&   test_yincrease_kwargz#TestAxesKwargs.test_yincrease_kwargk  r  r  r  )linearlogitsymlogc                    t                      5  |                    |           t          j                                                    |k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr  r'   r   r"   r   
get_xscale)rw   r  r  s      r&   test_xscale_kwargz TestAxesKwargs.test_xscale_kwargq       	4 	4OO6O***799''))V33333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4   AAA#&A#r  c                    t                      5  |                    |           t          j                                                    |k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr  r'   r   r"   r   
get_yscale)rw   r  r  s      r&   test_yscale_kwargz TestAxesKwargs.test_yscale_kwargw  r  r  c                    d}t                      5  |                    |           t          j                                                    |k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr  r  r  )rw   r  r  s      r&   test_xscale_log_kwargz$TestAxesKwargs.test_xscale_log_kwarg}       	4 	4 %%V%444799''))V33333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4   AA!!A%(A%c                    d}t                      5  |                    |           t          j                                                    |k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr  r  r  )rw   r  r  s      r&   test_yscale_log_kwargz$TestAxesKwargs.test_yscale_log_kwarg  r  r  c                    t                      5  d}|                    ddg           t          j                                                    |k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr  rv  r   rm  )r  )r'   r   r"   r   r  rw   r  r  s      r&   test_xlim_kwargzTestAxesKwargs.test_xlim_kwarg  s     	4 	4$HOO!TO+++799%%''833333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4   AA##A'*A'c                    t                      5  |                    ddg           d}t          j                                                    |k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   rm  )r  r  )r'   r   r"   r   r  r  s      r&   test_ylim_kwargzTestAxesKwargs.test_ylim_kwarg  s     	4 	4OO!TO+++$H799%%''833333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4r  c                V   t                      5  |                    t          j        d                     t          j        d                                          }t          t          j                                                    |           d d d            d S # 1 swxY w Y   d S )Nr   )r  )	r'   r   ra   r   tolistr   r"   r   r  r  s      r&   test_xticks_kwargz TestAxesKwargs.test_xticks_kwarg  s     	A 	AOO29Q<<O000y||**,,Hswyy3355x@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As   BBB"%B"c                2   t                      5  |                    t          j        d                     t          j        d          }t	          t          j                                                    |           d d d            d S # 1 swxY w Y   d S )Nr   )r  )r'   r   ra   r   r   r"   r   r  r  s      r&   test_yticks_kwargz TestAxesKwargs.test_yticks_kwarg  s     	A 	AOO29Q<<O000y||Hswyy3355x@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As   A0BBBNr  )r   r   r   r   r   r  r  r   r  r  r  r  r  r  r  r  r  r  r  r6   r1   r&   r  r  E  s       V^999%%%
5 
5 &%
5 V^Aq6"""  #"  [[4-88A A A 98A
 [[4-88A A A 98A
 [X'D'D'DEE4 4 4 FE4
 [X'D'D'DEE4 4 4 FE4
4 4 4 44 4 4 44 4 4 44 4 4 4A A A AA A A A A Ar1   r  r  )r?  r2  r  r   r   c           	        t          j        ddd          }t          j        ddd          }t          j        ddd          }|d d t           j        f         |t           j        d d f         z  }t          j        t          j        |          t          j        |          z  dd	g||d
|fd|j        fd          }t                      5   t          |j
        |           d	d           d d d            n# 1 swxY w Y   t                      5   t          |j
        |           dd	           d d d            d S # 1 swxY w Y   d S )Nr   r   e   r   r  r]   3   r  r   )r  r   )r   r  )r   r  r   ztr   r  r   )ra   rb   newaxisr   r   rb  r   rL  r'   r  r   )r  r   r   r  r   r   s         r&   !test_plot_transposed_nondim_coordr    s    	Ar3A
Aq#A
Aq"A	!!!RZ-1RZ]++A	
q		BF1II3ZQj!_Z<MNN
 
 
B
 
		 2 2"""SD11112 2 2 2 2 2 2 2 2 2 2 2 2 2 2			 2 2"""TS11112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s$   !C99C= C=!E  EEr?  r.  c                   t          j        t          j        dt          j        z  dz  t          j        d          z            gdz  d          }t                      5   t          |j        |           dd          }t          |
                                                                |                                                                           d d d            d S # 1 swxY w Y   d S )Nrz   r   r  rQ  r   r   r   )r   r   ra   rb  rc  r   r'   r  r   r   r  ravelto_masked_array)r  r   r!  s      r&   test_plot_transposes_properlyr    s#    
rva"%i"nry}}<==>C*	U	U	UB			 R R(gbgx((3#666 	3==??0022B4F4F4H4H4N4N4P4PQQQR R R R R R R R R R R R R R R R R Rs    A9C&&C*-C*c                 
   t          j        t          j        d          t          j        d                    \  } }t          j        t          j        | dz  |dz  z                       }t          j        t          j        | dz  |dz  z             dz             }t          j        ||gd          }ddg|d<   t                      5  |j        	                    ddgdg	           d d d            d S # 1 swxY w Y   d S )
Nrt  rz   r]   r   )r  r   r   r  )r  ro  r  )
ra   r   r   r   r   r  concatr'   r   r  )r   r   r   z2r(  s        r&   test_facetgrid_single_contourr    s+    ;ry}}bimm44DAq
RWQTAqD[))**A	bgadQTk**Q.	/	/B	Ar7	'	'	'BQBvJ			 > >
FA3u===> > > > > > > > > > > > > > > > > >s    C88C<?C<c                    t          j        t          d          5  t          ddgd d d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          d ddd           d d d            n# 1 swxY w Y   t          j        t          d	          5  t          ddgdd d            d d d            n# 1 swxY w Y   t          j        t          d
          5  t          d d dd            d d d            n# 1 swxY w Y   t          j        t          d          5  t          d d d dd           d d d            d S # 1 swxY w Y   d S )Nzboth `figsize` and `ax`r   r   	somethingr  r  r  rL   zboth `size` and `ax`r   gUUUUUU?zboth `figsize` and `size`z `aspect` argument without `size`z'cannot use subplot_kws with existing axr]   r   )r  r  r  rL   something_else)r   r   r   r   r6   r1   r&   test_get_axis_raisesr    s   
 
z)B	C	C	C I I!Qd4KHHHHI I I I I I I I I I I I I I I 
z)?	@	@	@ G GC+FFFFG G G G G G G G G G G G G G G 
z)D	E	E	E A A!Qc$4@@@@A A A A A A A A A A A A A A A 
z)K	L	L	L A AD4@@@@A A A A A A A A A A A A A A A 
z)R	S	S	S O OD!ANNNNO O O O O O O O O O O O O O O O O OsW   >AA$BBB*CCC2DDD8EE!E)r  r  r  rL   r%   r  Fr  r9  )r  g      @r  testfigsize_kwargsr   r  g      @size_kwargszsize+aspectr  auto_aspectr  equal_aspectrL   defaultdefault_kwargstuple[float, float] | Noner  r  r   r%   dict[str, Any]c           	         t                      5  |rt          j                    nd }t          d| |||d|}t	          |t
          j        j                  sJ 	 d d d            d S # 1 swxY w Y   d S )Nr  r6   )r'   r"   r  r   r   r?   Axes)r  r  r  rL   r%   inp_axout_axs          r&   test_get_axisr    s    2 
		 1 1!+t 
$v&
 
DJ
 
 &#(-0000001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   A
A''A+.A+r  r  r  c                   dt           j                                        i}t                      5  t	          d| ||d|}t          |t           j        j        j                  sJ 	 d d d            d S # 1 swxY w Y   d S )Nr  r  r6   )	cartopycrsPlateCarreer'   r   r   r?   geoaxesGeoAxesSubplot)r  r  r  r%   r  s        r&   test_get_axis_cartopyr    s     GK33556F			 F FN'VNNvNN&'+"5"DEEEEEEF F F F F F F F F F F F F F F F F Fs   7A44A8;A8c                     t                      5  t          j                    \  } }t                      }||u sJ 	 d d d            d S # 1 swxY w Y   d S rD   )r'   r"   r~   r   )rD  rL   r  s      r&   test_get_axis_currentr    s    			  2V|||||                 s   +AAAc                    t                      5  t          d          } t          | t          j        j                  sJ |                                 dk    sJ 	 d d d            n# 1 swxY w Y   t                      5  t          j                     t          d          } t          | t          j        j                  sJ |                                 dk    sJ 	 d d d            n# 1 swxY w Y   t                      5  t          j                    }t          d          } || k    sJ |                                 dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr]   r  r  )	r'   r   r   r?   r  r  r  r"   r  )rL   existing_axess     r&   test_maybe_gcar  $  s   			 $ $q!!!"chm,,,,,}}!#####	$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 
		 $ $
q!!!"chm,,,,,}}!#####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 
		 ) )

q!!! """"}}&((((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s8   AA((A,/A,AC--C14C1AEE!Ez<x, y, z, hue, markersize, row, col, add_legend, add_colorbar))	r  r  NNNNNNN)	r  r  Nr`  NNNTN)	r  r  Nr   r   NNTT)	r  r  r   NNNNNN)	r  r  r   r`  NNNTN)	r  r  r   r   r   NNTT)	r  r  r   r   r   r`  NTTc	           	        t           j                                        d | ||fD             }	t          j                  }
|
                    fd|	D                        t          j        |         |
          }t                      5  |j        	                    | |||||           ddd           dS # 1 swxY w Y   dS )z8Test datarray scatter. Merge with TestPlot1D eventually.c                    g | ]}||S rD   r6   )r:   r&  s     r&   rS   z)test_datarray_scatter.<locals>.<listcomp>Q  s    EEE!q}A}}}r1   c                "    i | ]}||         S r6   r6   )r:   r&  r(  s     r&   
<dictcomp>z)test_datarray_scatter.<locals>.<dictcomp>W  s    2221be222r1   r$  )r   r   r  rK  r  rO  N)
r   r  r  r   r   updater   r'   r   rW  )r   r   r   r  rK  r  r  r  rO  extra_coordsr   r   r(  s               @r&   test_datarray_scatterr  >  s#   " 
	,	,	.	.BEE3
3EEEL ")__F MM2222\222333\"Q%///F			 
 
!!% 	 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   !B<<C C c                 $   t           j                                        } | j        }t	          |dd           t	          |d d           t          j        t          d          5  t	          |dd           d d d            d S # 1 swxY w Y   d S )Nr   )r   r   r   zx must be one ofr   	error_now)r   r  r  r  r   r   r   r   )r(  r   s     r&   test_assert_valid_xyr  f  s    		,	,	.	.BTF Fs5555 Ft#6666 
z);	<	<	< B B;SAAAAB B B B B B B B B B B B B B B B B Bs   %BB	B	valemptyscalarmethod)
__call__r   r+  r  r2  rS  r.  r?  rW  r  list | floatr  c                    t          j        |           }t          j        t          d          5   t          |j        |                       d d d            d S # 1 swxY w Y   d S )NzNo numeric datar   )r   r   r   r   r   r  r   )r  r  r   s      r&   test_plot_empty_raisesr  v  s    ( 
c		B	y(9	:	:	: # #   """# # # # # # # # # # # # # # # # # #s   AA"Ac                 >   t          j        t          d          5  t                      5  t          j                                        } | j                            ddd          }|j	         d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nzlself.axes is deprecated since 2022.11 in order to align with matplotlibs plt.subplots, use self.axs instead.r   r  r  r   r  )
r   r  DeprecationWarningr'   r   r  r  r   rW  r  )r(  rb  s     r&   .test_facetgrid_axes_raises_deprecation_warningr    s   	>
 
 
 
 
  	 	4466B##66AFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s5   BAA:.B:A>	>BA>	BBBc                    dd l } t          j                            d          }t	                      5  t          j        dd          \  }}|j                            ddd|           t          j
                            |j        d                                         | j                            d	                     |j                            ddd
d          }|j                                        d         }t          j
                            |j        d                                         | j                            d	                     t%                      5  t          j        dd          \  }}|j                            dd|d
           d d d            n# 1 swxY w Y   t          j        dd          \  }}|j                            ddd|d           t          j
                            |j        d                                         | j                            d                     d d d            d S # 1 swxY w Y   d S )Nr   *   )seedr]   r  r  r  )r   r   markerrL   r`  r   )r   r   r  r  )r   r   rL   r  r  )r   r   r  rL   	edgecolor)
matplotlibr   r  r  r'   r"   r~   r   rW  ra   rz  r{  rE   get_edgecolorr  to_rgba_arrayr   r  r   )r?   r(  r   rL   r  s        r&   test_plot1d_default_rcparamsr
    s   		,	,"	,	5	5B			 
 
 ,q!$$R
#SR888

""N1++--sz/G/G/L/L	
 	
 	

 W__scs3_??V\\^^A

""N1++--sz/G/G/L/L	
 	
 	

  !! 	= 	=l1a((GCGOOcSRO<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=
 ,q!$$R
#SR3GGG

""N1++--sz/G/G/L/L	
 	
 	
1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s7   D,I7F"I"F&	&I)F&	*BII
I
)r   r]   r  )r  r  r  r  r  r  rL   r   r%   r  r   r   )r  r  r  r  r  r  r   r   )r  r  r  r  r   r   )q
__future__r   
contextlibre  rc   collections.abcr   r   r   typingr   r	   r
   numpyra   pandasrw  r   xarrayr   xarray.plotr   r`  r   r   xarray.core.utilsr   xarray.plot.dataarray_plotr   xarray.plot.dataset_plotr   xarray.plot.utilsr   r   r   r   r   r   r   xarray.testsr   r   r   r   r   r   r   has_nc_time_axisr  r?   matplotlib.pyplotpyplotr"   r(  r  r  contextmanagerr'   r   r0   r   flakyr  rB   rG   rO   rU   r\   rj   rq   rs   r   r  r%  rP  rg  r  r  r   r  r  r  r  r  r%  rD  r  r  r  r  r  r  r)  r^  skipifrv  r  r  r  r  r  r  r  rl  r  r  r  r  r  r  r  r  r
  r6   r1   r&   <module>r     s!   " " " " " "       $ $ $ $ $ $             ) ) ) ) ) ) ) ) ) )                    % % % % % % % % . . . . . . = = = = = = 5 5 5 5 5 5                                   $#N33 	###### 	 	 	D		NNNN 	 	 	D	    j$///
 
 0/
" ''D D (' D7 7 7
    
 
 
   ( ( (        0_" _" _" _" _"| _" _" _"DK$ K$ K$ K$ K$ K$ K$ K$\9 9 9 9 9< 9 9 9x)
 )
 )
 )
 )
 )
 )
 )
X M/ M/ M/ M/ M/ M/ M/ M/` dJ dJ dJ dJ dJ dJ dJ dJNA0 A0 A0 A0 A0 A0 A0 A0H -* -* -* -* -*=, -* -* -*` 6" 6" 6" 6" 6"- 6" 6" 6"r; ; ; ; ;]L ; ; ;<+T +T +T +T +T\ +T +T +T\ H% H% H% H% H% H% H% H%VQC QC QC QC QC- QC QC QChl
 l
 l
 l
 l
L l
 l
 l
^ 89935 35 35 35 35l 35 35 :935l 899	A 	A 	A 	A 	A 	A 	A :9	A 899K8 K8 K8 K8 K8< K8 K8 :9K8\ O5 O5 O5 O5 O5\ O5 O5 O5d 3 3 3 3 3 3 3 3l p( p( p( p( p(l p( p( p(f5O 5O 5O 5O 5O| 5O 5O 5Op MNN((1PQQ# # # # # # # RQ  ON#2 $-HII$ $ $ $ $\ $ $ JI $* YA YA YA YA YA YA YA YAx %J%J%JKK2 2 2 LK 2  lH%=>>R R R ?> R 	> 	> 	> 	> O O O0 111VT4yAAAdEGV+<AQ	
 	
 	
 	T1dE2&999T3egv->=QQQT1a}===T1feRMBBBT1gub^DDDT4tRD999T4ubY???T4uw.?DTUUU "1 1 1#  $1 !!!VT4I666T1dv...T1aM222T4)444	 F F F   F     ) ) ) )2 B   
 
 
  
6 B B B B 	LFL(((,&,qX*F*F*FG     # # #   &#     
 
 
 
 
 
s$   B B&%B&*B/ /B76B7