o
    tBhLJ                     @   sB  d dl mZ d dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZ d dlmZmZ d dlmZmZmZmZmZmZ d d	lmZmZ d d
lmZ d dl m!Z!m"Z"m#Z#m$Z$ d dl%Z&d dl'Z'd dl(Z)d dl*m+Z+m,Z, dd Z-edgdgdddd Z.dd Z/dd Z0edgddddd Z1edgdddd d! Z2d"d# Z3ed$gdd%d&d'd( Z4ed)d*gd+d, Z5ed-ge6 d.krd nd/d0d1d2 Z7ed3gd4d5 Z8d6d7 Z9ed8gdd%d9d:id;d<d= Z:d>d? Z;e'j<=d@dAdBge'j<=dCg dDdEdF Z>dGdH Z?dIdJ Z@dKdL ZAe'j<=dMdNdOdP ZBdS )Q    )productN)cbook)
MouseEvent)LogNorm)BboxTransformedBbox)image_comparisonremove_ticks_and_titles)	axes_sizehost_subplotmake_axes_locatableGridAxesGrid	ImageGrid)AnchoredSizeBarAnchoredDirectionArrows)HBoxDivider)zoomed_inset_axes
mark_inset
inset_axesBboxConnectorPatch)assert_array_equalassert_array_almost_equalc               
      sT  t  \} }t|}||jddd|d|jddd|d|jddd|d|jddd|dd	 | j  | j } fd
d D }| j}|d jt	
d| ksRJ |d jt	
d| ks`J |d jt	
d| ksnJ |d jt	
d| ks|J |d j|d j t	
d| ksJ |d j|d j t	
d| ksJ |d j|d j t	
d| ksJ |d j|d j t	
d| ksJ |d j|d j  kr|d jksJ  J |d j|d j  kr|d jksJ  J |d j|d j  kr|d jksJ  J |d j|d j  kr%|d jks(J  J d S )Ntop333333?皙?)padsharexbottomleft)r   shareyright)mainr   r   r   r!   c                    s   i | ]	}| |   qS  )get_window_extent).0kaxsr#   y/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/mpl_toolkits/tests/test_axes_grid1.py
<dictcomp>*   s    z,test_divider_append_axes.<locals>.<dictcomp>r"   )pltsubplotsr   append_axescanvasdrawget_rendererdpiheightpytestapproxwidthy0y1x0x1)figaxdividerrendererbboxesr1   r#   r'   r)   test_divider_append_axes   s0   

&&&&..26r?   twin_axes_empty_and_removedpng   )
extensionstolc                  C   s  t jdddd g d} g d}tt|d t| d}|jdddd	d	d
 tt|| t| d D ]N\}\}}tt|d t| |}t|| }d|v rZ|j	d d  
d d|v rb|  d|v rp|j	d d  
d |jdd||r{d| nd d	d	d
 q4tjddd d S )N   )z	font.sizezxtick.labelsizezytick.labelsize)twinxtwinytwin) host invisibletwin removedtwin invisibleztwin removed
host invisiblerB            ?r   center)horizontalalignmentverticalalignmentrL   FrK   rJ   
rI   )wspacehspace)mplrcParamsupdater   lentext	enumerater   getattraxisset_visibleremover+   subplots_adjust)
generators	modifiershimodgentr#   r#   r)    test_twin_axes_empty_and_removed:   s0   



rg   c               	   C   sZ   t  } t| ddddddd}dtjd	d	 }|d
 j|dt d}|jd
 	| d S )No   rB   rB   rB   Lr   single)nrows_ncolsngrids
label_modecbar_location	cbar_modei'  
   r   nearest)interpolationnorm)
r+   figurer   nprandomrandimshowr   	cbar_axescolorbar)r:   gridZimr#   r#   r)   $test_axesgrid_colorbar_log_smoketestV   s   r   c                  C   s   t dd\} }|jddgddgddgd}t|ddd}t j||d tjtd	d
 t   W d    d S 1 s;w   Y  d S )NrB   r      )cz3%z70%)r5   r2   )caxzThis figure includes Axes)match)	r+   r,   scatterr   r{   r3   warnsUserWarningtight_layout)r:   r;   ptsr   r#   r#   r)   *test_inset_colorbar_tight_layout_smoketestf   s   
"r   zinset_locator.pngdefaultT)styleremove_textc               
   C   s$  t jddgd\} }tjddd}d}td}|j\}}||d	d	| d	d	| f< |j||d
dd t|ddd}|j||d
dd |j	
 jdd |j
 jdd d\}}	}
}|||	 ||
| t jdd t jdd t||ddddd t|jdddddddd}|| d S )Nr      figsizeaxes_grid/bivariate_normal.npyTnp_loadr         r      rr   lowerextentrs   origin   upper rightzoomloc   nbinsg      gg      gffffffFvisiblerM   none0.5loc1loc2fcecrN   lower centerr   r   r   	borderpadsepframeon)r+   r,   r   get_sample_datarv   zerosshapery   r   yaxisget_major_locator
set_paramsxaxisset_xlimset_ylimxticksyticksr   r   	transData
add_artistr:   r;   r}   r   Z2nynxaxinsr9   x2r7   y2asbr#   r#   r)   test_inset_locatorr   s:   



r   zinset_axes.pngc               
   C   s*  t jddgd\} }tjddd}d}td}|j\}}||d	d	| d	d	| f< |j||d
dd t|ddd|j	d}|j||d
dd |j
 jdd |j jdd d\}}	}
}|||	 ||
| t jdd t jdd t||ddddd t|jdddddddd}|| d S )Nr   r   r   r   Tr   r   r   r   rr   r   r         ?ri   )r5   r2   bbox_to_anchorbbox_transformr   r   r   Fr   rM   r   r   r   rN   r   r   r   )r+   r,   r   r   rv   r   r   ry   r   	transAxesr   r   r   r   r   r   r   r   r   r   r   r   r   r#   r#   r)   test_inset_axes   s>   




r   c               
   C   s  d} d}t j|| d\}}|dddd t|dddd}|j  t| jt	
d|d  d |d  d|d	  d |d	  ddf t|d
ddd}|j  t| jt	
d t|dddddd}|j  t| jt	
d|  |d  d|  |d	  d|  d	 |d  d|  d |d	  f t|dddd	d}t|ddd|jdd	d}|j  t| j| j tt t|d
ddd}W d    n1 sw   Y  tt t|d
d|jd}W d    d S 1 sw   Y  d S )Nd   )r   r   )r   r1   r   ?g       @r   )r5   r2   r   rB   z40%z30%)g(\?gQ?r   r   r   r   )   r   r   )r5   r2   r   r   r   g      i@g      Y@z35%z60%)r5   r2   r   r   z100%)r   r   gffffff?333333?)r5   r2   r   r   r   r   )皙?rN   )r5   r2   r   )r5   r2   r   )r+   r,   r_   r   r.   r/   r   get_positionextentsrv   arrayr   r   r3   raises
ValueErrorr   r   )r1   r   r:   r;   insins1ins2r#   r#   r)   test_inset_axes_complete   s^   



 $

"r   zfill_facecolor.pngmpl20)r   r   c                  C   s.  t dd\} }| dd tddD ]
}|| jd q|d j  tdddd}t	||d j
}t	||d j
}t||dddd	d
dd}|d |d | t|d ddd}|dd |dd t  jjg  t  jjg  t|d |ddddd t	||d j
}t	||d j
}	t||	dddd	d
dd}|d |d | t|d ddd}|dd |dd t  jjg  t  jjg  t|d |ddddd t	||d j
}
t	||d	 j
}t|
|dddd	d
dd}|d |d | t|d ddd}|dd |dd t  jjg  t  jjg  t|d |ddddd t	||d	 j
}t	||d j
}t||dddd	d
ddd	}|d |d	 | t|d	 ddd}|dd |dd |jg  |jg  t|d	 |dddddd d S )NrB   r   r   Fr   r   r   rM   r   rb)loc1aloc2aloc1bloc2br   r   r   )r   皙?r   r   y)r   r   r   r   r   	facecolor)r   r   r   r   g)r   r   r   r   r   color)r   r   r   r   )r   r   r   r   r   r   fill)r   r   r   r   r   )r+   r,   set_size_inchesranger   r]   
tick_rightr   from_extentsr   r   r   set_clip_on	add_patchr   r   r   gcaaxesr   	set_ticksr   )r:   r;   rc   bboxbbox1bbox2pr   bbox3bbox4bbox5bbox6bbox7bbox8r#   r#   r)   test_fill_facecolor   s|   



r   zzoomed_axes.pngzinverted_zoomed_axes.pngc                  C   s   t  \} }|g dg d |g d t|ddd}|g d t  \} }|g dg d |g d t|ddd}|g d d S )	NrB   rM   r   )rB   r   rB   r   g      @zlower rightr   )皙?ffffff?r   r  )r   rB   r   rB   )r  r   r  r   )r+   r,   plotr\   r   )r:   r;   inset_axr#   r#   r)   test_zooming_with_inverted_axesC  s   r  zanchored_direction_arrows.pngx86_64g{Gz?)rD   c                  C   s<   t  \} }|jtddd t|jdd}|| d S )Nrq   rq   rr   rs   XY)r+   r,   ry   rv   r   r   r   r   )r:   r;   simple_arrowr#   r#   r)   test_anchored_direction_arrowsR  s   r  z'anchored_direction_arrows_many_args.pngc                  C   sT   t  \} }|td t|jdddddddd	d
ddddddd}|| d S )Nr  ABr   redg      r   rM   Tgffffff?gQg{Gzr   	   rq   r   )r   r   aspect_ratior   r   r   alphasep_xsep_yback_length
head_widthhead_length
tail_width)r+   r,   ry   rv   onesr   r   r   )r:   r;   direction_arrowsr#   r#   r)   (test_anchored_direction_arrows_many_args\  s   
r  c                  C   sx   t  \} }t|}tddi |jddd}W d    n1 s#w   Y  | j  t	|j
ddjds:J d S )	Nzfigure.subplot.wspaceg{Gz?r!   z5%)sizeF)originalg@/Ċ?)r+   r,   r   rU   
rc_contextr-   r.   r/   rv   iscloser   r5   )r:   r;   r<   r   r#   r#   r)   test_axes_locatable_positioni  s   
r  zimage_grid.pngbbox_inchestight)r   r   savefig_kwargc                  C   sd   t dd} tdd}t|dddd}td	D ]}|| j| d
d || d	| qd S )Nr   r  rB   )r   r   rh   rM   rM   r   )rl   axes_padr   rr   r  ztest {0}{0})
rv   arangereshaper+   ru   r   r   ry   	set_titleformat)r~   r:   r|   rc   r#   r#   r)   test_image_grids  s   r)  c                  C   s   t jdd\} }|g dg d\}t|d}|g dg d t||dddd	d
 t|  | | j }t	j
|jg d d S )N)rE   r   r   r   )r   rB   r   r   rB   r   r   z0.3r   )g333331g+g@g@)r+   r,   r  r   r   r	   get_tightbboxr.   r0   rv   testingr   r   )r:   r;   lax_zoomr   r#   r#   r)   test_gettightbbox  s   

r.  click_onbigsmallzbig_on_axes,small_on_axes))r   r   )hostr2  )r2  parasite)r3  r2  )r3  r3  c                    st  t jddddd}t jdddddd}g   fd	d
}t  jd| | |f}dddd}d|v r8t  |d< d|v s@d|v rNtd|d< |d  |d< ||  | || | |dkrg||  }d}	n|| }d}	||d u rw|d }|j	
|	\}
}td|jj|
|dd}|| |dkrdnd}t |ksJ dd  D }||v sJ |dkr||v sJ dS dS )z2Test pick events on normal, host or parasite axes.)      ?r4  rN   r   )picker)r   r   r   r   )r   r5  c                    s     |  d S )N)append)eventreceived_eventsr#   r)   on_pick  s   z/test_picking_callbacks_overlap.<locals>.on_pick
pick_eventN)r   r2  r3  r   r2  r3  rh   r0  )333333?r<  )rN   rN   button_press_eventrB   )buttonr1  rM   c                 S   s   g | ]}|j qS r#   )artist)r%   r7  r#   r#   r)   
<listcomp>  s    z2test_picking_callbacks_overlap.<locals>.<listcomp>)r+   	Rectanglegcfr.   mpl_connectr   r   rH   r   r   	transformr   ru   pickrX   )big_on_axessmall_on_axesr/  r0  r1  r:  rectangles_on_axesr   
click_axesaxes_coordsxr   mexpected_n_eventsevent_rectsr#   r8  r)   test_picking_callbacks_overlap  sD   
rO  c            	   	   C   s   t dd} t dd}tdd\}\}}||  || d}t|dt|t	|t|gt
|tdt
|gd}||d	 ||d |j  | }| }|j|jkskJ |j|j td
ksxJ d S )N   )r   r   )r   r   rB   rM   rN   rh   )
horizontalverticalr   g|Gz?)rv   r%  r&  r+   r,   ry   r   SizeAxesXFixedAxesYScaledset_axes_locatornew_locatorr.   r/   r   r2   r5   r3   r4   )	arr1arr2r:   ax1ax2r   r<   p1p2r#   r#   r)   test_hbox_divider  s$   


r`  c                  C   s*   t  } tjjji f}t| dd|d}d S )Nrh   ri   )rl   
axes_class)r+   ru   mpl_toolkits
axes_grid1mpl_axesAxesr   )r:   ra  grr#   r#   r)   test_axes_class_tuple  s   rg  c                  C   st   t  } t| dddd}t||j t|jt|j t|t	|jd t| dddd}t|t	|jd dS )z:Test Grid axes_all, axes_row and axes_column relationship.rh   )rM   r   row	directioncolumnN)
r+   ru   r   r   axes_allaxes_rowrv   	transposeaxes_columnravel)r:   r|   r#   r#   r)   test_grid_axes_lists  s   rq  rj  )rh  rk  c                 C   s   t  }t|dd| d}dd t|jD }|d j|d jkr+|d j|d jk s-J |d j|d jkrA|d j|d jksCJ |d	 j|d jkrW|d	 j|d jksYJ d
S )z%Test positioning of the axes in Grid.rh   r#  ri  c                 S   s   g | ]}|  qS r#   )get_axes_locator)r%   r;   r#   r#   r)   r@    s    z+test_grid_axes_position.<locals>.<listcomp>rB   r   rM   r   N)r+   ru   r   rv   rp  rm  _nx_ny)rj  r:   r|   r   r#   r#   r)   test_grid_axes_position  s   ,,0ru  )C	itertoolsr   platform
matplotlibrU   matplotlib.pyplotpyplotr+   r   matplotlib.backend_basesr   matplotlib.colorsr   matplotlib.transformsr   r   matplotlib.testing.decoratorsr   r	   mpl_toolkits.axes_grid1r
   rS  r   r   r   r   r   (mpl_toolkits.axes_grid1.anchored_artistsr   r   $mpl_toolkits.axes_grid1.axes_dividerr   %mpl_toolkits.axes_grid1.inset_locatorr   r   r   r    mpl_toolkits.axes_grid1.mpl_axesrb  r3   numpyrv   numpy.testingr   r   r?   rg   r   r   r   r   r   r   r  machiner  r  r  r)  r.  markparametrizerO  r`  rg  rq  ru  r#   r#   r#   r)   <module>   sh     

)
,,

M




2