
    4hq              	          d dl mZ d dlZd dlZd dlZd dlmZ d dl	m
Z d dlmZ d dlmZ 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 d d	lmZmZmZm Z m!Z!m"Z" d d
l#m$Z$m%Z%m&Z&m'Z' d dl(m)Z)m*Z*m+Z+m,Z,m-Z- d dl.m/Z/ d dl0m1Z1m2Z2m3Z3m4Z4 d dl5Z6d dl7Z7d dl8Z9d dl:m;Z;m<Z< d Z= edgdgdd      d        Z>d Z?d Z@d ZA edgdd      d        ZB edgdd      d        ZCd  ZDd! ZE ed"gdd#$      d%        ZF ed&d'gd ej                         d(k(  rd nd)*      d+        ZH ed,g ej                         d(k(  rd nd-d.      d/        ZI ed0gd1      d2        ZJd3 ZK ed4gd#d5d6i7      d8        ZL ed9gd#d5d6i7      d:        ZMd; ZN ed<gdd#d5d6i=      d>        ZOd? ZPe7j                  j                  d@dAdBg      e7j                  j                  dCg dD      dE               ZS edFgdd#$      dG        ZTdH ZUdI ZVdJ ZWdK ZXe7j                  j                  dLdM      dN        ZYe7j                  j                  dOdPdeZdQfdRdSe[dTfdRdUe[dTff      dV        Z\e7j                  j                  dWdeZdXfdYe[dZfd[eZdXff      d\        Z] edg]      d^        Z^d_ Z_ ed`gdd$      da        Z` edbgdd#dcd      de        Zadf Zbdg Zc edhgd#1      di        Zddj Zey)k    )productN)cbook)
MouseEvent)LogNorm)CircleEllipse)BboxTransformedBbox)check_figures_equalimage_comparisonremove_ticks_and_titles)	axes_sizehost_subplotmake_axes_locatableGridAxesGrid	ImageGrid)AnchoredAuxTransformBoxAnchoredDrawingAreaAnchoredDirectionArrowsAnchoredSizeBar)DividerHBoxDividermake_axes_area_auto_adjustableSubplotDividerVBoxDivider)RGBAxes)zoomed_inset_axes
mark_inset
inset_axesBboxConnectorPatch)assert_array_equalassert_array_almost_equalc            
      `   t        j                         \  } }t        |      }||j                  ddd|      |j                  ddd|      |j                  ddd|      |j                  ddd|      d	}| j                  j                          |D ci c]  }|||   j                          }}| j                  }|d   j                  t        j                  d|z        k(  sJ |d   j                  t        j                  d|z        k(  sJ |d   j                  t        j                  d|z        k(  sJ |d   j                  t        j                  d|z        k(  sJ |d   j                  |d
   j                  z
  t        j                  d|z        k(  sJ |d
   j                  |d   j                  z
  t        j                  d|z        k(  sJ |d
   j                  |d   j                  z
  t        j                  d|z        k(  sJ |d   j                  |d
   j                  z
  t        j                  d|z        k(  sJ |d   j                  |d
   j                  cxk(  r|d   j                  k(  sJ  J |d   j                  |d
   j                  cxk(  r|d   j                  k(  sJ  J |d   j                  |d
   j                  cxk(  r|d   j                  k(  sJ  J |d   j                  |d
   j                  cxk(  r|d   j                  k(  sJ  J y c c}w )Ntop333333?皙?)padsharexbottomleft)r(   shareyright)mainr%   r*   r+   r-   r.   )pltsubplotsr   append_axescanvasdrawget_window_extentdpiheightpytestapproxwidthy0y1x0x1)figaxdivideraxskbboxesr5   s          RD:\jyotish\venv\Lib\site-packages\mpl_toolkits/axes_grid1/tests/test_axes_grid1.pytest_divider_append_axesrE   $   s	   llnGC!"%G""5#3r"B%%hR%H##FCS#D$$Wcs2$FC JJOO589SaQ))++SF9
''C%=6==s#;;;;(""fmmC#I&>>>>&>6==s#;;;;'?  FMM#)$<<<<%=fVn///6==s3KKKK&>vh/222fmmC#I6NNNN&>vf~000FMM#)4LLLL'?v 1 11V]]395MMMM&>v 1 1GVG_5G5GGGGGG&>v 1 1GVG_5G5GGGGGG%=vf~00GF84D4G4GGGGGG%=vf~00GF84D4G4GGGGGG :s   L+twin_axes_empty_and_removedpng   )classic_classic_test_patch)
extensionstolstylec                     t         j                  j                  dddd       g d} g d}t        t	        |      dz   t	        |       d      }|j                  dddd	d	
       t        t        ||       t	        |       dz         D ]  \  }\  }}t        t	        |      dz   t	        |       |      } t        ||             }d|v r|j                  d d  j                  d       d|v r|j                          d|v r|j                  d d  j                  d       |j                  dd||rd|z   ndz   d	d	
        t        j                  dd       y )N   )z	font.sizezxtick.labelsizezytick.labelsize)twinxtwinytwin) host invisibletwin removedtwin invisibleztwin removed
host invisiblerH            ?r   center)horizontalalignmentverticalalignmentrV   FrU   rT   
rS   )wspacehspace)mplrcParamsupdater   lentext	enumerater   getattraxisset_visibleremover/   subplots_adjust)
generators	modifiershimodgents          rD    test_twin_axes_empty_and_removedrq   @   sI    LLA!DF+J1I 	S^A%s::AFF3^'8  E #79j#A#&z?Q#68:CY)3z?A>GAsOs"FF1I!!%(S HHJs"FF1I!!%(	sCcs
r:#+x 	 	I8 s1-    c                     t        d      } t        j                  t        j                        5  | j                  g dg ddd       d d d        | j                         }|j                  g d       | j                         d   j                         dk(  sJ |j                         d   j                         d	k(  sJ y # 1 sw Y   yxY w)
No   )r   rH   rW   FT)xdateydate)abcr   z00:00:00rw   )
r   r7   warnsr_   MatplotlibDeprecationWarning	plot_daterP   plotget_yticklabelsget_text)hostrR   s     rD   test_twin_axes_both_with_unitsr   ]   s    D	c66	7y)5E 
8::<DIIo!!$--/:===!!$--/3666 
8	7s   CC
c            	         t        j                         } t        | dddddd      }dt        j                  j                  d	d	      z  }|d
   j                  |dt                     }|j                  d
   j                  |       y )Nrt   rH   rH   rH   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ims       rD   $test_axesgrid_colorbar_log_smoketestr   g   sv    
**,CC &""'&D 			r2&&A	a	CBNN1r"rr   c                  <   t        j                  dd      \  } }|j                  ddgddgddg      }t        |dd      }t        j                  ||       t        j                  t        d	
      5  t        j                          d d d        y # 1 sw Y   y xY w)NrH   r      )ry   z3%z70%r9   r6   )caxzThis figure includes Axesmatch)	r/   r0   scatterr    r   r7   rz   UserWarningtight_layout)r>   r?   ptsr   s       rD   *test_inset_colorbar_tight_layout_smoketestr   w   sz    ll1a GC
**aVaV1v*
.C
RtE
2CLL#	k)D	E 
F	E	Es   4BBzinset_locator.pngdefaultT)rM   remove_textc            
         t        j                  ddg      \  } }t        j                  d      }d}t	        j
                  d      }|j                  \  }}||dd|z   dd|z   f<   |j                  ||dd	
       t        |dd      }|j                  ||dd	
       |j                  j                         j                  d       |j                  j                         j                  d       d\  }}	}
}|j                  ||	       |j                  |
|       t        j                  d       t        j                   d       t#        ||dddd       t%        |j&                  ddddddd      }|j)                  |       y )Nr      figsizeaxes_grid/bivariate_normal.npyr         r      r   lowerextentr   origin   upper rightzoomloc   nbinsg      gg      gffffffFvisiblerW   none0.5loc1loc2fcecrX   lower centerr'   r   r(   	borderpadsepframeon)r/   r0   r   get_sample_datar   zerosshaper   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axinsr=   x2r;   y2asbs                rD   test_inset_locatorr      sp   llAq6*GC 	>?AF	*	BWWFBBr"R%xBrEIIby   bqm<E	LLF)  !	KK!!#..Q.7	KK!!#..Q.7+NBB	NN2r	NN2rJJuJJu r5qqV>
",,,!Sa"')C MM#rr   zinset_axes.pngc            
      .   t        j                  ddg      \  } }t        j                  d      }d}t	        j
                  d      }|j                  \  }}||dd|z   dd|z   f<   |j                  ||dd	
       t        |ddd|j                        }|j                  ||dd	
       |j                  j                         j                  d       |j                  j                         j                  d       d\  }}	}
}|j                  ||	       |j                  |
|       t        j                   d       t        j"                  d       t%        ||dddd       t'        |j(                  ddddddd      }|j+                  |       y )Nr   r   r   r   r   r   r   r   r   r         ?r   )r9   r6   bbox_to_anchorbbox_transformr   r   r   Fr   rW   r   r   r   rX   r   r'   r   )r/   r0   r   r   r   r   r   r   r    	transAxesr   r   r   r   r   r   r   r   r   r   r   r   r   s                rD   test_inset_axesr      s}   llAq6*GC 	>?AF	*	BWWFBBr"R%xBrEIIby   rBv&(ll4E 
LLF)  !	KK!!#..Q.7	KK!!#..Q.7+NBB	NN2r	NN2rJJuJJu r5qqV>
",,,!Sa"')C MM#rr   c            	         d} d}t        j                  ||       \  }}|j                  dddd       t        |ddd      }|j                  j                          t        |j                         j                  d|d   z  dz
  |d   z  d|d	   z  dz
  |d	   z  ddg       t        |d
dd      }|j                  j                          t        |j                         j                  g d       t        |ddddd      }|j                  j                          t        |j                         j                  d| z  |d   z  d| z  |d	   z  d| z  d	z   |d   z  d| z  dz   |d	   z  g       t        |dddd	      }t        |ddd|j                  dd	      }|j                  j                          t        |j                         j                  |j                         j                         t        j                  t              5  t        |d
dd      }d d d        t        j                  t              5  t        |d
d|j                        }d d d        y # 1 sw Y   ExY w# 1 sw Y   y xY w)Nd   )r   r   )r   r5   r'   ?g       @r   )r9   r6   r   rH   z40%z30%)g(\?gQ?r   r   r   r&   )   r   r   )r9   r6   r   r   r   r   z35%z60%)r9   r6   r   r   z100%)r   r   gffffff?333333?)r9   r6   r   r   r   r   )皙?rX   )r9   r6   r   )r9   r6   r   )r/   r0   ri   r    r2   r3   r#   get_positionextentsr   r"   r7   raises
ValueErrorrz   r   )r5   r   r>   r?   insins1ins2s          rD   test_inset_axes_completer      sD   
CGll74GCBB'
Rr"
:CJJOO""
gaj.
WQZ	'#gaj.*;WQZ)G	c	
 RuUa
@CJJOO""$BD Rr#ja)CJJOO""	S	SWWQZ/
c'!)WQZ	#c'#+wqz!9	;<
 beaHDbv%5%'\\qAGD JJOOt((*22((*224 
z	"5(24 
# 
k	"5(*6 
#	"	 
#	" 
#	"s   	I:I)I&)I2c                      t        j                         \  } }t        |dd       t        j                         }| j                  |d       y )Ng?r   r   tight)bbox_inches)r/   r0   r    ioBytesIOsavefig)r>   r?   fs      rD   test_inset_axes_tightr     s8    llnGCrS)


AKKwK'rr   zfill_facecolor.pngmpl20)r   rM   c                  	   t        j                  dd      \  } }| j                  dd       t        dd      D ]   }||   j                  j                  d       " |d   j                  j                          t        j                  dddd      }t        ||d   j                        }t        ||d   j                        }t        ||dddd	d
d      }|j                  d       |d   j                  |       t        |d   dd      }|j                  dd       |j!                  dd       t        j"                         j$                  j&                  j)                  g        t        j"                         j$                  j                  j)                  g        t+        |d   |dddd       t        ||d   j                        }t        ||d   j                        }	t        ||	dddd	d
d      }|j                  d       |d   j                  |       t        |d   dd      }|j                  dd       |j!                  dd       t        j"                         j$                  j&                  j)                  g        t        j"                         j$                  j                  j)                  g        t+        |d   |dddd       t        ||d   j                        }
t        ||d	   j                        }t        |
|dddd	d
d      }|j                  d       |d   j                  |       t        |d   dd      }|j                  dd       |j!                  dd       t        j"                         j$                  j&                  j)                  g        t        j"                         j$                  j                  j)                  g        t+        |d   |dddd       t        ||d	   j                        }t        ||d   j                        }t        ||dddd	d
dd	      }|j                  d       |d	   j                  |       t        |d	   dd      }|j                  dd       |j!                  dd       |j&                  j)                  g        |j                  j)                  g        t+        |d	   |ddddd       y )NrH   r   r   Fr   r   r   rW   r   rrx   )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/   r0   set_size_inchesranger   rg   
tick_rightr	   from_extentsr
   r   r!   set_clip_on	add_patchr   r   r   gcaaxesr   	set_ticksr   )r>   r?   rm   bboxbbox1bbox2pr   bbox3bbox4bbox5bbox6bbox7bbox8s                 rD   test_fill_facecolorr!    s   ll1a GC11a[
1& qEKKQQ,D D"Q%//2ED"Q%//2EuAQaq3	A MM%qEOOAbeQM:E	NN1c	NN1cGGINN""2&GGINN""2&r!ue!!> D"Q%//2ED"Q%//2EuAQaq#	A MM%qEOOAbeQM:E	NN1c	NN1cGGINN""2&GGINN""2&r!ue!!suE D"Q%//2ED"Q%//2EuAQaqc	A MM%qEOOAbeQM:E	NN1c	NN1cGGINN""2&GGINN""2&r!ue!!35A D"Q%//2ED"Q%//2EuAQaq3U	$A MM%qEOOAbeQM:E	NN1c	NN1c	KK"	KK"r!ue!!EJrr   zzoomed_axes.pngzinverted_zoomed_axes.pngx86_64{Gz?)rM   rL   c                     t        j                         \  } }|j                  g dg d       |j                  g d       t	        |dd      }|j                  g d       t        j                         \  } }|j                  g dg d       |j                  g d       t	        |dd      }|j                  g d       y )	NrH   rW   r   )rH   r   rH   r         @lower rightr   )皙?ffffff?r(  r)  )r   rH   r   rH   )r)  r(  r)  r(  )r/   r0   r}   rf   r   )r>   r?   inset_axs      rD   test_zooming_with_inverted_axesr+  [  s     llnGCGGIy!GGL #=AHMM&'llnGCGGIy!GGL #=AHMM&'rr   zanchored_direction_arrows.pngg{Gz?)rL   rM   c                      t        j                         \  } }|j                  t        j                  d      d       t        |j                  dd      }|j                  |       y )Nr   r   r   r   XY)r/   r0   r   r   r   r   r   r   )r>   r?   simple_arrows      rD   test_anchored_direction_arrowsr2  m  sJ     llnGCIIbhhx 	I:*2<<cBLMM,rr   z'anchored_direction_arrows_many_args.png)rM   c                      t        j                         \  } }|j                  t        j                  d             t        |j                  dddddddd	d
dddddd      }|j                  |       y )Nr-  ABr   redg      r   rW   Tgffffff?gQg{Gzr'   	   r   r   )r   r  aspect_ratior(   r   r   alphasep_xsep_yback_length
head_widthhead_length
tail_width)r/   r0   r   r   onesr   r   r   )r>   r?   direction_arrowss      rD   (test_anchored_direction_arrows_many_argsrB  y  sj     llnGCIIbggh .LL#sU3!Tu#!q	*
 MM"#rr   c                  ^   t        j                         \  } }t        |      }t        j                  ddi      5  |j                  dd      }d d d        | j                  j                          t        j                  j                  d      j                  d      sJ y # 1 sw Y   VxY w)	Nzfigure.subplot.wspacer#  r-   z5%)sizeF)originalg@/Ċ?)r/   r0   r   r_   
rc_contextr1   r2   r3   r   iscloser   r9   )r>   r?   r@   r   s       rD   test_axes_locatable_positionrH    s    llnGC!"%G	0$7	8!!'!5 
9JJOO::c&&&6<<)+ + + 
9	8s   B##B,z'image_grid_each_left_label_mode_all.pngr   r   )rM   savefig_kwargc            
         t        j                  d      j                  d      } t        j                  dd      }t        |ddddd	d
d      }t        |j                         t              sJ |j                         dk(  sJ |j                         sJ t        ||j                        D ])  \  }}|j                  | d      }|j                  |       + y )Nr   r-  rH   r   r   rH   rH   rH   )r   rW   )rX   333333?eachr+   z15%all)r   axes_padr   r   	cbar_sizer   r   r.  )r   arangereshaper/   r   r   
isinstanceget_dividerr   get_axes_pad
get_aspectzipr   r   r   )imdatar>   r   r?   r   r   s         rD   (test_image_grid_each_left_label_mode_allrZ    s     YYs^##H-F
**Q
CS)*%Vu %'D d&&(.999*,,,??tT^^,CYYvVY4R -rr   z)image_grid_single_bottom_label_mode_1.pngc                  j   t        j                  d      j                  d      } t        j                  dd      }t        |ddddd	d
dd	      }t        |j                               t        u sJ t        d      D ]  }||   j                  | d      } |j                  d   j                         y )Nr   r-  rH   )r&  g      ?r   r   rH   rH   )rH   r   )r  g333333?r   rM  r*   z10%1)r   rP  r   cbar_padr   rQ  r   r   r   r.  r   )r   rR  rS  r/   r   r   typerU  r   r  r   r   r   )rY  r>   r   rm   r   s        rD   test_image_grid_single_bottomr`    s     YYs^##H-F
**Q

#CS,F)X#+uND   "#w...1X!W^^F&^9 NN1r"rr   c                      t        j                         } t        j                  t        d      5  t        | ddd       d d d        y # 1 sw Y   y xY w)Nz#'foo' is not a valid value for moder   r\  )rW   rH   foo)r   )r/   r   r7   r   r   r   )r>   s    rD   "test_image_grid_label_mode_invalidrc    s7    
**,C	z)N	O#|V> 
P	O	Os   A		Azimage_grid.png)r   rM   rI  c                     t        j                  d      j                  d      } t        j                  dd      }t        |ddd      }|j                         d	k(  sJ t        d
      D ]  }||   j                  | d        y )Nr   r-  rH   r   r   rt   rW   rW   r'   )r   rP  )r'   r'   r   r   r.  )	r   rR  rS  r/   r   r   rV  r  r   )r   r>   r   rm   s       rD   test_image_gridrg    su    
 
3			)B
**Q
CS#6C@D*,,,1XQr3 rr   c                     t        j                  d      \  } }|j                  g dg d      \  }t        |d      }|j                  g dg d       t	        ||dddd	
       t        |        | j                  | j                  j                               }t        j                  j                  |j                  g d       y )N)rO   r   r   r%  )r   rH   r   r   rH   r   r   z0.3r   )g333331g+g@g@)r/   r0   r}   r   r   r   get_tightbboxr2   get_rendererr   testingr#   r   )r>   r?   lax_zoomr  s        rD   test_gettightbboxrn    s    ll6*GC	I	&BAA&GLLI&r7v%@C SZZ4467DJJ(()ACrr   click_onbigsmallzbig_on_axes,small_on_axes))r  r  )r   r   )r   parasite)rr  r   )rr  rr  c                 L   t        j                  dddd      }t        j                  ddddd      }g fd	}t        j                         j                  j	                  d
|       | |f}dddd}d|v rt        j
                         |d<   d|v sd|v r$t        d      |d<   |d   j                         |d<   ||    j                  |       ||   j                  |       |dk(  r||    }d}	n||   }d}	||d   u r|d   }|j                  j                  |	      \  }
}t        d|j                  d      j                  |
|d      }|j                  |       |dk(  rdnd}t              |k(  sJ D cg c]  }|j                   }}||v sJ |dk(  r||v sJ yyc c}w )z2Test pick events on normal, host or parasite axes.)      ?rt  rX   r   )picker)r   r   r  r  )r
  ru  c                 (    j                  |        y )N)append)eventreceived_eventss    rD   on_pickz/test_picking_callbacks_overlap.<locals>.on_pick  s    u%rr   
pick_eventN)r  r   rr  r  r   rr  rt   rp  )rM  rM  )rX   rX   button_press_eventT)rootrH   )buttonrq  rW   )r/   	Rectanglegcfr2   mpl_connectr  r   rR   r  r   	transformr   
get_figurepickrb   artist)big_on_axessmall_on_axesro  rp  rq  rz  rectangles_on_axesr  
click_axesaxes_coordsxr	  mexpected_n_eventsrx  event_rectsry  s                   @rD   test_picking_callbacks_overlapr    s     --c3q
9CMM*c3#aHEO&GGI  w7%}548D""ggiU##z5G'G#C(V<,,.Z$!!%(5+&
 -(
 T*%%&\
!!++K8FQ')>)>D)>)I)P)PRSUV	AOOA%0a#4444-<=_E5<<_K=+7###  >s   9F!zanchored_artists.pngc                     t        j                  d      \  } }t        ddddddd	      }t        d
d      }|j                  j                  |       t        ddd      }|j                  j                  |       |j                  |       t        |j                  d      }t        ddddd      }|j                  j                  |       |j                  |       t        |j                  dddd      }t        dddd      }|j                  j                  |       |j                  |       t        |j                  dd d!d"dd#dddd$did%d&'      }|j                  |       y )(NrK  r   (      r   r   g        F)r   r(   r   r-  r   )r   r   r   r  )r   
upper leftr  )r   r   r'   r   r   cyan)r9   r6   angler  z
lower leftTrX   )r   r   r(   r   rt  i)r9   r6   r  r  z	0.2 unitsr'  rM  r   rD  g?green)
r   r(   r   r   fill_barr   	label_toppropsize_verticalr  )
r/   r0   r   r   drawing_arear   r   r   r   r   )r>   r?   adap1p2boxelr   s           rD   test_anchored_artistsr    sE   ll6*GC
b"a2&+-C	"	B#	!	$B#MM#
!",,L
AC	s3b	GB#MM#
 "",,L$&)S:C	s4s	;B#MM#
",,\}!Sa$"'4vrl(,G=C MM#rr   c            
         t        j                  d      j                  d      } t        j                  d      j                  d      }t        j                  dd      \  }\  }}|j                  |        |j                  |       d}t        |dt        j                  |      t        j                  |      t        j                  |      gt        j                  |      t        j                  d      t        j                  |      g      }|j                  |j                  d	             |j                  |j                  d             |j                  j                          |j!                         }|j!                         }|j"                  |j"                  k(  sJ |j$                  |j$                  z  t'        j(                  d
      k(  sJ y Nr  )r   r   )r   r   rH   rW   rX   rt   )
horizontalverticalr   g|Gz?)r   rR  rS  r/   r0   r   r   SizeAxesXFixedAxesYScaledset_axes_locatornew_locatorr2   r3   r   r6   r9   r7   r8   	arr1arr2r>   ax1ax2r(   r@   r  r  s	            rD   test_hbox_dividerr  1  sS   99R=  (D99R=  (Dll1a(OC#sJJtJJt
CSJJsOTZZ_djjoF**S/4;;q>4::c?CEG ,,Q/0,,Q/0JJOO				B				B99		!!!88bhh&--"====rr   c            
         t        j                  d      j                  d      } t        j                  d      j                  d      }t        j                  dd      \  }\  }}|j                  |        |j                  |       d}t        |dt        j                  |      t        j                  d      t        j                  |      gt        j                  |      t        j                  |      t        j                  |      g      }|j                  |j                  d	             |j                  |j                  d             |j                  j                          |j!                         }|j!                         }|j"                  |j"                  k(  sJ |j$                  |j$                  z  t'        j(                  d
      k(  sJ y r  )r   rR  rS  r/   r0   r   r   r  r  r  r  r  r  r  r2   r3   r   r9   r6   r7   r8   r  s	            rD   test_vbox_dividerr  H  sS   99R=  (D99R=  (Dll1a(OC#sJJtJJt
CSJJsOT[[^TZZ_E**S/4::c?DJJsODFG ,,Q/0,,Q/0JJOO				B				B88rxx99ryy FMM,$????rr   c                      t        j                         } t        j                  j                  j
                  i f}t        | dd|      }y )Nrt   r   )r   
axes_class)r/   r   mpl_toolkits
axes_grid1mpl_axesAxesr   )r>   r  grs      rD   test_axes_class_tupler  _  s9    
**,C))2277<J	#s:	FBrr   c                     t        j                         } t        | ddd      }t        ||j                         t        |j
                  t        j                  |j                               t        |t        j                  |j
                        d       |j                         dk(  sJ t        | ddd      }t        |t        j                  |j                        d       y)z:Test Grid axes_all, axes_row and axes_column relationship.rt   rW   r   row	directioncolumnN)r/   r   r   r"   axes_allaxes_rowr   	transposeaxes_columnravelget_geometry)r>   r   s     rD   test_grid_axes_listsr  e  s    
**,CS&E2DtT]]+t}}bll43C3C&DEtRXXdmm4e<&(((S&H5DtRXXd&6&67Brr   r  )r  r  c                    t        j                         }t        |dd|       }t        j                  |j
                        D cg c]  }|j                          }}|d   j                  d   |d   j                  d   kD  sJ |d   j                  d   |d   j                  d   k(  sJ |d   j                  d   |d   j                  d   k(  sJ |d   j                  d   |d   j                  d   k  sJ |d   j                  d   |d   j                  d   k(  sJ |d   j                  d   |d   j                  d   k(  sJ yc c}w )	z%Test positioning of the axes in Grid.rt   rf  r  rH   r   rW   r   N)r/   r   r   r   r  r  get_axes_locatorargs)r  r>   r   r?   r   s        rD   test_grid_axes_positionr  q  s5    **,CS&I6D+-88DMM+B
C+BR2 +BC
Cq6;;q>CFKKN***q6;;q>SV[[^+++q6;;q>SV[[^+++q6;;q>CFKKN***q6;;q>SV[[^+++q6;;q>SV[[^+++ Ds   E	zrect, ngrids, error, messager   zIncorrect rect formatrt   zngrids must be positiver   c                     t        j                         }t        j                  ||      5  t	        || d|       d d d        y # 1 sw Y   y xY w)Nr   r  )r   )r/   r   r7   r   r   )rectr   errormessager>   s        rD   test_grid_errorsr    s7     **,C	uG	,S$v. 
-	,	,s   AAzanchor, error, messagezanchor must be strCCz$'CC' is not a valid value for anchorrL  c           	          t        j                         }t        j                  ||      5  t	        |g dt        j                  d      gt        j                  d      g|        d d d        y # 1 sw Y   y xY w)Nr   r\  rH   )anchor)r/   r   r7   r   r   r  r  )r  r  r  r>   s       rD   test_divider_errorsr    sP     **,C	uG	,\DJJqM?TZZ]O	 
-	,	,s   ;A00A9)rK   c                 h   | j                  dd      \  }}|j                  ddgddg       |j                  dd       t        ||dd       |j                  dd      \  }}|j                  ddgddg       |j                  dd       t        ||dd       |j                  j                          y )NrH   rW   r   r   )rH   rW   )xlimylimr   )r0   r}   setr   r2   r3   )fig_testfig_refinsetfulls       rD    test_mark_inset_unstales_viewlimr    s    ##Aq)KE4IIq!fq!f	II6I'tUAq!""1a(KE4IIq!fq!f	II6I'tUAq!NNrr   c                     t        j                         } | j                  g d      }d}t        ||       | j                  j                          |j                         }|j                  t        j                  || j                  z        k(  sJ |j                  t        j                  | j                  j                  || j                  z  z
        k(  sJ |j                  t        j                  || j                  z        k(  sJ |j                  t        j                  | j                  j                   || j                  z  z
        k(  sJ y )Nr\  r'   r(   )r/   r   add_axesr   r2   r3   ri  r<   r7   r8   r5   r=   r  r9   r:   r;   r6   )r>   r?   r(   tbbs       rD   test_auto_adjustabler    s    
**,C	l	#B
C"23/JJOO



C66V]]3=111166V]]388>>C#''M#ABBBB66V]]3=111166V]]388??S377]#BCCCCrr   zrgb_axes.pngc                     t        j                         } t        | dd      }t        j                  j                  d      }|j	                  d      }|j	                  d      }|j	                  d      }|j                  |||d       y )N)r'   r'   皙?r  r'   r  i!N,)r   r   r   r.  )r/   r   r   r   r   default_rng
imshow_rgb)r>   r?   rngr  r  rx   s         rD   test_rgb_axesr    sp     **,C	*	4B
))


)C

6A

6A

6AMM!QM0rr   zimagegrid_cbar_mode.pngrM  )r   rM   rL   c            
         t        j                  d      j                  d      } t        j                  d      }d}dgdz  dgdz  z   }g d	d
z  }t        |||      D ]  \  }}}t        ||d||dd      }|\  }	}
}}|	j                  | d       |
j                  | j                  d       |j                  t        j                  | | j                        d       |j                  t        j                  | | j                        d       |D ]D  }|j                  j                          |j                  j                  |j                  d         }F  y )N   re  )   r7  r   )                        r  r   r  )r+   r-   r%   r*   rW   rf  z20%edge)r   r  r   rQ  r   nipy_spectral)cmaphotjethsvr   )r   rR  rS  r/   r   rX  r   r   Thypotarctan2r   clar   images)arrr>   	positions
directionscbar_locationspositionr  locationr   r  r  ax3ax4r?   cbs                  rD   test_imagegrid_cbar_mode_edger    s.    ))B-


'C
**W
%C8IhZ\)J79N),z>*3%)Xh%+#,'/#(#)+ "S#s

3_
-

355u
%

288C'e
4

2::c355)
6 BFFJJL1.B #*3rr   c                  8   t        j                         } t        | dd      }|d   }|j                  ddggt        j
                  j                               }|j                  j                  |      }t        |j                  t        j                        sJ y )Nrt   r   )r   r   rH   rW   )r   )r/   r   r   r   r_   colorsr   r   r   rT  locatormticker
LogLocator)r>   r   r?   r   r
  s        rD   test_imagegridr    su    
**,CS#62D	aB	QF8#**"4"4"6	7B		Bbjj'"4"4555rr   c                  @   dd l m}  dd lm}  | j                         }t        d|j                  |      }|j                  t        d      dt        d            }|j                  j                          |j                          |j                  j                          y )Nr   rt   )r  r   r   )matplotlib.pyplotpyplotmpl_toolkits.axisartist
axisartistr   r   r  fill_betweenr  r2   r3   rh   )r/   AAr>   r?   cols        rD   test_removalr    sf    #(
#**,C	cbggc	:B
//%(AuQx
0CJJOOJJLJJOOrr   zanchored_locator_base_call.pngc                  b   t        j                  d      } | j                  dd      \  }}|j                         }|j	                  ddd       |j	                  g g 	       t        j                  d
      }d}t        |dd      }|j	                  g g 	       |j                  ||d       y )NrK  r   rW   rH   )nrowsncols)i   )ir   )aspectr  r  )r   r   r   r   r  r   r   )r   r   )	r/   r   
subfiguresr0   r  r   r   r   r   )r>   fig1fig2r?   r   r   r   s          rD   test_anchored_locator_base_callr#    s    
**V
$Caq1JD$	BFF!)(F3FF"RF >?AFbql;E	IIRI#	LL6'L2rr   c                      t        t        j                         ddt        j                  j
                         t        t        j                         dt        j                  j
                         y )Nrt   rf  )r  )r   r/   r   r_   r  r  r    rr   rD   -test_grid_with_axes_class_not_overriding_axisr&    s8    sFsxx}}=CJJL##((--8rr   )f	itertoolsr   r   platform
matplotlibr_   r  r  r/   matplotlib.tickertickerr  r   matplotlib.backend_basesr   matplotlib.colorsr   matplotlib.patchesr   r   matplotlib.transformsr	   r
   matplotlib.testing.decoratorsr   r   r   mpl_toolkits.axes_grid1r   r  r   r   r   r   r   (mpl_toolkits.axes_grid1.anchored_artistsr   r   r   r   $mpl_toolkits.axes_grid1.axes_dividerr   r   r   r   r    mpl_toolkits.axes_grid1.axes_rgbr   %mpl_toolkits.axes_grid1.inset_locatorr   r   r    r!    mpl_toolkits.axes_grid1.mpl_axesr  r7   numpyr   numpy.testingr"   r#   rE   rq   r   r   r   r   r   r   r   r!  machiner+  r2  rB  rH  rZ  r`  rc  rg  rn  markparametrizer  r  r  r  r  r  r  	TypeErrorr   r  r  r  r  r  r  r  r  r#  r&  r%  rr   rD   <module>r=     s)    	    #  / % . 7D D . .  5C C '   GH8 01ug1:<.<.67# 	 &'ydK% L%P #$I4H( I(V(6V( '(d'JJK KJK\ $&@A:+8++-9atE(E( 23+8++-9at:< <  <=:<	$<	$+ <=W!. 8::  >?w!. 8:#:#? #$"'!. 8:4:4C  eW%564 7 /$ 7/$d )*GL M>>.@.G	C &78, 9, 7T956"j34!Z23: 
/
/ 1	9*+	:=>	/04 

 ( )
D >":<1<1 ,-"'s</</>6 34GD3 E3"9rr   