
    rbi.                       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
mZmZmZmZmZmZmZ d dlmZ d dlmZmZmZ d dlmZ d dlZ ej        d          Ze                    d           d dlm Z! 	 d dl"m#Z#m$Z$ d	Z%n# e&$ r d
Z%Y nw xY w ej'        d	          d             Z(	 ej)        d         *                                Z+e+d         d          Z,n# e-$ r ej)        d         d          Z,Y nw xY we!j)        .                    dd i            G d d          Z/ G d d          Z0 G d d          Z1 G d d          Z2 G d d          Z3 G d d          Z4 G d d          Z5 G d d           Z6 ej'        d!"          d#             Z7ej8        9                    d$          ej8        :                    ej;         d%&           G d' d(                                  Z<ej8        =                    d)           G d* d+                      Z> G d, d-          Z? G d. d/          Z@d0 ZAd1 ZBd7d2ZCd3 ZDd4 ZEd5 ZFd6 ZGdS )8    N)rotate)	GeometryCollection
LinearRing
LineStringMultiLineString
MultiPointMultiPolygonPointPolygonbox)GeoDataFrame	GeoSeries	read_file)GeoplotAccessor
matplotlibAgg)check_figures_equalimage_comparisonTF)autousec              #   :   K   d V  t          j        d           d S )Nall)pltclose)requests    m/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/geopandas/tests/test_plotting.pyclose_figuresr   &   s%      	EEEIe    zaxes.prop_cyclecolorzaxes.color_cyclezfigure.max_open_warningc            
       j   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zej                            d edddd           edddd          g eddg           eddg          g edd           edd          gg          d             Zd Zd Zd Zd Zd Zd Zd S )!TestPointPlottingc                 |   d| _         t          d t          | j                   D                       | _        t	          j        | j                   }t          | j        |d          | _        |dz  dz  | j        d<   t          | j                  }t          |d          }t          ||gddgd          | _
        d S )	N
   c              3   6   K   | ]}t          ||          V  d S Nr
   .0is     r   	<genexpr>z1TestPointPlotting.setup_method.<locals>.<genexpr>8   *      CCaCCCCCCr   geometryvalues   expZ   r      )Nr   rangepointsnparanger   dfr   r   df2)selfr-   multipoint1multipoint2s       r   setup_methodzTestPointPlotting.setup_method6   s    CCU46]]CCCCC46""DK6JJKK 2+!+ --["--%{31vFF
 
r   c                 N   | j                             d          }t          j                            |j                                        d           | j                            d          }t          j                            |j                                        d           d S )Nr1   r1   )figsize)r4   plotr5   testingassert_array_equalfigureget_size_inchesr7   r9   axs     r   test_figsizezTestPointPlotting.test_figsizeE   s    [f--

%%bi&?&?&A&A6JJJW\\&\))

%%bi&?&?&A&A6JJJJJr   c                    | j                                         }t          | j        |j        d                                         t          g| j        z             | j                                        }t          | j        |j        d                                         t          g| j        z             | j                            d          }t          j	                    } |t          j        | j                  | j        dz
  z            }t          | j        |j        d                                         |           d S )Nr   r-   columnr1   )r4   r@   _check_colorsr2   collectionsget_facecolorsMPL_DFT_COLORr7   r   get_cmapr5   r6   r9   rF   cmapexpected_colorss       r   test_default_colorsz%TestPointPlotting.test_default_colorsL   s    [FBN1%4466$&8P	
 	
 	

 W\\^^FBN1%4466$&8P	
 	
 	

 W\\\**|~~$ry00DFQJ?@@dfbnQ/>>@@/RRRRRr   c                    t          j        g d          }| j                            |          }|| j        d<   | j                            d          }|j        d                                         }|j        d                                         }t          j                            |d         |d                    d S )N)
abcrU   rV   rW   rU   rV   rW   rU   
colors_ordr   r1   	pdSeriesr7   r@   rL   rM   r5   rA   rB   r9   rX   ax1ax2point_colors1point_colors2s         r   test_series_color_no_indexz,TestPointPlotting.test_series_color_no_indexa   s    YQQQRR
 gll:&& !+gll<(( *99;;*99;;

%%mA&6a8HIIIIIr   c                    t          j        g dg d          }| j                            |          }|| j        d<   | j                            d          }|j        d                                         }|j        d                                         }t          j                            |d         |d                    d S )N)
rU   rU   rU   rU   rV   rV   rV   rW   rW   rW   )
r   r.      	   r1                  indexrX   r   r1   rY   r\   s         r   test_series_color_indexz)TestPointPlotting.test_series_color_indexq   s    Y>>>000
 
 

 gll:&& !+gll<(( *99;;*99;;

%%mA&6a8HIIIIIr   c                    | j                             d          }t          j        d          } |t	          j        | j                  | j        dz
  z            }t          | j        |j        d         	                                |           | j
                            d          }t          | j        |j        d         	                                |           | j
                            dd          }t          j        d          }t          | j        |j        d         	                                |           | j                             t          j        dd	                    }t          j        dd	          } |t          t          d                    d
z            }t          | j        |j        d         	                                |           d S )NRdYlGnrQ   r1   r   r-   )rJ   rQ   Set1rh   lutrg   )r4   r@   r   rO   r5   r6   r2   rK   rL   rM   r7   listr3   r9   rF   rQ   
exp_colorss       r   test_colormapzTestPointPlotting.test_colormap   s   
 [8,,|H%%T")DF++tvz:;;
dfbnQ/>>@@*MMMW\\x\((dfbnQ/>>@@*MMM W\\\99|H%%dfbnQ/>>@@*MMM [3<A#>#>#>??|F***T$uQxx..1,--
dfbnQ/>>@@*MMMMMr   c                 p   | j                             d          }t          | j        |j        d                                         dg| j        z             | j                            d          }t          | j        |j        d                                         dg| j        z             | j                            d          }t          | j        |j        d                                         dg| j        z             | j                            d          }t          | j        |j        d                                         dg| j        z             t          j        t          t          f          5  | j                            d           d d d            n# 1 swxY w Y   t          j        d          5 }| j                            d	d
          }t          | j        |j        d                                         dg| j        z             d d d            d S # 1 swxY w Y   d S )Ngreenr   r         ?r{   r{   r{   r{   r{   r{   	not colorTrecordr-   rJ   r   )r4   r@   rK   r2   rL   rM   r7   pytestraises
ValueError	TypeErrorwarningscatch_warningsr9   rF   _s      r   test_single_colorz#TestPointPlotting.test_single_color   sx   [G,,dfbnQ/>>@@7)dfBTUUUW\\\((dfbnQ/>>@@7)dfBTUUU W\\\00FBN1%44668IDF8R	
 	
 	
 W\\ 4\55FBN1%44669M8NQUQW8W	
 	
 	
 ]J	233 	, 	,GLL{L+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, $D111 	QXW==Bq)88::WI<N  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s%   =F%%F),F)AH++H/2H/c                    | j                             d          }|j        d                                         dgk    sJ | j                            d          }|j        d                                         dgk    sJ | j                            dd          }|j        d                                         dgk    sJ | j                            d          }|j        d                                         | j        d         k                                    sJ | j                            dd          }|j        d                                         | j        d         k                                    sJ d S )Nr"   
markersizer   r-   )rJ   r   )r4   r@   rL   	get_sizesr7   r   rE   s     r   test_markersizez!TestPointPlotting.test_markersize   sX   [,,~a **,,4444W\\R\((~a **,,4444W\\b\99~a **,,4444W\\X\..q!++--1BBGGIIIIIW\\h\??q!++--1BBGGIIIIIIIr   c                     | j                             d          }t          d          }t          j                            ||j        d                                         d         j                   d S )N+)markerr   )	r8   r@   _style_to_verticesr5   rA   rB   rL   	get_pathsvertices)r9   rF   expecteds      r   test_markerstylez"TestPointPlotting.test_markerstyle   sh    X]]#]&&%c**

%%bnQ'1133A6?	
 	
 	
 	
 	
r   c                     | j                             d          }|j        d                                         g dk                                    sJ d S )Nk)
edgecolorsr   )r   r   r   r1   )r4   r@   rL   get_edgecolorr   rE   s     r   test_style_kwargsz#TestPointPlotting.test_style_kwargs   sT    [--q!//11\\\AFFHHHHHHHr   c                    | j                             d          }t          j                            dg|j        d                                                    	 | j                             t          j        ddd| j                            }t          j                            t          j        ddd| j                  |j        d                                                    d S # t          $ r Y d S w xY wNffffff?alphar                 ?
r7   r@   r5   rA   rB   rL   	get_alphalinspacer2   r   rE   s     r   test_style_kwargs_alphaz)TestPointPlotting.test_style_kwargs_alpha       W\\\$$

%%seR^A->-H-H-J-JKKK	BK3TV$D$DEEB
 J))AsC00".2C2M2M2O2O    	  	 	 	DD	   5C) )
C76C7c                 \   t          j        d          5 }| j                            ddd          }t	          |                                j                  dk    sJ 	 d d d            n# 1 swxY w Y   | j                            d          }t	          |                                j                  dk    sJ | j                            ddd	          }|j        d
                                         }t          |                                          j        d                                         }t          j                            |d
         |d
                    t          j                            |d         |d                    | j                            ddd          }|j        d
                                         }|                                j        j        d                                         }t          j                            |d
         |d
                    t          j                            |d         |d                    t          j                            | j        dd          j                                        | j        dd          j                                                  }| j        dd                              ddd|          }|j        d
                                         }t          |                                          j        d                                         }t          j                            |d
         |d
                    t          j                            |d         |d                    |j        dk    sJ d S )NTr~   r-   rx   )rJ   r   legendr1   r   rn   rJ   rQ   r   r   )rJ   categoricalr   vminvmaxr/   )rJ   rQ   r   norm)   re   )r   r   r7   r@   len
get_figureaxesrL   rM   _get_colorbar_axr5   rA   rB   
get_legendr   colorsLogNormr/   minmaxshape)r9   r   rF   point_colorscbar_colorsr   s         r   test_legendzTestPointPlotting.test_legend   s0   $D111 	2QXWTJJBr}}+,,11111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 W\\\&&2==??'((A---- W\\\FF~a(7799&r}}77CBGVVXX

%%l1o{1~FFF

%%l2&6BHHH W\\tD\II~a(7799mmoo*6r:IIKK

%%l1o{1~FFF

%%l2&6BHHH  (($$&&TWQRR[_-@-@-B-B ) 
 
 WQRR[U$TRR~a(7799&r}}77CBGVVXX

%%l1o{1~FFF

%%l2&6BHHH H,,,,,,s   A
A--A14A1c                 p   t           j        j        }t           j                            dd          }| j                            d||          }|j        d                                         } |t          j
        d          dz            }t          j                            ||           t          j                    \  }}| j        dd                              d|||           |j        d                                         }t          j                            |d         |d                    d S 	Nr      r   r-   rJ   rQ   r   r"   r1   rJ   rF   r   rQ   r   cm	viridis_rr   	Normalizer7   r@   rL   rM   r5   r6   rA   rB   r   subplotsr9   rQ   r   rF   actual_colors_origru   figactual_colors_subs           r   test_subplots_normz$TestPointPlotting.test_subplots_norm     }& ***;;W\\4\@@^A.==??T")B--2.//


%%j2DEEE,..RRdFFFN1-<<>>

%%&8&;=Nq=QRRRRRr   c                    t          t                      g          }t          j        t                    5  |                                }d d d            n# 1 swxY w Y   t          |j                  dk    sJ t          g           }t          j        t                    5  |                                }d d d            n# 1 swxY w Y   t          |j                  dk    sJ t          g dg          }t          j        t                    5  |                                }d d d            n# 1 swxY w Y   t          |j                  dk    sJ d S )Nr   r,   )columns)	r   r   r   warnsUserWarningr@   r   rL   r   )r9   srF   r7   s       r   test_empty_plotz!TestPointPlotting.test_empty_plot  s   wyyk""\+&& 	 	B	 	 	 	 	 	 	 	 	 	 	 	 	 	 	2>""a''''bMM\+&& 	 	B	 	 	 	 	 	 	 	 	 	 	 	 	 	 	2>""a''''"zl333\+&& 	 	B	 	 	 	 	 	 	 	 	 	 	 	 	 	 	2>""a''''''s5   AAA$CC	C	D66D:=D:c                    t          t          g d          t                      g          }|                                }t          |j                  dk    sJ t          g d          }t          dd          }t          dd          }t                      }t          |||g          }|                    |          |d<   t          j	                    5  t          j
        dd	t                     d g|j        d
<   d d d            n# 1 swxY w Y   |                                }t          |j                  dk    sJ d S )Nr   r   r1   r   r>   r1   )r   r   )r   rg   rg   rg   )rg   r   r   r   r"   r,   r,   ignorez2The behavior of DataFrame concatenation with emptyr.   )r   r   r@   r   rL   r
   r   intersectionr   r   filterwarningsFutureWarningloc)r9   r   rF   polypointpoint_empty_pointgdfs           r   test_empty_geometryz%TestPointPlotting.test_empty_geometry'  sw   w77788'))DEEVVXX2>""a'''' EEEFFar2ggUK$@AAA**400J$&& 	  	 #D  
 CGAJ	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  XXZZ2>""a''''''s   'DDDgeomsr   r1   rf   ri   r>   r1   rg   )rf   r1   )rf   rg   c                 8   t          |ddg          }|                    t          dddd                    }|                    ddg	          }t	          j        g d
          }|j        d         dk    rRt          j                            |	                                d         
                                d         |           d S t          j                            |	                                d                                         d         |           d S )NrrV   rj   rh   r   r"   redbluery   )r   r   r   r   r   )r   r   r   r@   r5   array	geom_typerA   rB   get_childrenr   get_facecolor)r9   r   r   s2rF   r   s         r   test_empty_geometry_colorsz,TestPointPlotting.test_empty_geometry_colors?  s    $ *
 
 
 ^^C1b"--..WWE6?W++x,,,--;s|++J))"//*;*;A*>*L*L*N*Nq*QSWXXXXXJ))"//*;*;A*>*L*L*N*Nq*QSWXXXXXr   c                 `   | j                                         }t          d|j        d                                         t
          gdz             | j                             d          }t          j        d          } |d          g| j        z   |d          g| j        z  z   }t          d|j        d                                         |           | j                             d	d
g          }t          d|j        d                                         d	gdz  d
gdz  z              d S )Nre   r   r-   rI   rg   rq   r1   r   r   rV   ry   r"   )	r8   r@   rK   rL   rM   rN   r   rO   r2   rP   s       r   test_multipointsz"TestPointPlotting.test_multipoints]  s   X]]__a*99;;m_q=PQQQX]](]++|"""477)df,Qy46/AAb".+::<<oNNNX]]#s],,b".+::<<sebjC5SU:>UVVVVVr   c                    | j                             d          }t          j                            dg|j        d                                                    	 | j                             ddg          }t          j                            dgdz  dgdz  z   |j        d                                                    d S # t          $ r Y d S w xY w)Nr   r   r   皙?r"   r8   r@   r5   rA   rB   rL   r   r   rE   s     r   test_multipoints_alphaz(TestPointPlotting.test_multipoints_alphak  s    X]]]%%

%%seR^A->-H-H-J-JKKK	c3Z00B
 J))
cURZ'):)D)D)F)F    	  	 	 	DD	s   C 
CCc                    ddgdz  | j         d<   ddgdz  | j         d<   dgdz  | j         d	<   t          j        ddgdz            | j         d
<   t          j        dgdz  ddg          | j         d<   t          j        ddgdz  ddg          | j         d<   ddgdz  | j         d<   t          j        ddgdz            | j         d<   t          j        ddgdz  d          | j         d<   | j                             dd          }| j                             d
d          }| j                             d	ddgd          }| j                             dd          }| j                             dd          }| j                             dddgd          }| j                             dd          }| j                             dd          }| j                             dd          }	|j        d                                         }
||||||||	fD ]M}|j        d                                         }t          j        	                    |
d         |d                    Nd |
                                                                D             }||||||||	fD ]R}d |
                                                                D             }t          j        	                    ||           St          j        t                    5  | j                             dd           d d d            n# 1 swxY w Y   t          j        t          d          5  | j                             ddg           d d d            n# 1 swxY w Y   t          j        t          d          5  | j                             d
dg           d d d            d S # 1 swxY w Y   d S )Ncat1cat2rh   cats_objectr1   rg   numsr"   singlecat_objectcats)
categories	singlecatcats_orderedFTboolbool_extensionstring)dtypecats_stringr   )r  r   r   c                 6    g | ]}|                                 S  get_markerfacecolorr'   xs     r   
<listcomp>z5TestPointPlotting.test_categories.<locals>.<listcomp>  s$    QQQq1((**QQQr   c                 6    g | ]}|                                 S r  r  r  s     r   r  z5TestPointPlotting.test_categories.<locals>.<listcomp>  s$    TTT1q,,..TTTr   non_list)rJ   r  z0Column contains values not listed in categories.matchz+Cannot specify 'categories' when column has)r7   rZ   Categoricalr   r@   rL   rM   r5   rA   rB   r   	get_linesr   r   r   r   )r9   r]   r^   ax3ax4ax5ax6ax7ax8ax9r_   rF   r`   legend1legend2s                  r   test_categoriesz!TestPointPlotting.test_categoriesx  s   "(&!1A!5a&1*'-hm"#.&&)9A)=>>!~HrMvv&6 
  
  
 #%.Vq ff-=#
 #
 #
 !$-!+$&HeT]Q->$?$? !!#66*:Q*>h!O!O!Ogll=l66gll6$l//gll-66:JSWlXXgll;tl44gll>$l77gll6q!fTlBBgll6$l//gll+Dl99gll=l66*99;;S#sCc: 	N 	NBN1-<<>>MJ))-*:M!<LMMMMQQCNN4D4D4N4N4P4PQQQS#sCc: 	< 	<BTT8Q8Q8S8STTTGJ))'7;;;;]9%% 	F 	FGLL*LEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F ]P
 
 
 	D 	D GLL6(LCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D
 ]K
 
 
 	= 	= GLLF8L<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s6   	L22L69L6NN	N(OOOc                    t           j        | j        j        d<   | j                            d          }t          j                    } |t          j        | j        dz
            | j        dz
  z            }t          | j        dz
  |j
        d                                         |           | j                            dddi          }t          j                    } |t          j        | j        dz
            | j        dz
  z            }t          d|j
        d                                         dg           t          | j        dz
  |j
        d                                         |           | j                            dddid	d	
          }t          d|j
        d                                         dg           |j
        d                                         }|j
        d                                         }|                                j        j
        d                                         }|                                j        j
        d                                         }t           j                            |d         |d                    t           j                            |d         |d                    d S )Nr   r-   r-   r1   rg   r   r   r   )missing_kwdsT)r#  r   r   )r5   nanr7   r   r@   r   rO   r6   r2   rK   rL   rM   r   r   rA   rB   )r9   rF   rQ   rR   r   	nan_color
leg_colorsleg_colors1s           r   test_missingzTestPointPlotting.test_missing  s5   #%6K W\\(##|~~$ry!44
CDDdfqj"."3"B"B"D"DoVVVW\\('3\@@|~~$ry!44
CDDa*99;;cUCCCdfqj"."3"B"B"D"DoVVVW\\GS>tD  
 
 	a*99;;cUCCC~a(7799N1%4466	]]__)5a8GGII
mmoo*6q9HHJJ

%%l1oz!}EEE

%%ilKNCCCCCr   c                     | j                                         }|d                             d          |d<   |                    dddid           d S )Nr-   strcategory	facecolornoneT)r#  r   )r7   copyastyper@   r9   r7   s     r    test_no_missing_and_missing_kwdsz2TestPointPlotting.test_no_missing_and_missing_kwds  sO    W\\^^H,,U33:

+v)>tLLLLLr   c                     t           j        | j        j        d<   | j                            dddiddd          }|                                dk    sJ d S )Nr"  r-   r   r   Trg   )r#  r   r   aspect)r5   r$  r7   r   r@   
get_aspectrE   s     r   test_missing_aspectz%TestPointPlotting.test_missing_aspect  s`    #%6K W\\!3  
 
 }}!######r   N)__name__
__module____qualname__r<   rG   rS   ra   rl   rv   r   r   r   r   r   r   r   r   r   r   markparametrizer   r   r
   r   r   r   r   r(  r1  r5  r  r   r   r    r    5   s"       
 
 
K K KS S S*J J J J J J&N N N2  4J J J 
 
 
I I I  +- +- +-ZS S S( ( (( ( (0 [ Aq!QAq!Q
 
FF+,,
FF+,,
 aa	
 "Y Y# "YW W W  .= .= .=`D D D0M M M	$ 	$ 	$ 	$ 	$r   r    c                       e Zd Zd Zd ZdS )TestPointZPlottingc                     d| _         t          d t          | j                   D                       | _        t	          j        | j                   }t          | j        |d          | _        d S )Nr"   c              3   8   K   | ]}t          |||          V  d S r$   r%   r&   s     r   r)   z2TestPointZPlotting.setup_method.<locals>.<genexpr>  s,      FF1aAFFFFFFr   r+   )r2   r   r3   r4   r5   r6   r   r7   )r9   r-   s     r   r<   zTestPointZPlotting.setup_method  s]    FFdfFFFFF46""DK6JJKKr   c                 8    | j                                          d S r$   r7   r@   r9   s    r   	test_plotzTestPointZPlotting.test_plot      r   Nr6  r7  r8  r<   rB  r  r   r   r<  r<    s5        L L L    r   r<  c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )TestLineStringPlottingc                    d| _         t          j        | j                   }t          d t	          | j                   D             t          d                    | _        t          | j        |d          | _        t          | j        j
        dd         j                  }t          | j        j
        dd	         j                  }t          ||gd
dgd          | _        t          d t	          | j                   D             t          d                    | _        t          | j        |d          | _        d S )Nr"   c                 D    g | ]}t          d |fd|dz   fd|fg          S r   re   r{   rd   r   r&   s     r   r  z7TestLineStringPlotting.setup_method.<locals>.<listcomp>  7    OOOAZ!Q!QW1v677OOOr   
ABCDEFGHIJrj   r+   ABCDr   r1   c                 D    g | ]}t          d |fd|dz   fd|fg          S rI  )r   r&   s     r   r  z7TestLineStringPlotting.setup_method.<locals>.<listcomp>  rK  r   )r2   r5   r6   r   r3   rs   linesr   r7   r   r   r-   r8   linearringsdf3)r9   r-   
multiline1
multiline2s       r   r<   z#TestLineStringPlotting.setup_method  s+   46""OOtvOOO|$$
 
 

 DJ&IIJJ$TZ^CG%<%CDD
$TZ^CG%<%CDD
$j1aVDD
 
 %OOtvOOO|$$
 
 
  T-= P PQQr   c                    | j         d| j        dz                                           }|                                }| j                             |d           |                                |k    sJ | j        d| j        dz                                           }|                                }| j                            |d           |                                |k    sJ dS )z,Test linestring plot preserving axes limits.Nrg   FrF   autolimrR  r2   r@   get_ylimr7   r9   rF   ylims      r   test_autolim_falsez)TestLineStringPlotting.test_autolim_false  s    Z$&A+&++--{{}}
2u---{{}}$$$$W]tv{]#((**{{}}E***{{}}$$$$$$r   c                    | j         d| j        dz                                           }|                                }| j                             |d           |                                |k    sJ | j        d| j        dz                                           }|                                }| j                            |d           |                                |k    sJ dS )z-Test linestring plot autoscaling axes limits.Nrg   TrX  rZ  r\  s      r   test_autolim_truez(TestLineStringPlotting.test_autolim_true  s    Z$&A+&++--{{}}
2t,,,{{}}$$$$W]tv{]#((**{{}}D))){{}}$$$$$$r   c                    | j                             d          }t          | j        |j        d                                         dg| j        z             | j                            d          }t          | j        |j        d                                         dg| j        z             | j                            d          }t          | j        |j        d                                         dg| j        z             | j                            d          }t          | j        |j        d                                         dg| j        z             | j                            d          }t          | j        |j        d                                         dg| j        z             | j                            d          }t          | j        |j        d                                         dg| j        z             t          j
        t          t          f          5  | j                            d           d d d            n# 1 swxY w Y   t          j        d          5 }| j                            dd	          }t          | j        |j        d                                         dg| j        z             d d d            d S # 1 swxY w Y   d S )
Nrx   ry   r   r|   r}   Tr~   r-   r   )rR  r@   rK   r2   rL   
get_colorsr7   rS  rT  r   r   r   r   r   r   r   s      r   r   z(TestLineStringPlotting.test_single_color
  s   Z__7_++dfbnQ/::<<wi$&>PQQQW\\\((dfbnQ/::<<wi$&>PQQQ"""11dfbnQ/::<<wi$&>PQQQX]]]))dfbnQ/::<<wi$&>PQQQ W\\ 4\55FBN1%00225I4JTV4S	
 	
 	
 W\\ 4\55FBN1%00225I4JTV4S	
 	
 	
 ]Iz233 	, 	,GLL{L+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, $D111 	VQXW==B$&"."3">">"@"@7)dfBTUUU	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	Vs%   +III3AKK Kc                    | j                             dd          | j                            dd          | j                            ddd          fD ],}dddgfg|j        d	                                         k    sJ -| j                             d
d          }d	g dfg|j        d	                                         k    sJ d t          | j                  D             }d |D             }| j                             |d          | j                             |d          | j                            |d          | j                            d|d          fD ]'}||j        d	                                         k    sJ (d S )N:r1   	linestyle	linewidthr-   )rJ   rf  rg  r   r   ffffff?r   r   r.   r"   r1      rj  c                 $    g | ]}d |dz           S ))dasheddotteddashdotsolidre   r  r'   r   s     r   r  zFTestLineStringPlotting.test_style_kwargs_linestyle.<locals>.<listcomp>6  s"    UUU!6q1u=UUUr   c                 .    g | ]}t          |d           S r1   _style_to_linestring_onoffseqr'   sts     r   r  zFTestLineStringPlotting.test_style_kwargs_linestyle.<locals>.<listcomp>7  #    DDD2/A66DDDr   
linestylesrg  )rR  r@   r7   rL   get_linestyler3   r2   r9   rF   lsexp_lss       r   test_style_kwargs_linestylez2TestLineStringPlotting.test_style_kwargs_linestyle(  s    JOOcQO77GLL3!L44GLLC1LEE
 	M 	MB
 3+&'2>!+<+J+J+L+LLLLLL Z__':a_HHNNN#$q(9(G(G(I(IIIII VUuTV}}UUUDDDDDJOObAO66JOOrQO77GLL2L33GLLB!LDD	
 	? 	?B R^A.<<>>>>>>>	? 	?r   c                    | j                             d          | j                            d          | j                            dd          fD ]@}t          j                            dg|j        d                                                    Ad t          | j	                  D             }| j                             |          | j                             |          | j                            |          | j                            d|          fD ]?}t          j                            ||j        d                                                    @d S )Nrg   rg  r-   )rJ   rg  r   c                 $    g | ]}d |dz           S ))r   r1   rg         @r"   rh   r  rq  s     r   r  zFTestLineStringPlotting.test_style_kwargs_linewidth.<locals>.<listcomp>J  s"    ???A Q'???r   
linewidths)
rR  r@   r7   r5   rA   rB   rL   get_linewidthsr3   r2   )r9   rF   lws      r   test_style_kwargs_linewidthz2TestLineStringPlotting.test_style_kwargs_linewidth@  s?    JOOaO((GLL1L%%GLLAL66
 	S 	SB
 J))1#r~a/@/O/O/Q/QRRRR @?tv???JOObO))JOOrO**GLL2L&&GLLBL77	
 	R 	RB J))"bnQ.?.N.N.P.PQQQQ	R 	Rr   c                    | j                             d          }t          j                            dg|j        d                                                    	 | j                             t          j        ddd| j                            }t          j                            t          j        ddd| j                  |j        d                                                    d S # t          $ r Y d S w xY wr   r   rE   s     r   r   z.TestLineStringPlotting.test_style_kwargs_alphaS  r   r   c                     ddl m}  |dd          g}| j                            d|          }|j        d                                         d         j        d         dddk    sJ d S )	Nr   )
withStrokeri   rV   )rg  
foregroundorange)r   path_effects_gc)matplotlib.patheffectsr  r7   r@   rL   get_path_effects__dict__)r9   r  effectsrF   s       r   test_style_kwargs_path_effectsz5TestLineStringPlotting.test_style_kwargs_path_effects`  s    555555:c:::;W\\w\??~a 1133A6?FK
 K
 
 
 
 
 
 
r   c                 p   t           j        j        }t           j                            dd          }| j                            d||          }|j        d                                         } |t          j
        d          dz            }t          j                            ||           t          j                    \  }}| j        dd                              d|||           |j        d                                         }t          j                            |d         |d                    d S r   )r   r   r   r   r   r7   r@   rL   get_edgecolorsr5   r6   rA   rB   r   r   r   s           r   r   z)TestLineStringPlotting.test_subplots_normj  r   r   c                    | j                                         }t          |j        d                                                   dk    sJ t          d|j        d                                         t          gdz             | j                             d          }t          j	        d          } |d           |d           |d           |d          g}t          d|j        d                                         |           | j                             ddg	          }t          d|j        d                                         g d
           d S Nr   re   r-   rg   rq   r1   r   rV   ry   )r   r   rV   rV   )
r8   r@   r   rL   r   rK   r  rN   r   rO   rP   s       r   test_multilinestringsz,TestLineStringPlotting.test_multilinestringsw  ,   X]]__2>!$..0011Q6666a*99;;m_q=PQQQX]]8$$|"""477DDGGTT!WWdd1gg>a*99;;_MMMX]]#s],,a*99;;=Q=Q=QRRRRRr   N)r6  r7  r8  r<   r^  r`  r   r  r  r   r  r   r  r  r   r   rF  rF    s        R R R*	% 	% 	%	% 	% 	%V V V<? ? ?0R R R&  
 
 
S S SS S S S Sr   rF  c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zer 	  edgddgdddd          d             Znd Zd Zd Zd Zd Zd Zer 	  edgddgdddd          d             Znd Zd ZdS )TestPolygonPlottingc                    t          g d          }t          g d          }t          ||gt          d                    | _        t	          | j        ddgd          | _        t          ||g          }t          |d          }t	          ||gddgd          | _        t          g d	          }t	          |t          j
        gd          }t          j        | j        |g          | _        d S )
Nr   r   rg   r   rg   r1   ABrj   r   r1   r+      )r  )r.   r   )r.   r1   )r   r   rs   polysr   r7   r	   r   r8   r5   r$  rZ   concatrT  )r9   t1t2
multipoly1
multipoly2t3df_nans          r   r<   z TestPolygonPlotting.setup_method  s    ---..---..BxtDzz:::
DJ1a&IIJJ!2r(++
J,,
$j1aVDD
 
 ---..2"&BBCC9dgv.//r   c                    | j         dd                                         }|                                }| j                             |d           |                                |k    sJ | j        dd                                         }|                                }| j                            |d           |                                |k    sJ dS )z)Test polygon plot preserving axes limits.Nr1   FrX  r  r@   get_xlimr7   r9   rF   xlims      r   r^  z&TestPolygonPlotting.test_autolim_false  s    Z^  ""{{}}
2u---{{}}$$$$WRaR[{{}}E***{{}}$$$$$$r   c                    | j         dd                                         }|                                }| j                             |d           |                                |k    sJ | j        dd                                         }|                                }| j                            |d           |                                |k    sJ dS )z*Test polygon plot autoscaling axes limits.Nr1   TrX  r  r  s      r   r`  z%TestPolygonPlotting.test_autolim_true  s    Z^  ""{{}}
2t,,,{{}}$$$$WRaR[{{}}D))){{}}$$$$$$r   c                    | j                             d          }t          d|j        d                                         dgdz             t          |j        d                                                   dk    sJ | j                            d          }t          d|j        d                                         dgdz             t          |j        d                                                   dk    sJ | j                            d          }t          d|j        d                                         dgdz             | j                            d          }t          d|j        d                                         dgdz             t          j	        t          t          f          5  | j                            d           d d d            n# 1 swxY w Y   t          j        d	          5 }| j                            d
d          }t          d|j        d                                         dgdz             d d d            d S # 1 swxY w Y   d S )Nrx   ry   rg   r   rz   r|   r}   Tr~   r-   r   )r  r@   rK   rL   rM   r   r  r7   r   r   r   r   r   r   r   s      r   r   z%TestPolygonPlotting.test_single_color  s   Z__7_++a*99;;gY]KKK2>!$335566!;;;;W\\\((a*99;;gY]KKK2>!$335566!;;;; W\\\00a*99;;o=NQR=RSSSW\\ 4\55a*99;;>R=SVW=WXXX]Iz233 	, 	,GLL{L+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, $D111 	PQXW==B!R^A.==??'QOOO	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	Ps%   9G!!G%(G%AII!$I!c                    | j                             dddd          }|j        d                                         }t          j                            |d         |d                    | j                             dddd          }|j        d                                         }t          j                            |d         |d                    | j                            d          }|j        d                                         }t	          j        t	          j	        |d         |d                             sJ d S )Nr-   Fr   )rJ   r   r   r   r1   TrI   )
r7   r@   rL   rM   r5   rA   rB   rT  any	not_equal)r9   rF   actual_colorss      r   test_vmin_vmaxz"TestPolygonPlotting.test_vmin_vmax  s    W\\u11\MMq)88::

%%mA&6a8HIII W\\t!!\LLq)88::

%%mA&6a8HIII X]](]++q)88::vbl=#3]15EFFGGGGGGGr   c                 H   | j                             d          }t          d|j        d                                         dgdz             | j                             dd          }| j                             d          }t
          j                            dg|j        d                                                    | j	                            d	d          }t
          j                            dg|j        d                                                    | j                             d
dd          }t          d|j        d                                         d
gdz  d           t          d|j        d                                         dgdz  d           | j	                            dd          }t          d|j        d                                         dgdz             t          d|j        d                                         dgdz             | j	                            dd          }t          d|j        d                                         dgdz             t          d|j        d                                         dgdz             d S )Nr   r,  rg   r   r   )r   r,  	edgecolor)r1   r   r   r1   r-   gr   皙?)r,  r  r   r   rz   )r  r{   333333?r,  r  r|   r  r{   r  r{   )
r  r@   rK   rL   rM   r5   rA   rB   r  r7   rE   s     r   test_style_kwargs_colorz+TestPolygonPlotting.test_style_kwargs_color  si   Z__s_++a*99;;cUQYGGG Z__5C_88
 Z__u_--

%%NBN1-<<>>	
 	
 	
 W\\(e\44

%%NBN1-<<>>	
 	
 	

 Z__sc_EEa*99;;cUQYcRRRRa*99;;cUQYcRRRR W\\O\OOa*99;;o=NQR=RSSSa*99;;o=NQR=RSSSW\\*6J  
 
 	a*99;;>R=SVW=WXXXa*99;;>R=SVW=WXXXXXr   c                    | j                             dd          }dddgfg|j        d                                         k    sJ | j                             dd          }dg d	fg|j        d                                         k    sJ d
dg}d |D             }| j                             |d          | j                             |d          fD ]'}||j        d                                         k    sJ (d S )Nrd  r1   re  r   r   rh  r   ri  rj  rm  rn  c                 .    g | ]}t          |d           S rs  rt  rv  s     r   r  zCTestPolygonPlotting.test_style_kwargs_linestyle.<locals>.<listcomp>  rx  r   ry  )r7   r@   rL   r{  r|  s       r   r  z/TestPolygonPlotting.test_style_kwargs_linestyle  s    W\\C1\55sDk"#r~a'8'F'F'H'HHHHH W\\$71\EENNN#$q(9(G(G(I(IIIII !DDDDDGLL2L33GLLB!L44
 	? 	?B R^A.<<>>>>>>>		? 	?r   c                 >   | j                             d          }t          j                            dg|j        d                                                    | j                             ddg          | j                             ddg          fD ]A}t          j                            ddg|j        d                                                    B| j                             d          }t          j                            dg|j        d                                                    	 | j                             ddg          }t          j                            ddg|j        d                                                    d S # t          $ r Y d S w xY w)	Nrg   r  r   re   r  r   r   r   )	r7   r@   r5   rA   rB   rL   r  r   r   rE   s     r   r  z/TestPolygonPlotting.test_style_kwargs_linewidth  sr   W\\A\&&

%%qc2>!+<+K+K+M+MNNN7<<1a&<1147<<Aq6<3R3RS 	V 	VBJ))1a&".2C2R2R2T2TUUUU W\\\$$

%%seR^A->-H-H-J-JKKK	US#J//B
 J))3*bnQ6G6Q6Q6S6STTTTT	  	 	 	DD	s   0F 
FFc           	      F   t          | j        d                                                   }d| j                            dd|dfd|D             dd          }t	          |          t	          |                                                                          k    sJ |                                                                d                                                                       sJ |                                	                                du sJ d S )	Nr-   
LABEL_FOR_Tc                 4    g | ]}t          |          z   S r  )r*  )r'   rW   prefixs     r   r  z:TestPolygonPlotting.test_legend_kwargs.<locals>.<listcomp>+  s#    ???q6CFF????r   F)labelsframeon)rJ   r   r  r   legend_kwdsr   )
rs   r7   uniquer@   r   r   	get_textsget_text
startswithget_frame_on)r9   r  rF   r  s      @r   test_legend_kwargsz&TestPolygonPlotting.test_legend_kwargs"  s   $'(+224455
W\\!????J???    	
 	
 :#bmmoo&?&?&A&A"B"BBBBB}}((**1-6688CCFKKKKK}}++--666666r   c                 x   d}| j                             dddd|i          }t          |                                          }|                                |k    sJ | j                             ddd|dd          }t          |                                          }|                                |k    sJ d S )	Nzcolorbar testr-   FTlabelrJ   r   r   r  
horizontal)r  orientation)r7   r@   r   r   
get_ylabel
get_xlabel)r9   	label_txtrF   caxs       r   test_colorbar_kwargsz(TestPolygonPlotting.test_colorbar_kwargs3  s     $	W\\ ),	  
 
 r}}//~~9,,,,W\\"+LII	  
 
 r}}//~~9,,,,,,r   polygon_with_holespngpdfTi,  tight)dpibbox_inches)
extensionsremove_textsavefig_kwargc                     t          g dg dg dg          g}t          |          }|                                 d S )Nr   )r   rh   )rh   rh   rh   r   r>   r   r   r  r.   rg   )r.   r.   )re   r.   )re   rg   r   )r   r   r@   )r9   r   _dfs      r   test_plot_polygon_with_holesz0TestPolygonPlotting.test_plot_polygon_with_holesN  s[     444888888 E ...CHHJJJJJr   c                    t          g dg dg dg          g}t          |          }|                                }|j        d                                         d         j        }|                                                                                                }t          j
                            ||           d S )Nr  r  r  r   r   )r   r   r@   rL   r   r   	normalizeget_coordinatesto_numpyr5   rA   rB   )r9   r   r  rF   plotted_verticesexpected_verticess         r   r  z0TestPolygonPlotting.test_plot_polygon_with_holesc  s    444888888 E ...CB!~a0::<<Q?H # ? ? A A J J L LJ))*:<MNNNNNr   c                     | j                             dddddi           | j                             ddddi           d S )Nr-   Tfmt{:.0f}r  )rJ   r   r  r@  rA  s    r   test_fmt_ignorez#TestPolygonPlotting.test_fmt_ignoret  sY     	)	 	 	
 	
 	
 	HTx?PQQQQQr   c                    | j                                         }t          |j        d                                                   dk    sJ t          d|j        d                                         t          gdz             | j                             d          }t          j	        d          } |d           |d           |d           |d          g}t          d|j        d                                         |           | j                             ddg	          }t          d|j        d                                         g d
           d S r  )
r8   r@   r   rL   r   rK   rM   rN   r   rO   rP   s       r   test_multipolygons_colorz,TestPolygonPlotting.test_multipolygons_color  r  r   c                    | j                             dd          }dddgfg|j        d                                         k    sJ | j                             dd          }dg d	fg|j        d                                         k    sJ d
dg}d |D             }| j                             |d          | j                             |d          fD ]'}||j        d                                         k    sJ (d S )Nrd  r1   re  r   r   rh  r   ri  rj  rm  rn  c                 R    g | ]$}t          d           D ]}t          |d          %S r  )r3   ru  )r'   rw  r(   s      r   r  zDTestPolygonPlotting.test_multipolygons_linestyle.<locals>.<listcomp>  s7    VVV2USTXXVV/A66VVVVr   ry  )r8   r@   rL   r{  r|  s       r   test_multipolygons_linestylez0TestPolygonPlotting.test_multipolygons_linestyle  s    X]]SA]66sDk"#r~a'8'F'F'H'HHHHH X]]%8A]FFNNN#$q(9(G(G(I(IIIII !VVVVVHMMB!M44HMMR1M55
 	? 	?B R^A.<<>>>>>>>		? 	?r   c                    | j                             d          }t          j                            dg|j        d                                                    | j                             ddg          | j                             ddg          fD ]A}t          j                            g d|j        d                                                    Bd S )Nrg   r  r   re   r  )rg   rg   re   re   )r8   r@   r5   rA   rB   rL   r  rE   s     r   test_multipolygons_linewidthz0TestPolygonPlotting.test_multipolygons_linewidth  s    X]]Q]''

%%qc2>!+<+K+K+M+MNNN 8==Aq6=22DHMMaQRVM4T4TU 	 	BJ))bnQ/>>@@   	 	r   c                    | j                             d          }t          j                            dg|j        d                                                    	 | j                             ddg          }t          j                            g d|j        d                                                    d S # t          $ r Y d S w xY w)Nr   r   r   r   )r   r   r   r   r   rE   s     r   test_multipolygons_alphaz,TestPolygonPlotting.test_multipolygons_alpha  s    X]]]%%

%%seR^A->-H-H-J-JKKK	c3Z00B
 J))$$$bnQ&7&A&A&C&C    	  	 	 	DD	s   B9 9
CCmultipolygon_with_holesc                 F   t          dddd                              t          dddd                    }t          dddd                              t          dddd                    }t          ||g          }t          |g	          }|                                 d S )
Nr   r1   r   r{   r.   rc   re   rh   r   )r   
differencer	   r   r@   )r9   poly1poly2	multipolyr  s        r    test_multipolygons_with_interiorz4TestPolygonPlotting.test_multipolygons_with_interior  s     1aOO..s3S#/F/FGGE1aOO..s1aA??E$eU^44I444CHHJJJJJr   c                    t          dddd                              t          dddd                    }t          dddd                              t          dddd                    }t          ||g          }t          |g	          }|                                }t          j        |j        d                                         d         j	        |j        d                                         d         j	        d
          }|
                                                                                                }t
          j                            ||           d S )Nr   r1   r   r{   r.   rc   re   rh   r   axis)r   r  r	   r   r@   r5   appendrL   r   r   r  r  r  rA   rB   )r9   r  r  r  r  rF   r  r  s           r   r  z4TestPolygonPlotting.test_multipolygons_with_interior  s(   1aOO..s3S#/F/FGGE1aOO..s1aA??E$eU^44I444CB!yq!++--a09q!++--a09     
 !$ ? ? A A J J L LJ))*:<MNNNNNr   c                 p   t           j        j        }t           j                            dd          }| j                            d||          }|j        d                                         } |t          j
        d          dz            }t          j                            ||           t          j                    \  }}| j        dd                              d|||           |j        d                                         }t          j                            |d         |d                    d S )	Nr   r"   r   r-   r   rg   r1   r   r   r   s           r   r   z&TestPolygonPlotting.test_subplots_norm  s   }& ***;;W\\4\@@^A.==??T")A,,"-..


%%j2DEEE,..RRdFFFN1-<<>>

%%&8&;=Nq=QRRRRRr   N)r6  r7  r8  r<   r^  r`  r   r  r  r  r  r  r  MPL_DECORATORSr   r  r  r  r  r  r  r  r   r  r   r   r  r    s       0 0 0 	% 	% 	%	% 	% 	%P P P.H H H$#Y #Y #YJ? ? ?$U U U&7 7 7"- - -0  'OK		!"u~"%g>>	

 

 

	 	

 

	 		O 	O 	O"R R RS S S ? ? ?$	 	 	    O	6 
	&'u~"%g>>	

 

 

	 	

 

	 		O 	O 	OS S S S Sr   r  c                       e Zd Zd Zd ZdS )TestPolygonZPlottingc                 H   t          g d          }t          g d          }t          ||gt          d                    | _        t	          | j        ddgd          | _        t          ||g          }t          |d          }t	          ||gddgd          | _        d S )	N))r   r   r   r1   r   r   )r1   r1   r1   )r  )rg   r   r   )rg   r1   r1   r  rj   r   r1   r+   r  )	r   r   rs   r  r   r7   r	   r   r8   )r9   r  r  r  r  s        r   r<   z!TestPolygonZPlotting.setup_method  s    6667766677BxtDzz:::
DJ1a&IIJJ!2r(++
J,,
$j1aVDD
 
r   c                 8    | j                                          d S r$   r@  rA  s    r   rB  zTestPolygonZPlotting.test_plot  rC  r   NrD  r  r   r   r  r    s2        

 

 

    r   r  c                        e Zd Zd Zd Zd ZdS )TestColorParamArrayc                    g }g }dD ]C\  }}t          ||||          }|||                    d          j        |j        gz  }|g dz  }Dt	          ||d          | _        | j                            | j        j                  | _        d S )N))r   rg   )re   rc   g?)r   rx   r   )r,   
color_rgba)	r   bufferexteriorcentroidr   r   dissolver   mgdf)r9   geomr   rU   rV   s        r   r<   z TestColorParamArray.setup_method  s    $ 	. 	.DAqAq!QAQ.
;;D----EET G GHHH%%dh&899			r   c                 F   | j                             | j         d                   }t          dt          j        d |j        D                       dgdz  dgdz  z              t          dt          j        d |j        D                       d	gdz  dgdz  z              d S )
Nr  ry   re   c                 6    g | ]}|                                 S r  r   r'   rW   s     r   r  z9TestColorParamArray.test_color_single.<locals>.<listcomp>  "    FFF!AOO--FFFr   rx   rg   r   c                 6    g | ]}|                                 S r  r   r  s     r   r  z9TestColorParamArray.test_color_single.<locals>.<listcomp>  r  r   r   )r   r@   rK   r5   concatenaterL   rE   s     r   test_color_singlez%TestColorParamArray.test_color_single  s    X]],!7]88NFFr~FFFGGIMVHqL(	
 	
 	

 	NFFr~FFFGGGaK6(Q,&	
 	
 	
 	
 	
r   c                 F   | j                             | j         d                   }t          dt          j        d |j        D                       dgdz  dgdz  z              t          dt          j        d |j        D                       d	gdz  dgdz  z              d S )
Nr  ry   re   c                 6    g | ]}|                                 S r  r  r  s     r   r  z8TestColorParamArray.test_color_multi.<locals>.<listcomp>  r  r   rx   rg   r   c                 6    g | ]}|                                 S r  r!  r  s     r   r  z8TestColorParamArray.test_color_multi.<locals>.<listcomp>  r  r   r   )r  r@   rK   r5   r"  rL   rE   s     r   test_color_multiz$TestColorParamArray.test_color_multi  s    Y^^$)L"9^::NFFr~FFFGGIMVHqL(	
 	
 	

 	NFFr~FFFGGGaK6(Q,&	
 	
 	
 	
 	
r   N)r6  r7  r8  r<   r#  r'  r  r   r   r  r    sA        	: 	: 	:
 
 

 
 
 
 
r   r  c                        e Zd Zd Zd Zd ZdS )TestGeometryCollectionPlottingc                 (   t          t          g d          t          ddg          g          }t          t          dd          t          g d          g          }t	          ||g          | _        t          | j        ddgd	          | _        d S )
Nr  )r{   r{   r>   )r1   r{   g      ?r1         ?      ?)r   r  )rg   r.   r1   rg   r+   )r   r   r   r
   r   seriesr   r7   )r9   coll1coll2s      r   r<   z+TestGeometryCollectionPlotting.setup_method%  s    "00011!57K LMM
 
 #4(@(@(@ A AB
 
  //DKAq6JJKKr   c                 |   | j                                         }t          d|j        d                                         t
          gdz             t          d|j        d                                         t
          gdz             t          d|j        d                                         t
          g           d S )Nrg   r   r1   )r0  r@   rK   rL   rM   rN   r  rE   s     r   test_colorsz*TestGeometryCollectionPlotting.test_colors3  s    [r~a //11M?Q3F	
 	
 	
 	r~a //11M?Q3F	
 	
 	
 	a*99;;m_MMMMMr   c                    | j                             d          }t          j                    } |ddg          }t	          d|j        d                                         |           t	          d|j        d                                         |d         gdz             t	          d|j        d                                         |d         g           d S )Nr-   r   r   rg   r   r1   )r7   r@   r   rO   rK   rL   rM   r  rt   s       r   test_valuesz*TestGeometryCollectionPlotting.test_values>  s    W\\(##|~~T3*%%
a*99;;ZHHHr~a //11JqM?Q3F	
 	
 	
 	a*99;;jm_MMMMMr   N)r6  r7  r8  r<   r4  r6  r  r   r   r)  r)  $  sL        L L L	N 	N 	NN N N N Nr   r)  c                       e Zd Zd Zd Zd Zd Zej        	                    d          d             Z
d Zej        	                    d          d	             Zd
 ZdS )TestNonuniformGeometryPlottingc                     t          j        d           t          g d          }t          g d          }t	          dd          }t          |||g          | _        t          | j        g dd          | _        d S )Nr   r  )r+  r>   r,  r-  r.  r/  r1   rg   r.   r+   )	r   importorskipr   r   r
   r   r0  r   r7   )r9   r   liner   s       r   r<   z+TestNonuniformGeometryPlotting.setup_methodJ  s    L)))///00BBBCCdD!!tU 344DK999MMNNr   c                 L   | j                                         }t          d|j        d                                         t
          g           t          d|j        d                                         t
          g           t          d|j        d                                         t
          g           | j                             d          }t          j        d          } |t          j
        d          dz            }t          d|j        d                                         |d         g           t          d|j        d                                         |d         g           t          d|j        d                                         |d         g           d S )Nr1   r   rg   rn   ro   r.   )r0  r@   rK   rL   rM   rN   r  r   rO   r5   r6   rt   s       r   r4  z*TestNonuniformGeometryPlotting.test_colorsS  sV   [a*99;;m_MMMa*99;;m_MMMa*99;;m_MMM [8,,|H%%T")A,,%011
a*99;;jm_MMMa*99;;jm_MMMa*99;;jm_MMMMMr   c                 
   | j                             d          }|j        d                                         dgk    sJ | j                            d          }|j        d                                         dgk    sJ d S )Nr"   r   rg   )r0  r@   rL   r   r7   rE   s     r   r   z0TestNonuniformGeometryPlotting.test_style_kwargsb  s    [,,~a **,,4444W\\R\((~a **,,444444r   c                 \   | j                             dd          | j                            dd          fD ],}dddgfg|j        d                                         k    sJ -| j                             dd          }dg d	fg|j        d                                         k    sJ d S )
Nrd  r1   re  r   r   rh  r   ri  rj  r0  r@   r7   rL   r{  rE   s     r   r  z:TestNonuniformGeometryPlotting.test_style_kwargs_linestyleh  s     Ksa88GLL3!L44
 	M 	MB 3+&'2>!+<+J+J+L+LLLLLL [(;qIINNN#$q(9(G(G(I(IIIIIIIr   zDarray-like style_kwds not supported for mixed geometry types (#1379)reasonc                    g d}d |D             }| j                             |d          | j                             |d          | j                            |d          fD ]'}||j        d                                         k    sJ (d S )N)rp  rn  ro  c                 .    g | ]}t          |d           S rs  rt  )r'   styles     r   r  zWTestNonuniformGeometryPlotting.test_style_kwargs_linestyle_listlike.<locals>.<listcomp>z  s#    JJJe/q99JJJr   r1   re  ry  r   r@  )r9   r}  r~  rF   s       r   $test_style_kwargs_linestyle_listlikezCTestNonuniformGeometryPlotting.test_style_kwargs_linestyle_listliket  s    
 ,++JJrJJJKrQ77Ka88GLLB!L44
 	? 	?B
 R^A.<<>>>>>>>	? 	?r   c                     | j                             d          }t          j                            dg|j        d                                                    d S )Nrg   r  r   )r7   r@   r5   rA   rB   rL   r  rE   s     r   r  z:TestNonuniformGeometryPlotting.test_style_kwargs_linewidth  sJ    W\\A\&&

%%qc2>!+<+K+K+M+MNNNNNr   c                 6   | j                             g d          | j                             g d          | j                            g d          fD ]A}t          j                            g d|j        d                                                    Bd S )N)rg   re   r  r  r   )r0  r@   r7   r5   rA   rB   rL   r  rE   s     r   $test_style_kwargs_linewidth_listlikezCTestNonuniformGeometryPlotting.test_style_kwargs_linewidth_listlike  s     K44K44GLLKKKL00
 	 	B
 J))R^A.==??   	 	r   c                     | j                             d          }t          j                            dg|j        d                                                    d S )Nr   r   r   )r7   r@   r5   rA   rB   rL   r   rE   s     r   r   z6TestNonuniformGeometryPlotting.test_style_kwargs_alpha  sJ    W\\\$$

%%seR^A->-H-H-J-JKKKKKr   N)r6  r7  r8  r<   r4  r   r  r   r9  skiprF  r  rI  r   r  r   r   r8  r8  I  s        O O ON N N5 5 5
J 
J 
J [U   	? 	? 	?O O O
 [U   	 	 	L L L L Lr   r8  class)scopec                 ~   t          |           }|j        |j        dk             |j        _        |j        j                            d          |j        _        |j        j        j        }t          j	        |d         |d         g          }dt          j
        |t          j        z  dz            z  |j        _        dS )zJAttach naturalearth_lowres class attribute for unittest style setup_methodzNorth AmericazESRI:102008r1   r.   r  N)r   r   	continentclsnorthto_crs
north_projtotal_boundsr5   meancospir/   )naturalearth_lowresr   r7   boundsy_coords        r   _setup_class_geographic_aspectr[    s     
&	'	'Br|>?GK$[.55mDDGK[+Fgvay&),--G"&253!6777GKOOOr   r[  zpyproj not availablerA  c                       e Zd Zd Zd ZdS )TestGeographicAspectc                    | j         j                                        }|                                | j        k    sJ | j        j                                        }|                                dv sJ | j                                         }|                                | j        k    sJ | j                                        }|                                dv sJ | j                             d          }|                                | j        k    sJ | j                            d          }|                                dv sJ d S )Nequalr   pop_est)rQ  r,   r@   r4  r/   rS  )r9   rF   r^   r  r  s        r   	test_autozTestGeographicAspect.test_auto  s$   Z %%''}}$(****o&++--~~>1111Z__}}$(****o""$$~~>1111jooi((~~48++++o""9--~~>111111r   c                    | j         j                            d          }|                                dv sJ | j         j                            |d            |                                dv sJ | j         j                            d          }|                                dk    sJ | j         j                            |d            |                                dk    sJ | j        j                            d          }|                                dk    sJ | j        j                            |d            |                                dk    sJ | j                             d          }|                                dv sJ | j                             |d            |                                dv sJ | j                             d          }|                                dk    sJ | j                             |d            |                                dk    sJ | j                            d          }|                                dk    sJ | j                            |d            |                                dk    sJ | j                             dd          }|                                dv sJ | j                             d|d            |                                dv sJ | j                             dd          }|                                dk    sJ | j                             d|d            |                                dk    sJ | j                            dd          }|                                dk    sJ | j                            d|d            |                                dk    sJ d S )Nr`  )r3  r_  )rF   r3  r{   ra  )rQ  r,   r@   r4  rS  )r9   rF   r^   r  s       r   test_manualz TestGeographicAspect.test_manual  s   Z %%W%55}}.0000
  Bt 444}}.0000j!&&c&22~~3&&&&
  C 555~~3&&&&o&++3+77~~3&&&& %%T%:::~~3&&&&Z__G_,,}}.0000
2d+++}}.0000jooSo))~~3&&&&
3t,,,~~3&&&&o""#"..~~3&&&&D111~~3&&&&Z__Yw_77}}.0000
	b666}}.0000jooio44~~3&&&&
	c$777~~3&&&&o""9S"99~~3&&&&Y3t<<<~~3&&&&&&r   N)r6  r7  r8  rb  rd  r  r   r   r]  r]    s2        2 2 2$' $' $' $' $'r   r]  zGignore:Numba not installed. Using slow pure python version.:UserWarningc                       e Zd Zed             Zej        d             Zej        d             Zd Z	d Z
d Zd Zd Zd	 Zej                            d
ddg          d             Zd Zd Zd Zd Zd Zd Zd ZdS )TestMapclassifyPlottingc                     	 dd l }n$# t          $ r t          j        d           Y nw xY w|| _        t          |j        j                  | _        | j                            d           d S )Nr   mapclassifyUserDefined)	rh  ImportErrorr   r;  mcrs   classifiersCLASSIFIERSremove)rP  rh  s     r   setup_classz#TestMapclassifyPlotting.setup_class  s    	/ 	/ 	/ 	/.....	/{6BCC}-----s    ((c                    t          |          }t          j        ddt          |j                            |d<   t          j        dd|j        d                   |d<   t          j        dd|j        d                   |d<   t          j        dd	|j        d                   |d
<   t          j        |j        |j        d dd         d
f<   |S )Nir"   	NEGATIVESr   333333?low_valsr   mid_valsr   	high_valsr   rg   )r   r5   r   r   rk   r   r$  r   )r9   rX  r7   s      r   r7   zTestMapclassifyPlotting.df  s     *+++c2s28}}==;QRXa[99:S#rx{;;:+c3<<;/1vrxA+,	r   c                 2    t          |          }g d|d<   |S )N)gMbP?gMb`?g~jth?gMbp?g{Gzt?vals)r   )r9   nybb_filenamer7   s      r   nybbzTestMapclassifyPlotting.nybb  s%     }%%8886
	r   c                    t          j        d          5 }|                    ddddd          }d d d            n# 1 swxY w Y   d |                                                                D             }d	 t          | j                            |d         d
                                        d          dd          D             }||k    sJ d S )NTr~   ra  	QUANTILESr.   OrRdrJ   schemer   rQ   r   c                 6    g | ]}|                                 S r  r  r'   ts     r   r  z7TestMapclassifyPlotting.test_legend.<locals>.<listcomp>       DDD1!**,,DDDr   c                 T    g | ]%}|                     d           d         dd         &S |r   r1   splitr'   r   s     r   r  z7TestMapclassifyPlotting.test_legend.<locals>.<listcomp>  s?     
 
 
 GGCLLOAbD!
 
 
r   )r   
re   )	r   r   r@   r   r  r*  rk  	Quantilesr  )r9   r7   r   rF   r  r   s         r   r   z#TestMapclassifyPlotting.test_legend  s$   $D111 	Q t   B	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 ED(A(A(C(CDDD
 
**2i=A*>>??EEdKKABBO
 
 
 !!!!!!s   =AAc           
          |                     ddddddg di          }d	 |                                                                D             }g d}||k    sJ d S )
Nra  r{  r.   r|  Tr  )foobarbazrJ   r~  r   rQ   r   r  c                 6    g | ]}|                                 S r  r  r  s     r   r  z;TestMapclassifyPlotting.test_bin_labels.<locals>.<listcomp>  r  r   r@   r   r  r9   r7   rF   r  r   s        r   test_bin_labelsz'TestMapclassifyPlotting.test_bin_labels  s    WW!#8#8#89  
 
 ED(A(A(C(CDDD(((!!!!!!r   c                     t          j        t                    5  |                    ddddddddgi	           d d d            d S # 1 swxY w Y   d S )
Nra  r{  r.   r|  Tr  r  r  r  r   r   r   r@   r0  s     r   test_invalid_labels_lengthz2TestMapclassifyPlotting.test_invalid_labels_length"  s    ]:&& 	 	GG "%u~6    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s    AAAc                     |                     ddddd          }d |                                                                D             }g d}||k    sJ d S )	Nrq  FISHER_JENKSr.   r|  Tr}  c                 6    g | ]}|                                 S r  r  r  s     r   r  z@TestMapclassifyPlotting.test_negative_legend.<locals>.<listcomp>1  r  r   )z-10.00,  -3.41z -3.41,   3.30z  3.30,  10.00r  r  s        r   test_negative_legendz,TestMapclassifyPlotting.test_negative_legend-  sr    WW~PT  
 
 ED(A(A(C(CDDDIII!!!!!!r   c           	          |                     dddddddi          }d	 |                                                                D             }g d
}||k    sJ d S )Nrq  r  r.   r|  Tr  r  r  c                 6    g | ]}|                                 S r  r  r  s     r   r  z4TestMapclassifyPlotting.test_fmt.<locals>.<listcomp>>  r  r   )z-10,  -3z -3,   3z  3,  10r  r  s        r   test_fmtz TestMapclassifyPlotting.test_fmt5  s}    WW!)  
 
 ED(A(A(C(CDDD777!!!!!!r   c           	          |                     dddddddi          }d |                                                                D             }g d	}||k    sJ d S )
Nrq  r  r.   r|  Tintervalr  c                 6    g | ]}|                                 S r  r  r  s     r   r  z9TestMapclassifyPlotting.test_interval.<locals>.<listcomp>K  r  r   )z[-10.00,  -3.41]z( -3.41,   3.30]z(  3.30,  10.00]r  r  s        r   test_intervalz%TestMapclassifyPlotting.test_intervalB  s}    WW!#T*  
 
 ED(A(A(C(CDDDOOO!!!!!!r   r~  r  FISHERJENKSc                     |                     d|dd          }t          |                                                                          dk    sJ d S )Nrq  r.   T)rJ   r~  r   r   )r@   r   r   r  )r9   r~  r7   rF   s       r   test_scheme_name_compatz/TestMapclassifyPlotting.test_scheme_name_compatO  sN    WWK!DWII2==??,,..//1444444r   c                 J    | j         D ]}|                    d|d           d S )Nra  T)rJ   r~  r   )rl  r@   r9   r7   r~  s      r   test_schemesz$TestMapclassifyPlotting.test_schemesT  s=    & 	B 	BFGG9VDGAAAA	B 	Br   c                 `   |                     ddddddgidd	          }d
 |                                                                D             }d t          | j                            |d         ddg                                        d          dd          D             }||k    sJ d S )Nra  percentilesr.   pct2   d   r|  T)rJ   r~  r   classification_kwdsrQ   r   c                 6    g | ]}|                                 S r  r  r  s     r   r  zDTestMapclassifyPlotting.test_classification_kwds.<locals>.<listcomp>b  r  r   c                 T    g | ]%}|                     d           d         dd         &S r  r  r  s     r   r  zDTestMapclassifyPlotting.test_classification_kwds.<locals>.<listcomp>c  s?     
 
 
 GGCLLOAbD!
 
 
r   )r  r  re   )r@   r   r  r*  rk  Percentilesr  r  s        r   test_classification_kwdsz0TestMapclassifyPlotting.test_classification_kwdsY  s    WW !&S	 2  
 
 ED(A(A(C(CDDD
 
,,R	]S	,JJKKQQRVWW
 
 
 !!!!!!r   c                     t          j        t                    5  d}|                    d|ddd           d d d            d S # 1 swxY w Y   d S )Nzinvalid_scheme_*#&)(*#
gdp_md_estr.   r|  Tr}  r  r  s      r   test_invalid_schemez+TestMapclassifyPlotting.test_invalid_schemel  s    ]:&& 	W 	W-FGG<!&QUGVVV	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	Ws   AAAc                    t          j                    }ddlm}  ||          }|                    ddd          }t          j        t                    5  |                    ddd	|
          }ddd           dS # 1 swxY w Y   dS )zPass a 'cax' argument to 'df.plot(.)', that is valid only if 'ax' is
        passed as well (if not, a new figure is created ad hoc, and 'cax' is
        ignored)
        r   make_axes_locatableright5%皙?)sizepadra  r|  T)rJ   rQ   r   r  N)	r   r   mpl_toolkits.axes_grid1r  append_axesr   r   r   r@   )r9   r7   rF   r  dividerr  s         r   test_cax_legend_passingz/TestMapclassifyPlotting.test_cax_legend_passingq  s    
 XZZ??????%%b))!!'#!>>]:&& 	N 	N	tMMB	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	Ns   A==BBc                 ~   t          j        d          5 }|                    ddd          }ddd           n# 1 swxY w Y   t          |                                d                                          j        }t          |                                d                                          j        }t          ||z
            d	k    sJ t          j	                    \  }}d
dl
m}  ||          }	|	                    dddd          }
t          j        d          5 }|                    ddd|
|          }ddd           n# 1 swxY w Y   t          |d                                          j        }t          |d                                          j        }t          ||z
            d	k     sJ dS )zqPass a cax argument to 'df.plot(.)', the legend location must be
        aligned with those of main plot
        Tr~   ra  r|  r   N 
<colorbar>gư>r   r  r  r  r  fixed_colorbar)r  r  r  )rJ   rQ   r   r  rF   )r   r   r@   _get_axr   get_positionheightabsr   r   r  r  r  )r9   r7   r   rF   plot_heightlegend_heightr   r^   r  r  r  s              r   test_cax_legend_heightz.TestMapclassifyPlotting.test_cax_legend_height~  s<   
 $D111 	EQ	tDDB	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Ebmmoor22??AAH>>KKMMT;.//47777<>>S??????%%c**!!'#EU!VV$D111 	WQ''#RU'VVC	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	Wc2&&3355<%566CCEEL;.//$666666s   ;??%EEEc                   	 t          j        dd          dz  }|                    ddd|id          }t          j        g d	g d
g dg          	t	          	fd|j        d                                         D                       sJ g d}d |                                                                D             }||k    sJ g d}d |                                	                                D             |k    sJ |                    ddd|id          }t          j        g dg dg dg dg dg          	t	          	fd|j        d                                         D                       sJ g d}d |                                                                D             }||k    sJ d |                                	                                D             |k    sJ |                    ddd|id          }t          j        g dg dg dg          	t	          	fd|j        d                                         D                       sJ d  |                                                                D             }||k    sJ d! |                                	                                D             |k    sJ d S )"Nr1      r"   rs  ri  binsT)r~  r  r   g,z?g/lV^?g c?r   g ?g{is?g0"?r   gi7>[?g~8gDi?g].;1?r   c              3   p   K   | ]0}|k                         d                                           V  1dS r1   r  Nr   r  r'   zr   s     r   r)   z:TestMapclassifyPlotting.test_empty_bins.<locals>.<genexpr>  X       
 
 (]Q''++--
 
 
 
 
 
r   r   )
z
0.00, 0.10
0.10, 0.20
0.20, 0.30
0.30, 0.40
0.40, 0.50
0.50, 0.60
0.60, 0.70
0.70, 0.80
0.80, 0.90
0.90, 1.00c                 6    g | ]}|                                 S r  r  r  s     r   r  z;TestMapclassifyPlotting.test_empty_bins.<locals>.<listcomp>  r  r   )
r  r  r  gHMf?gI?gJ({?r   gB?gDi`?gǟlX?r   g(]?g\?g	/)?r   gK?gGS=?gTC?r   g*r9?gF^?gPT6,?r   gݯ|?g?g=ϟ6?r   g5(?gS<?g~[~l?r   c                 6    g | ]}|                                 S r  r  r'   r<  s     r   r  z;TestMapclassifyPlotting.test_empty_bins.<locals>.<listcomp>  1     
 
 
+/D$$&&
 
 
r   rt  r  r  r  r  c              3   p   K   | ]0}|k                         d                                           V  1dS r  r  r  s     r   r)   z:TestMapclassifyPlotting.test_empty_bins.<locals>.<genexpr>  r  r   )
z
-inf, 0.10r  r  r  r  r  r  r  r  r  c                 6    g | ]}|                                 S r  r  r  s     r   r  z;TestMapclassifyPlotting.test_empty_bins.<locals>.<listcomp>       EEE1!**,,EEEr   c                 6    g | ]}|                                 S r  r  r  s     r   r  z;TestMapclassifyPlotting.test_empty_bins.<locals>.<listcomp>  r  r   ru  r  r  r  c              3   p   K   | ]0}|k                         d                                           V  1dS r  r  r  s     r   r)   z:TestMapclassifyPlotting.test_empty_bins.<locals>.<genexpr>  r  r   c                 6    g | ]}|                                 S r  r  r  s     r   r  z;TestMapclassifyPlotting.test_empty_bins.<locals>.<listcomp>  r  r   c                 6    g | ]}|                                 S r  r  r  s     r   r  z;TestMapclassifyPlotting.test_empty_bins.<locals>.<listcomp>  r  r   )
r5   r6   r@   r   r   rL   rM   r   r  r  )
r9   r7   r  rF   r  r   legend_colors_expr^   r  r   s
            @r   test_empty_binsz'TestMapclassifyPlotting.test_empty_bins  s   yB"$WW !'	  
 
 8333333222
 
  
 
 
 
^A&5577
 
 
 
 
 	
 	
 	

 
 
 ED(A(A(C(CDDD
 
 

 
35==??3L3L3N3N
 
 
    gg !'	  
 
 8222333333222222
 
  
 
 
 
_Q'6688
 
 
 
 
 	
 	
 	


 
 
 FE(8(8(B(B(D(DEEE
 
36>>3C3C3M3M3O3O
 
 
    gg !'	  
 
 8333333333
 
  
 
 
 
_Q'6688
 
 
 
 
 	
 	
 	

 FE(8(8(B(B(D(DEEE
 
36>>3C3C3M3M3O3O
 
 
     r   c                 \   |                     ddd          }d |                                                                D             }g d}||k    sJ |                     dddddi	          }d
 |                                                                D             }g d}||k    sJ d S )Nrw  	quantilesT)r~  r   c                 6    g | ]}|                                 S r  r  r  s     r   r  zGTestMapclassifyPlotting.test_equally_formatted_bins.<locals>.<listcomp>  r  r   )
0.00, 0.00r  r  r  z
0.00, 0.01r  z{:.3f})r~  r   r  c                 6    g | ]}|                                 S r  r  r  s     r   r  zGTestMapclassifyPlotting.test_equally_formatted_bins.<locals>.<listcomp>  r  r   )z0.001, 0.002z0.002, 0.003z0.003, 0.003z0.003, 0.004z0.004, 0.005r  )r9   ry  rF   r  r   r^   s         r   test_equally_formatted_binsz3TestMapclassifyPlotting.test_equally_formatted_bins  s    YY  
 

 ED(A(A(C(CDDD
 
 
 !!!!ii;t%AR  
 
 FE(8(8(B(B(D(DEEE
 
 
 !!!!!!r   N)r6  r7  r8  classmethodro  r   fixturer7   ry  r   r  r  r  r  r  r9  r:  r  r  r  r  r  r  r  r  r  r   r   rf  rf    sm        . . [. ^  ^ ^  ^" " "" " "	 	 	" " "" " "" " " [X'FGG5 5 HG5B B B
" " "&W W W
N N N7 7 7,p p pd" " " " "r   rf  c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	TestPlotCollectionsc                 p   d| _         t          j        | j                   | _        t	          d t          | j                   D                       | _        t	          d t          | j                   D                       | _        t	          d t          | j                   D                       | _        d S )Nr.   c              3   6   K   | ]}t          ||          V  d S r$   r%   r&   s     r   r)   z3TestPlotCollections.setup_method.<locals>.<genexpr>(  r*   r   c                 D    g | ]}t          d |fd|dz   fd|fg          S rI  rJ  r&   s     r   r  z4TestPlotCollections.setup_method.<locals>.<listcomp>*  rK  r   c                 D    g | ]}t          d |fd|dz   fd|fg          S rI  )r   r&   s     r   r  z4TestPlotCollections.setup_method.<locals>.<listcomp>-  s7    LLLWq!fq!c'lQF344LLLr   )	r2   r5   r6   r-   r   r3   r4   rR  polygonsrA  s    r   r<   z TestPlotCollections.setup_method%  s    i''CCU46]]CCCCCOOtvOOO
 

 "LLeDFmmLLL
 
r   c                     ddl m} ddlm} t	          j                    \  }} ||| j                  }t          ||          sJ |                                  ||| j                  }t          | j
        |                                t          g| j
        z             |                                  ||| j        d          }t          | j
        |                                dg| j
        z             t          | j
        |                                dg| j
        z             |                                  ||| j        dd          }t          | j
        |                                dg| j
        z             t          | j
        |                                dg| j
        z             |                                  ||| j        g d          }t          | j
        |                                g d           t          | j
        |                                g d           |                                  ||| j        g d	          }t          | j
        |                                g d	           t          | j
        |                                g d	           |                                 t          j        t           t"          f          5   ||| j        d
           d d d            d S # 1 swxY w Y   d S )Nr   )PathCollection_plot_point_collectionr  ry   r   r  r   r  rV   r|   )r  r   rr  r{   r  r}   )matplotlib.collectionsr  geopandas.plottingr	  r   r   r4   
isinstanceclarK   r2   rM   rN   r  r   r   r   r   )r9   r  r	  r   rF   colls         r   test_pointszTestPlotCollections.test_points0  sc   999999======,..R%%b$+66$/////
 &%b$+66dfd1133m_tv5MNNN 	 &%b$+SAAAdfd1133cUTV^DDDdfd1133cUTV^DDD
 &%b$+PSTTTdfd1133cUTV^DDDdfd1133cUTV^DDD
 &%b$+___MMMdfd1133___EEEdfd1133___EEE
%%KTTT
 
 

 	F!!NNN	
 	
 	

 	F!!NNN	
 	
 	

 	 ]Iz233 	G 	G""2t{+FFFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	Gs   "LL
Lc                 n   ddl m} t          j                    \  }} ||| j        | j                  }|j                                         t          j                    } |t          j
        | j                  | j        dz
  z            }t          | j        |                                |           d S )Nr   r  r1   )r  r	  r   r   r4   r-   canvas	draw_idlerO   r5   r6   r2   rK   rM   )r9   r	  r   rF   r  rQ   rR   s          r   test_points_valuesz&TestPlotCollections.test_points_valuesh  s    ====== ,..R%%b$+t{CC
|~~$ry00DFQJ?@@dfd1133_EEEEEr   c                 
   ddl m} ddlm} t	          j                    \  }} ||| j                  }t          ||          sJ |                                  ||| j                  }t          | j
        |                                t          g| j
        z             |                                  ||| j        d          }t          | j
        |                                dg| j
        z             |                                  ||| j        dd          }t          | j
        |                                dg| j
        z             t          | j
        |                                dg| j
        z             |                                  ||| j        g d          }t          | j
        |                                g d           |                                  ||| j        g d	          }t          | j
        |                                g d	           |                                  ||| j        d
d          }t!          dd          }|                                d         }|d         |d         k    sJ |d         |d         k    sJ |                                 t%          j        t(          t*          f          5   ||| j        d           d d d            d S # 1 swxY w Y   d S )Nr   )LineCollection_plot_linestring_collectionr  ry   r   r  r
  r  z--r1   re  rm  r}   )r  r  r  r  r   r   rR  r  r  rK   r2   	get_colorrN   rb  rM   r  ru  r{  r   r   r   r   )r9   r  r  r   rF   r  r~  res_lss           r   test_linestringsz$TestPlotCollections.test_linestringsu  s^   999999BBBBBB,..R**2tz::$/////
 +*2tz::dfdnn..$&0HIII
 +*2tzEEEdfdoo//#@@@
 +*2tzSTWXXXdfd1133cUTV^DDDdfd1133cUTV^DDD
 +*2tzQQQdfdoo//AAA
**JTTT
 
 

 	FOONNN	
 	
 	

 	 +*2tzTUVWWW.x;;##%%a(ayF1I%%%%ayF1I%%%%
 ]Iz233 	K 	K''DJkJJJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	Ks   K88K<?K<c                    ddl m} t          j                    \  }} ||| j        | j                  }|j                                         t          j                    } |t          j
        | j                  | j        dz
  z            }t          | j        |                                |           |                                  ||| j        | j        d          }|j                                         t          j        d          } |t          j
        | j                  | j        dz
  z            }t          | j        |                                |           |                                  ||| j        | j        dd          }|j                                         t          j                    } |d          g}t          | j        |                                |dz             |                                 d S )	Nr   r  r1   RdBuro   r.   rh   r   )r  r  r   r   rR  r-   r  r  rO   r5   r6   r2   rK   r  r  )r9   r  r   rF   r  rQ   rR   s          r   test_linestrings_valuesz+TestPlotCollections.test_linestrings_values  s   BBBBBB,..R +*2tz4;GG
|~~$ry00DFQJ?@@dfdnn..@@@
 +*2tz4;VTTT
|F##$ry00DFQJ?@@dfdnn..@@@
 +*2tz4;QUVWWW
|~~477)dfdnn..!0CDDD
r   c                 l   ddl m} ddlm} t	          j                    \  }} ||| j                  }t          ||          sJ |                                  ||| j                  }t          | j
        |                                t          g| j
        z             t          |                                          dk    sJ |                                  ||| j        d          }t          | j
        |                                dg| j
        z             t          | j
        |                                dg| j
        z             |                                  ||| j        g d          }t          | j
        |                                g d           t          | j
        |                                g d           |                                  ||| j        g d          }t          | j
        |                                g d           t          | j
        |                                g d           |                                  ||| j        d          }t          | j
        |                                dg| j
        z             t          |                                          dk    sJ |                                  ||| j        dd	
          }t          | j
        |                                dg| j
        z             t          | j
        |                                d	g| j
        z             |                                 t          j        t"          t$          f          5   ||| j        d           d d d            d S # 1 swxY w Y   d S )Nr   )PatchCollection_plot_polygon_collectionr  ry   )r  rV   r   r  r  r   r  r}   )r  r!  r  r#  r   r   r  r  r  rK   r2   r   rN   r   r   r   r   r   r   )r9   r!  r#  r   rF   r  s         r   test_polygonsz!TestPlotCollections.test_polygons  s   ::::::??????,..R''DM::$00000
 ('DM::dfd0022]Odf4LMMM4%%''((A----
 ('DMEEEdfd0022SEDFNCCCdfd0022SEDFNCCC
 ('DMQQQdfd0022OOODDDdfd0022OOODDD
''MTTT
 
 

 	F  NNN	
 	
 	

 	F  NNN	
 	
 	

 	 ('DMSIIIdfd0022SEDFNCCC4%%''((A----
 ('DMSTWXXXdfd0022SEDFNCCCdfd0022SEDFNCCC
 ]Iz233 	K 	K$$RkJJJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	Ks   N))N-0N-c                    ddl m} t          j                    \  }} ||| j        | j                  }|j                                         t          j                    } |t          j
        | j                  | j        dz
  z            }t          | j        |                                |           |                                  ||| j        | j        d          }|j                                         t          j        d          } |t          j
        | j                  | j        dz
  z            }t          | j        |                                |           |                                  ||| j        | j        dd          }|j                                         t          j                    } |d          g}t          | j        |                                |dz             |                                  ||| j        | j        d	
          }|j                                         t          j                    } |t          j
        | j                  | j        dz
  z            }t          | j        |                                |           t          | j        |                                d	g| j        z             |                                 d S )Nr   r"  r1   r  ro   r.   rh   r   r  r  )r  r#  r   r   r  r-   r  r  rO   r5   r6   r2   rK   r   r  r   )r9   r#  r   rF   r  rQ   ru   s          r   test_polygons_valuesz(TestPlotCollections.test_polygons_values  s   ??????,..R ('DM4;GG
|~~T")DF++tvz:;;
dfd0022J??? 	 ('DM4;VTTT
|F##T")DF++tvz:;;
dfd0022J???
 ('DM4;QUVWWW
|~~d1ggY
dfd0022JNCCC
 ('DM4;RUVVV
|~~T")DF++tvz:;;
dfd0022J???dfd0022SEDFNCCC
r   N)
r6  r7  r8  r<   r  r  r  r  r$  r&  r  r   r   r   r   $  s        	
 	
 	
6G 6G 6Gp	F 	F 	F5K 5K 5Kn  :;K ;K ;Kz& & & & &r   r   c                       e Zd Zd Zd Zej        ZerOej	        
                    de           eddg          d                         Z eddg          d             Zd	 Zd
S )TestGeoplotAccessorc                     t          g d          t          dd          g}ddg}ddg}t          |||dd	          | _        t	          j        ||d
          | _        d S )Nr   r1   r.   rg   r"   r   )r,   r  yz	EPSG:4326)crsr  r*  )r   r
   r   r   rZ   	DataFramer7   )r9   
geometriesr  r*  s       r   r<   z TestGeoplotAccessor.setup_method0  sy    66677q!E
FH#!!44+
 
 
 ,QQ//00r   c                    |                                 } | j        j        d||d| |                                 } | j        j        d||d| |                                 } t	          | j        j        |          dd|i| |                                 } t	          | j        j        |          dd|i| dS )zCompare Figures.)kindrF   rF   Nr  )r   r7   r@   r   getattr)	r9   r0  fig_testfig_refkwargsax_pandas_1ax_geopandas_1ax_pandas_2ax_geopandas_2s	            r   compare_figuresz#TestGeoplotAccessor.compare_figures9  s    ''))9$;99&999 ))++=4N==f===''))#d##=={=f=== ))++$t$$AAA&AAAAAr   r0  r  r  )r  c                    ddl }ddg}dg}ddg}i }||v rk|j                            d          sPt          j        t
          d	
          5  | j                            |           ddd           n# 1 swxY w Y   dS n||v rddi}n||v rddd}|dk    rd|d<   |                     ||||           t          j
        d           dS )zTest Pandas kind.r   NkdedensitypiescatterhexbinscipyzNo module named 'scipy'r  r0  r*  r  r,  r"   gridsizer   )	importlibutil	find_specr   r   ModuleNotFoundErrorr   r@   r9  r   r   )	r9   r0  r2  r3  rC  _scipy_dependent_kinds_y_kinds	_xy_kindsr4  s	            r   test_pandas_kindz$TestGeoplotAccessor.test_pandas_kindI  s`    &+Y%7"wH"H-IF--- ~//88 +3L   1 1 40001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 F !!s"""--8##)+F:&  x&AAAIes   A33A7:A7c                     |                                 }| j                            |           |                                 } t          | j        j        d          |           t	          j        d           dS )zTest Geo kind.)rF   geor   N)r   r   r@   r1  r   r   )r9   r2  r3  r]   r^   s        r   test_geo_kindz!TestGeoplotAccessor.test_geo_kindd  ss     ##%%CHMMSM!!!""$$C)GDHM5))S1111Ier   c                 F   t          j        t          d          5  | j                            d           ddd           n# 1 swxY w Y   t          j        t
          d          5  | j        j                                         ddd           dS # 1 swxY w Y   dS )zTest invalid kinds.zerror is not a valid plot kindr  errorrA  Nz1'GeoplotAccessor' object has no attribute 'error')r   r   r   r   r@   AttributeErrorrO  rA  s    r   test_invalid_kindz%TestGeoplotAccessor.test_invalid_kindm  s   ]:-MNNN 	( 	(HMMwM'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(]E
 
 
 	" 	" HM!!!		" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s#   AAA*BBBN)r6  r7  r8  r<   r9  r   _pandas_kindsr  r   r9  r:  r   rJ  rM  rQ  r  r   r   r(  r(  /  s        1 1 1
B 
B 
B $1M $		 	 	7	7			7	7	7	 	 
8	7 
8	7	2 
		7	7	7	 	 
8	7	" " " " "r   r(  c                  <   t          g d          } t          g d          }t          | |gt          d                    }t          |ddgd          }t          | |gddg          }t          |ddgd          }|                    d	          }|j        d                                         }|                    |d         	          }|j        d                                         }t          j        	                    ||           |                    |d         j
        	          }|j        d                                         }	t          j        	                    ||	           |                    dd
          }|j        d                                         }|                    |d         d
          }|j        d                                         }t          j        	                    ||           |                    |d         j
        d
          }|j        d                                         }	t          j        	                    ||	           |                    |j        d
          }|j        d                                         }	t          j        	                    ||	           t          j        t          d          5  |                    t          j        g d          	          }ddd           dS # 1 swxY w Y   dS )z
    Check that the dataframe plot method returns same values with an
    input string (column in df), pd.Series, or np.array
    r   r  r  rj   r   r1   r+   r-   rI   T)rJ   r   zdifferent number of rowsr  r:  N)r   r   rs   r   r@   rL   rM   r5   rA   rB   r-   rk   r   r   r   r   )
r  r  r  r7   numeric_index_polysnumeric_index_dfrF   r   colors_seriescolors_arrays
             r   test_column_valuesrX  x  s    
)))	*	*B	)))	*	*Br2hd4jj111E	5QF;;	<	<B#RHQF;;;#1DQRTUPV$W$WXX 
	!	!B^A--//F	8	%	%BN1%4466MJ!!&-888	8+	,	,B>!$3355LJ!!&,777 
d	3	3B^A--//F	8$	7	7BN1%4466MJ!!&-888	8+	>	>B>!$3355LJ!!&,777 
		&6&<$		O	OB>!$3355LJ!!&,777 
z)C	D	D	D 1 1WWBHYYY//W001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   +LLLc                      ddl m}  ddlm} t	          dd                              d                              t          ddg                              d                    } ||          }t          ||           sJ |	                                }t          j        r7t          |j                  t          |j                  cxk    rdk    sn J d S t          |j                  t          |j                  cxk    rd	k    sn J d S )
Nr   )	PathPatch)_PolygonPatchg      $@)r   r  g      @      )matplotlib.patchesrZ  r  r[  r
   r  r  r   r  get_pathcompatGEOS_GE_390r   r   codes)rZ  r[  polygonpatchpaths        r   test_polygon_patchrg    s-    -,,,,,000000 	a4  ++J7H,I,I,P,PQT,U,UVV  M'""EeY'''''>>D <4=!!S__;;;;;;;;;;;;4=!!S__;;;;;;;;;;;;r   c                    ddl m} |j        }t          t          |          }t          t          j        t          j        |          |                     }t          |          t          |          k    s
J d            t          ||          D ]D\  }}||                    ||          k    s$J | d|                    ||                       EdS )aw  
    Asserts that the members of `collection` match the `expected_colors`
    (in order)

    Parameters
    ----------
    N : int
        The number of geometries believed to be in collection.
        matplotlib.collection is implemented such that the number of geoms in
        `collection` doesn't have to match the number of colors assignments in
        the collection: the colors will cycle to meet the needs of the geoms.
        `N` helps us resolve this.
    collection : matplotlib.collections.Collection
        The colors of this collection's patches are read from
        `collection.get_facecolors()`
    expected_colors : sequence of RGBA tuples
    alpha : float (optional)
        If set, this alpha transparency will be applied to the
        `expected_colors`. (Any transparency on the `collection` is assumed
        to be set in its own facecolor RGBA tuples.)
    r   )r   z0Different lengths of actual and expected colors!r   z != N)r   r   colorConvertermaptuplers   	itertoolsislicecycler   zipto_rgba)	r2   r  rR   r   r   convall_actual_colorsactualr   s	            r   rK   rK     s    , "!!!!! D }--MY-iom.L.LaPPQQ !!S%9%9999: :99   1?CC 
 
he<<<<<@@4<<<>>@@ =<<<
 
r   c                     t           j                            |           \  }}t           j                            |||          S )zConverts a linestyle string representation, namely one of:
        ['dashed',  'dotted', 'dashdot', 'solid'],
    documented in `Collections.set_linestyle`,
    to the form `onoffseq`.
    )r   rR  _get_dash_pattern_scale_dashes)rf  rg  offsetdashess       r   ru  ru    s9      %77	BBNFF))&&)DDDr   c                 x    t           j                            |                                           }|j        dz  S )z(Converts a markerstyle string to a path.rg   )r   markersMarkerStyler`  r   )markerstylerf  s     r   r   r     s3     ))+66??AAD=1r   c                 r    | j         D ]}|                                |k    r|c S t          d|           )z
    Helper function to not rely on the order of `fig.axes`.
    Previously, we did `fig.axes[1]`, but in matplotlib 3.4 the order switched
    and the colorbar ax was first and subplot ax second.
    zno ax found with label )r   	get_labelr   )r   r  rF   s      r   r  r    sM     h  <<>>U""III #
6u66
7
77r   c                 "    t          | d          S )Nr  )r  )r   s    r   r   r     s    3%%%r   r$   )Hrl  r   numpyr5   pandasrZ   shapely.affinityr   shapely.geometryr   r   r   r   r   r	   r
   r   r   geopandas._compat_compatra  	geopandasr   r   r   r  r   r   r;  r   usematplotlib.pyplotpyplotr   matplotlib.testing.decoratorsr   r   r  rj  r  r   rcParamsby_keyrn  rN   KeyErrorupdater    r<  rF  r  r  r  r)  r8  r[  r9  usefixturesskipif
HAS_PYPROJr]  r   rf  r   r(  rX  rg  rK   ru  r   r  r   r  r   r   <module>r     s{                # # # # # #
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # " " " " " 8 8 8 8 8 8 8 8 8 8 . . . . . .  V ..
 
u         SSSSSSSSNN   NNN   
? 1299;;E'N1%MM ? ? ?'(:;A>MMM?   .2 3 3 3Z$ Z$ Z$ Z$ Z$ Z$ Z$ Z$z	 	 	 	 	 	 	 	gS gS gS gS gS gS gS gST^S ^S ^S ^S ^S ^S ^S ^SB       $&
 &
 &
 &
 &
 &
 &
 &
R"N "N "N "N "N "N "N "NJNL NL NL NL NL NL NL NLx g8 8 8 9::))2HII3' 3' 3' 3' 3' 3' 3' JI ;:3'l M v" v" v" v" v" v" v" v"r	H H H H H H H HVF" F" F" F" F" F" F" F"R(1 (1 (1V< < <(%
 %
 %
 %
PE E E  	8 	8 	8& & & & &s$   3
A> >BB&-C C/.C/