
    EVfJ              
       `   d dl mZ d dlmZ d dlZd dlZd dlZd dlmZ d dl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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 m!Z! d d	l"m#Z#m$Z$ d d
l%m&Z&m'Z'm(Z( d dl)m*Z+ d dl,Z, e$dgd      d        Z- e$dgd      d        Z. e$dgddgd      d        Z/e,j`                  jc                  dddg       e$dgddg      d               Z2d Z3e,j`                  jc                  dg d        e#dg      d!               Z4 e#dg      d"        Z5 e#       d#        Z6d$ Z7d% Z8e,j`                  jc                  d&g d'      d(        Z9e,j`                  jc                  d&g d)      d*        Z:d+ Z;d, Z<d- Z= e$d.gd      d/        Z>d0 Z?e,j`                  jc                  d1d2d3ggd4fd5d6ggd7fej                  d8d9ggd:fd8d;ggd<fd=d=ggd>fg      d?        ZA e$d@gd      dA        ZB e$dBgd      dC        ZC e$dDgddE      dF        ZD e#dg      dG        ZEdH ZFdI ZG e$dJgd      dK        ZH e$dLgdddgM      dN        ZIdO ZJ e$dPgddE      dQ        ZK e$dRgd      dS        ZL e#dg      dT        ZM e$dUgddgddV      dW        ZN e$dXgddE      dY        ZOdZ ZP e$d[gddE      d\        ZQd] ZRd^ ZSd_ ZTd` ZUda ZVdb ZWe,j`                  jc                  dce  ej                  dd       ej                  de       ej                  df      j                  dg      fe! ej                  dd       ej                  de       ej                  dh      j                  di      fg      dj        ZZdk Z[dl Z\ e$dmgd      dn        Z] e$dogd      dp        Z^dq Z_dr Z` e$dsgddtu      dv        Za e$dwgd      dx        Zbdy Zc e$dzgd      d{        Zd e$d|g ej                         d}k(  rd nd~dd      d        Zfd Zge,j`                  jc                  ddj                         D  cg c]  }  ej                  |        c}       d        Zj e$dgddE      d        Zk e$dgddE      d        Zl e$dgddE      d        Zme,j`                  jc                  dej                  ej                  d d g      d        Zpd Zqd Zrd Zsd Zte,j`                  jc                  dddg      e,j`                  jc                  dddg      d               Zud Zvd Zwd Zxd Zy e#       d        Zzd Z{ej4                  j                  d      d        Z} e$dgddgddV      d        Z~ G d dej                        Zd Zd Z e#dg      d        Ze,j`                  jc                  dd=d8g       e#dg      d               Z e#       d        Z e$dgd      d        Z e$dgdd ej                         dv rdnd       d        Ze,j`                  j                  d      e,j`                  jc                  dddg      e,j`                  jc                  dg dg dg       e#d      d                             Z e#dg      d        Zd Zd Zd Zyc c} w )    )	ExitStack)copyN)Path)assert_array_equal)Image)colorsimagepatchespyplotstylercParams)	AxesImage	BboxImageFigureImageNonUniformImagePcolorImage)check_figures_equalimage_comparison)BboxAffine2DTransformedBboximage_interpsmpl20)r   c                     dt         j                  d<   t        j                  d      j	                  dd      } t        j
                  d      \  }\  }}}|j                  | d       |j                  d	       |j                  d       |j                  | d
       |j                  d
       |j                  | d       |j                  d       y)z5Make the basic nearest, bilinear and bicubic interps.   ztext.kerning_factord            nearestinterpolationzthree interpolationsbilinearbicubicN)	pltr   nparangereshapesubplotsimshow	set_title
set_ylabel)Xfigax1ax2ax3s        d/var/www/html/software/conda/envs/catlas/lib/python3.12/site-packages/matplotlib/tests/test_image.pytest_image_interpsr3      s    
 +,CLL&'
		#q"%A<<?C#sCJJq	J*MM()NN9JJq
J+NN:JJq	J*NN9    zinterp_alpha.pngT)remove_textc                  X   t        j                  dd      \  } \  }}t        j                  d      }t        j                  d      |d<   t        j
                  t        j                  dt        j                              |d<   |j                  |d	       |j                  |d
	       y)z:Test the interpolation of the alpha channel on RGBA images      )r   r      r   r   ).r7   dtype.r   noner!   r#   N)r%   r)   r&   zerosonestriluint8r*   )r.   axlaxrimgs       r2   test_alpha_interprF   0   s|     ll1a(OC#s
((9
C''&/CK''"''&9:CKJJs&J)JJs*J-r4   interp_nearest_vs_nonepdfsvg)
extensionsr5   c                  D   dt         d<   t        j                  g dg dgg dg dggt        j                        } t	        j
                  dd	      \  }\  }}|j                  | d
       |j                  d       |j                  | d       |j                  d       y)z5Test the effect of "nearest" and "none" interpolationr   savefig.dpi)          )z   g      )      r   )rT   c   G   r;   r7   r8   r>   r!   zinterpolation noner    zinterpolation nearestN)r   r&   arrayrB   r%   r)   r*   r+   )r-   r.   r/   r0   s       r2   test_interp_nearest_vs_nonerX   =   s      H]
>?3 -029;	CAll1a(OC#sJJqJ'MM&'JJq	J*MM)*r4   suppressCompositeFfigimagepng)rJ   c                 P   t        j                  dd      }| |_        t        j                  t        j
                  d      dz  t        j
                  d      dz        \  }}t        j                  |dz  |dz  z   ||z  z
        }t        j                  d|dz  z  d|dz  z  z         }||dz  z   }|j                  |d	d	d
       |j                  |d d dd d f   d	dd
       |j                  |d d d d df   dd	d
       |j                  |d d dd d df   ddd
       y )Nr8   r8   r   figsizedpig      Y@r8   r   2   r   r   lower)xoyoorigin)r%   figurerY   r&   ix_r'   sinrZ   )rY   r.   xyzcrE   s          r2   test_figimagern   O   s    **V
-C-C66"))C.5("))C.3*>?DAq
q!tad{QqS !A
r!Q$wAqD !A
ac'CLLqL1LLTrT1W!GL<LLQ"W#!GL<LLTrT4R4ZSSLAr4   c                      t        j                         \  } }|j                  g d       t        j                         }| j                  |       |j                  d       t        j                  |       y )N)r7   r8   r   r   )r%   r)   plotioBytesIOsavefigseekimread)r.   axbuffers      r2   test_image_python_iorx   _   sK    llnGCGGIZZ\FKK
KKNJJvr4   z!img_size, fig_size, interpolation))r   r8   hanning)r   r   r    )r   
   r    )r   333333@ry   )r   g333333"@r    c                    t         j                  j                  d       t        j                  d   }t         j                  j                  t        ||z        t        ||z              }| |fD ]  }|j                  ||        | j                         }|j                  g d       |j                  |d       |j                         }|j                  g d       |j                  ||       y )N!N,rL   r   r   r7   r7   antialiasedr!   )r&   randomseedr%   r   randintset_size_inchesr)   set_positionr*   )	fig_testfig_refimg_sizefig_sizer"   r`   Ar.   rv   s	            r2   test_imshow_antialiasedr   h   s     IINN8
,,}
%C
		s3>*Ch,?@A'" 0Hh/0				BOOL!IIa}I-				BOOL!IIa}I-r4   c                 2   t         j                  j                  d       t        j                  d   }t         j                  j                  t        |dz        t        |dz              }| |fD ]  }|j                  dd        | j                         }|j                  |d       |j                  ddg       |j                  ddg       |j                         }|j                  |d	       |j                  ddg       |j                  ddg       y )
Nr}   rL   r   r{   r   r!   rz   r   r    )r&   r   r   r%   r   r   r   r   r)   r*   set_xlimset_ylim)r   r   r`   r   r.   rv   s         r2   test_imshow_zoomr      s     IINN8
,,}
%C
		s37|Sq\2A'" &C%&				BIIa}I-KKRKKR				BIIayI)KKRKKRr4   c                    t        j                  d       t        t              j                  dz  }t        t              j                  dz  }| j                  d      }|d   j                  t        j                  |             |d   j                  t        j                  |             |j                  d      }|d   j                  t        j                  |             |d   j                  t        j                  |             y )Ndefault%baseline_images/pngsuite/basn3p04.png%baseline_images/test_image/uint16.tifr8   r   r7   )r   user   __file__parentr)   r*   r   openr%   ru   )r   r   png_path	tiff_pathaxss        r2   test_imshow_pilr      s    	IIiH~$$'NNHX%%(OOI


A
CFMM%**X&'FMM%**Y'(


1
CFMM#**X&'FMM#**Y'(r4   c                  "   t        j                  t        j                  j	                  t        j                  j                  t              ddd            } | j                  t        j                  k(  sJ t        j                  |       dk(  sJ y )Nbaseline_images
test_imagez
uint16.tif )r%   ru   ospathjoindirnamer   r<   r&   uint16sumrE   s    r2   test_imread_pil_uint16r      sc    
**RWW\\"''//(";&lD EC99		!!!66#;)###r4   c                      t        j                  t        t              j                  dz        } | j
                  t        j                  k(  sJ t        j                  |       dk(  sJ y )Nr   r   )	r%   ru   r   r   r   r<   r&   r   r   r   s    r2   test_imread_fspathr      sP    
**X GGIC99		!!!66#;)###r4   fmt)r[   jpgjpegtiffc                 R   | dv}t         j                  j                  d       t         j                  j                  dd      }t	        j
                         }t        j                  ||| d       t	        j
                         }t        j                  ||| d       |j                  d       t        j                  ||       }|j                  d       t        j                  ||       }|j                  ddd	|z   fk(  sJ |j                  ddd	|z   fk(  sJ t        ||       y )
N)r   r   r7   i@  r8   )formatr`   r   r   r   r   )r&   r   r   r   rq   rr   r%   imsavert   ru   shaper   )r   	has_alphadata	buff_dpi1buff_dpi100arr_dpi1
arr_dpi100s          r2   test_imsaver      s    ?*I IINN1 99>>$"D

IJJy$s2**,KJJ{D#6NN1zz)C0HQK4J>>dAq9}5555aY7777x,r4   )r[   rH   psepsrI   c                     t        j                  t        t        j                        t        j                  ddgg      |        y )Nr   r7   r   )r%   r   r   r   devnullr&   rW   )r   s    r2   test_imsave_fspathr      s*    JJtBJJAq6(!3C@r4   c                     t         j                  j                  d       dD ]  } t         j                  j                  ddd      }t	        j
                         }t        j                  ||| d       |j                  d       t        j                  |      }d|z  j                  d	      }| d
k(  r|d d d   }d|z  j                  d	      }t        ||        y )Nr7   )rb   upper   r9   r[   )re   r   r   rT   rB   rb   rf   )r&   r   r   r   rq   rr   r%   r   rt   ru   astyper   )re   r   buffarr_bufs       r2   test_imsave_color_alphar      s     IINN1$ *yy~~b"a(zz|

4fU;		!**T"
 D  )W":Dw;&&w/4)!*r4   c                      ddl m}  t        j                         } |        }|j	                  dd       t        j                  |ddgddggdd	|i
       t        j                  |      }|j                  d   dk(  sJ y )Nr   )PngInfoSoftwaretestr7   r8   r   r[   pnginfor   
pil_kwargs)
PIL.PngImagePluginr   rq   rr   add_textr%   r   r   r   info)r   bufr   ims       r2   test_imsave_pil_kwargs_pngr      sr    *
**,CiGZ(JJsaVaV$G(<>	CB77:&(((r4   c                  \   ddl m}  t        j                         }ddi}t	        j
                  |ddgddggd|	       t        |      dk(  sJ t        j                  |      }|j                  j                         D ci c]  \  }}| |   j                  | }}}|d
   dk(  sJ y c c}}w )Nr   )TAGS_V2descriptionz
test imager7   r8   r   r   r   ImageDescription)PIL.TiffTagsr   rq   rr   r%   r   lenr   r   tag_v2itemsname)TAGSr   r   r   kvtagss          r2   test_imsave_pil_kwargs_tiffr      s    ,
**,C.JJJsaVaV$V
Kz?a	CB(*		(9:1DGLL!O:D:"#|333 ;s    B(image_alphac                  4   t         j                  j                  d       t         j                  j                  dd      } t	        j
                  dd      \  }\  }}}|j                  | dd       |j                  | dd       |j                  | dd	       y )
Nr   r   r7   r         ?r>   )alphar"         ?r    )r&   r   r   r   r%   r)   r*   )Zr.   r/   r0   r1   s        r2   test_image_alphar     sw    IINN1
		q!A<<1-C#sCJJq6J2JJq6J2JJq9J5r4   c                     ddl m}  t        j                         \  }}|j	                  t        j                  d      j                  dd      d      }d\  }}|j                  j                  ||g      \  }} | d|j                  ||      }|j                  |      d	k(  sJ d
\  }}|j                  j                  ||g      \  }} | d|j                  ||      }|j                  |      J |j                          |j	                  t        j                  d      j                  dd      d      }d\  }}|j                  j                  ||g      \  }} | d|j                  ||      }|j                  |      d	k(  sJ t        j                         \  }}|j	                  t        j                  d      j                  dd      g d      }d\  }}|j                  j                  ||g      \  }} | d|j                  ||      }|j                  |      dk(  sJ d\  }}|j                  j                  ||g      \  }} | d|j                  ||      }|j                  |      J d\  }}|j                  j                  ||g      \  }} | d|j                  ||      }|j                  |      J t               j                  d      j                  d      }	|j	                  t        j                  d      j                  dd      |	|j                  z         }d\  }}|j                  j                  ||g      \  }} | d|j                  ||      }|j                  |      d	k(  sJ y )Nr   
MouseEventr   rz   r   )re   r9   r9   motion_notify_event,   )g333333$@r9   rb   )r   r   r   r   extent)      ?r   7   )      ?r   ){Gz?g{Gzr8   r   	transform)r   rz   )matplotlib.backend_basesr   r%   r)   r*   r&   r'   r(   	transDatar   canvasget_cursor_dataclearr   scalerotate)
r   r.   rv   r   rj   rk   xdispydispeventtranss
             r2   test_cursor_datar    s<   3llnGC	299S>))"b1'	BBDAq<<))1a&1LE5,cjj%GEe$*** DAq<<))1a&1LE5,cjj%GEe$,,, HHJ	299S>))"b1'	BBDAq<<))1a&1LE5,cjj%GEe$***llnGC	299S>))"b1:J	KBDAq<<))1a&1LE5,cjj%GEe$*** DAq<<))1a&1LE5,cjj%GEe$,,,DAq<<))1a&1LE5,cjj%GEe$,,, JQ&&s+E	299S>))"b1"R\\1 
 
3BDAq<<))1a&1LE5,cjj%GEe$***r4   z
data, texti'  i'  z[10001.000]grh|?g/$?z[0.123]r7   r8   []g     ?z[1.0000000000000000]rf   z[-1.0000000000000000]c                    ddl m} t        j                         \  }}|j	                  |       }|j
                  j                  ddg      \  }} |d|j                  ||      }|j                  |j                  |            |k(  sJ y )Nr   r   r   )
r   r   r%   r)   r*   r   r   r   format_cursor_datar   )	r   textr   r.   rv   r   r   r   r   s	            r2   test_format_cursor_datar  V  sx     4llnGC	4B<<))1a&1LE5,cjj%GE  !3!3E!:;tCCCr4   
image_clipc                      ddgddgg} t        j                         \  }}|j                  |       }t        j                  dd|j
                        }|j                  |       y )Nr7   r8   r   r9   r   r   )radiusr   )r%   r)   r*   r
   Circler   set_clip_path)dr.   rv   r   patchs        r2   test_image_clipr  i  sT    
Q!QAllnGC	1BNN6!r||DEUr4   image_cliprectc                      t        j                         \  } }ddgddgg}|j                  |d      }t        j                  ddd|j
                  j                        }|j                  |       y )	Nr7   r8   r   r9   r   r   r   r   r   r7   r7   )xywidthheightr   )r%   r)   r*   r
   	Rectangleaxesr   r  )r.   rv   r  r   rects        r2   test_image_cliprectr  s  sg    llnGC
Q!QA	1\	*B10A0ACDTr4   r*   )r5   r   c                      t        j                         \  } }t        j                  d      j	                  d      }|j                  |dd       |j                  dd       |j                  dd       y )Nr   rz   rz   r#   r7   r8   r7   r8   r"   r   r   r   )r%   r)   r&   r'   r(   r*   r   r   r.   rv   arrs      r2   test_imshowr!    sW    llnGC
))C.
 
 
*CIIcLIAKK1KK1r4   c                    t        j                  d      j                  d      }|j                         }|j	                  |d d d d df   dd       |j                  dd       |j                  dd       | j                         }|j	                  |dd       |j                  dd       |j                  dd       y )Nr   )rz   rz   r7   r   r#   r  r  r   )r&   r'   r(   r)   r*   r   r   )r   r   r   rv   s       r2   test_imshow_10_10_1r#    s     ))C.
 
 
-C				BIIc!Q'l*\IJKK1KK1				BIIcLIAKK1KK1r4   c                      t        j                         \  } }t        j                  d      j	                  d      }t        j                  t              5  |j                  |       d d d        y # 1 sw Y   y xY w)N   )rz   rz   r8   	r%   r)   r&   r'   r(   pytestraises	TypeErrorr*   r  s      r2   test_imshow_10_10_2r*    U    llnGC
))C.
 
 
-C	y	! 
		#     A00A9c                      t        j                         \  } }t        j                  d      j	                  d      }t        j                  t              5  |j                  |       d d d        y # 1 sw Y   y xY w)Ni  )rz   rz   r   r&  r  s      r2   test_imshow_10_10_5r.    r+  r,  no_interpolation_originc                     t        j                  d      \  } }|d   j                  t        j                  d      j                  d      dd       |d   j                  t        j                  d      j                  d      d	       y )
Nr8   r   r   )r8   ra   rb   r>   )re   r"   r7   r!   )r%   r)   r*   r&   r'   r(   )r.   r   s     r2   test_no_interpolation_originr1    si    ||AHCFMM"))C.((1' &  (FMM"))C.((1MHr4   image_shift)r5   rJ   c            
      @   t        dd      D  cg c]%  } t        dd      D cg c]  }d|z  d| z  z    c}' }} }d}d}t        j                         \  }}|j                  |t	        j
                         d||ddf       |j                  d       y c c}w c c}} w )Nr7   r   gMk&Agk&Ar>   )normr"   r   auto)ranger%   r)   r*   r   LogNorm
set_aspect)rk   rj   imgDatatMintMaxr.   rv   s          r2   test_image_shiftr<    s    ?DQ}M!uQ}5!AA5MGMDDllnGCIIgFNN,FD!S)  +MM& 6Ms   BBBBc                     t        j                  ddg      } | j                  g dd      }t        j                  t        j
                  d      d      j                  dd	      }|j                  |d
g ddd      }dx}}|j                  | |g       |j                  | |g       |j                  g        |j                  g        t        j                         }| j                  |d       |j                  d       t        j                   |      }t#        |d d df         \  }}}	}
t#        |d d df         \  }}}	}
|dk7  sJ d       y )Nr7   r_   r~   F)frameon      r   	   r   rz   rD  rz   r>   gray)re   r   r"   cmapr8   )r   r7   r   )	facecolorr   rf   r   z.Expected a non-green edge - but sadly, it was.)r%   rg   add_axesr&   tiler'   r(   r*   r   r   
set_xticks
set_yticksrq   rr   rs   rt   ru   r   )r.   rv   r   r   rj   rk   r   rgbas              r2   test_image_edgesrP    s(   
**aV
$C	lE	2B77299R="%--b!4D	40B!'f 
 
6B IAKK!QKK!QMM"MM"
**,CKKyK)HHQK	CBR1XJAq!QR2YJAq!Q8EEE8r4   image_composite_backgroundc                     t        j                         \  } }t        j                  d      j	                  dd      }|j                  |g d       |j                  |g d       |j                  d       |j                  ddg       y )	Nr@  r9   r   )r   r8   rA  r   r   )r9   r   rA  r   )r7   r   r   r   r   )r%   r)   r&   r'   r(   r*   set_facecolorr   r  s      r2   test_image_composite_backgroundrT    sk     llnGC
))B-

1
%CIIc-I(IIc-I(^$KKBr4   image_composite_alphac                     t        j                         \  } }t        j                  d      }d|dddddf<   t        j                  t        j
                  ddd      t        j
                  ddd      ddd   f      |dddddf<   t        j                  d	      }d|dddddf<   d|dddddf<   t        j                  t        j
                  ddd      t        j
                  ddd      ddd   f      ddt        j                  f   |dddddf<   |j                  |g d
d       |j                  |g dd       |j                  |g d       |j                  |g d       |j                  |g dd       |j                  |g dd       |j                  d       |j                  ddg       |j                  ddg       y)z{
    Tests that the alpha value is recognized and correctly applied in the
    process of compositing images together.
    )      r9   r7   Nr   皙?皙?rf   r   )rX  rW  r9   )r7   r8   r   r   333333?)r   r   )r8   r   r   r   333333?)r   r9   r   r   r   )r   r   r7   r8   )r   r   r8   r   )r   r   r   r9   )r   r   r   r7   r   )r%   r)   r&   r?   concatenater'   newaxisr*   rS  r   r   )r.   rv   r   arr2s       r2   test_image_composite_alphar`    s    llnGC
((;
CC1aL>>	1c3	1a!5dd!;<>C1aL88K DDAqMDAqMNN	1c3	1a!5dd!;<>>?mMDAqMIIc,cI2IIc,cI2IIc,I'IId<I(IId<sI3IId<sI3^$KKAKKAr4   c                    t        j                  d      j                  d      }| |fD ]  }|j                         }|j	                  |t
        j                  j                  g d      |j                  f       |j	                  |t
        j                  j                  g d      |j                  f        d|_	        y )NrB  r   r   )r	  r   r7   )r7   r   )	clip_path)r  r7   r8   )r8   r7   T)
r&   r'   r(   add_subplotr*   mplr   r   r   rY   )r   r   tr.   rv   s        r2   #test_clip_path_disables_compositingri    s    
		!V$A'" /__
		!.F G " .	 	/
		!.F G " .	 	/	/ !%Gr4   rasterize_10dpi)rJ   r5   r   c                     t        j                  ddgddgg      } t        j                  ddd      \  }}|d   j	                  |        |d   j                  ddgddgdd	
       |d   j                  dd       |d   j                  ddgddgd       |d   j                  dd       |D ]B  }|j                  g        |j                  g        |j                  d d  j                  d       D dt        d<   y )Nr7   r8   r   r9   )r   r7   r>  r   g      4@T)	linewidth
rasterizedrc  )rf   r8   xlimylim)rl  Frz   rL   )r&   asarrayr%   r)   r*   rp   setrJ  rK  spinesset_visibler   )rE   r.   r   rv   s       r2   test_rasterize_dpiru    s     **q!fq!f%
&C||Aq&1HCFMM#FKKAA#$K?FJJFJ)FKKAA#K.FJJFJ)  (
b
b
		!  '(
 !H]r4   bbox_image_invertedc            	         t        j                  d      j                  d      } t        j                         \  }}t        t        t        ddgddgg      |j                        d      }|j                  |        |j                  d       |j                  dd       |j                  dd       |j                  |       t        j                  d      } t        t        t        dd	gd
dgg      |j                  j                         d      }|j                  |        |j                  d       |j                  |       y )Nr   r  r   r    r!   Frz   rZ  皙?r[  r   )r&   r'   r(   r%   r)   r   r   r   r   set_dataset_clip_onr   r   
add_artistidentityrg   transFigure)r	   r.   rv   bbox_ims       r2   test_bbox_image_invertedr  &  s
    IIcN""8,EllnGCsCj1a&12BLLA!G UKK3KK3MM'KKOEsCj3+-F(G(*		(=(=?&/1G UMM'r4   c                  |   t        j                  g dg dg dg dg      } t        j                  dd      \  }}|j	                  g d       |j                  d	d
       |j                  d	d
       |j                  | g dd      }|j                  j                          |j                  j                  }|j                  |      }t        |j                         ddgddgg       t        j                  dd      \  }}|j	                  g d       |j                  d
d       |j                  d	d
       |j                  | g dd|j                        }|j                  j                          |j                  j                  }|j                  |      }t        |j                         ddgddgg       y )N)r   r   r   r   )rZ  g?r   皙?)r\  r[          rx  )ffffff??r  r\  r  r   r^   r~   r   r7   )r  r  rx  r  r    )r   r"   i  r%  i  i  r8   )r   r"   r   )r&   rW   r%   r)   r   r   r   r*   r   drawrendererget_window_extentr   
get_points	transAxes)r   r.   rv   im_objr  im_bboxs         r2   $test_get_window_extent_for_AxisImager  ?  sx   
 
*,A')=? 
@Bll85GCOOL!KK1KK1YY
'y  BF JJOOzz""H&&x0Gw))+sCj3*-EFll85GCOOL!KK1KK1YY
'y,,   F JJOOzz""H&&x0Gw))+sCj3*-EFr4   zzoom_and_clip_upper_origin.pngc                      t        j                  d      } | j                  d      } t        j                         \  }}|j                  |        |j                  dd       |j                  dd       y )Nr   r         @      )r&   r'   r(   r%   r)   r*   r   r   )r	   r.   rv   s      r2   test_zoom_and_clip_upper_originr  b  sV     IIcNEMM(#EllnGCIIeKKTKKcr4   c                  d    t        j                         } t        |       }|j                  d       y )NBlues)r%   gcar   set_cmaprv   r   s     r2   test_nonuniformimage_setcmapr  n  s#    	B		BKKr4   c                      t        j                         } t        |       }|j                  t        j                                y N)r%   r  r   set_norm	Normalizer  s     r2   test_nonuniformimage_setnormr  t  s)    	B		BKK r4   c                  N   t        j                  dd      } t        d      D ]#  }t        j                  ddd      dz  | |d d f<   % t	        j
                  dd      }|j                  | j                                t        j                         \  }}|j                  |       y )	Nr  rB   r;   rz   r  r   rT   L)r&   r@   r6  linspacer   newputdataflattenr%   r)   r*   )imdir   r.   rv   s        r2   test_jpeg_2dr  z  s    
''('
*C2Y 4KKS"-3AqD	4	3	!BJJs{{}llnGCIIbMr4   c                     t        j                  dd       t        j                  dt              } t        j
                  ddd      | d<   t        j                  |        t        j                         }t        j                  |d	d
d       |j                  d       t        j                  |      }t        |j                  d            }d|cxk  rdk  sJ  J |j                  d      }|dk(  sJ y )Nr  ,  r^   )r  r  r9   r;   r  r   r=   redr   )rG  r   r`   r            r	  )   r   r   )r%   rg   r&   r?   floatr  rZ   rq   rr   rs   rt   r   r   r   	getcolorsgetpixel)r   r   r	   
num_colorscorner_pixels        r2   test_jpeg_alphar    s    JJv3' 
-u	-BS#s+BvJLL::<DKKe=IIaLJJtE U__S)*J*######>>&)L;&&&r4   c                      t        j                         } t        |       }t        j                  dt
              j                  d      }|j                  |       d|d<   |j                  d   dk(  sJ d       y Nr@  r;   r9   r   #@r	  r   value changed)	r%   r  r   r&   r'   r  r(   ry  _Arv   r   rl   s      r2   test_axesimage_setdatar    s`    	B	2B
		"E"**62AKKNAdG55;!,_,r4   c                      t        j                         } t        |       }t        j                  dt
              j                  d      }|j                  |       d|d<   |j                  d   dk(  sJ d       y r  )	r%   gcfr   r&   r'   r  r(   ry  r  )r.   r   rl   s      r2   test_figureimage_setdatar    sa    
'')C	S	B
		"E"**62AKKNAdG55;!,_,r4   zimage_cls,x,y,a      @      @g      (@r  g      @)r   r8   c                 p   t        j                         } | |      }|j                  |||       dx|d<   x|d<   |d<   |j                  d   |j                  d   cxk(  r|j
                  d   cxk(  rdk(  sJ d        J d       |j                  |||j                  g |j                  d             y )Nr  r   r	  r  rf   )r%   r  ry  r  _Ax_Ayr(   r   )	image_clsrj   rk   rO  rv   r   s         r2   test_setdata_xyar    s     
B	2BKK1aAaD1Q4!D'55;"&&)5rvvay5A5FF5FF5KK1aii!''2/0r4   c                     ddl m}  t        j                  j	                  d       t        j                  j                  dd      }t        j                  dd      \  }}|d   j                  |      }|d   j                  |      }t        j                  ||d          t        j                  ||d          t        j                         }t        j                  |d       t        j                  |j                               }| j                  |      }d }|j                  d	      D ]  }	||	d
   }|	d
   |k7  sJ  y )Nr   )ElementTreerz   r7   r8   )rv   rI   r   r	   r  )	xml.etreer  r&   r   r   r   r%   r)   
pcolormeshcolorbarrq   rr   rs   getvalueparseiter)
r  r   r.   rv   p1p2r   treer  r	   s
             r2   test_minimized_rasterizedr    s    &IINN199>>"b!Dll1a GC	A		$	B	A		$	BLL1LL1::<DKKU#::dmmo&DT"DE7# ='NEW~&ur4   c                     t        t              j                  dz  } dt        j                  dk(  rdndz   | j                         j                         z   }t        j                  t        d      5  t        j                  |       d d d        t        j                  j                  |      5 }t        j                  |       d d d        y # 1 sw Y   GxY w# 1 sw Y   y xY w)Nr   zfile:win32z/// zPlease open the URLmatch)r   r   r   sysplatformresolveas_posixr'  r(  
ValueErrorr%   ru   urllibrequesturlopen)r   urlfiles      r2   test_load_from_urlr    s    >  #JJD||w.eB8\\^$$&'C 
z)>	? 

3				$ 

4   s   1C.CCC"log_scale_imagec                      t        j                  d      } d| d d d<   t        j                         \  }}|j	                  | g ddddd       |j                  d	
       y )Nr  r7   r8   )r7   r   r7   r   viridisrf   r5  )r   rF  vmaxvminaspectlog)yscale)r&   r?   r%   r)   r*   rr  )r   r.   rv   s      r2   test_log_scale_imager    sY    
AAccFllnGCIIa(yqr  FF%Fr4   rotate_imagec                     d} t        j                  dd|       x}}t        j                  ||      \  }}t        j                  |dz  |dz  z    dz        dt         j                  z  z  }t        j                  |dz
  dz  dz  |dz
  dz  dz  z    dz        dt         j                  z  dz  dz  z  }||z
  }t        j                  dd      \  }}	|	j                  |dd	d
g dd      }
t               j                  d      |	j                  z   }|
j                  |       |
j                         \  }}}}|	j                  |||||g|||||gdd|       |	j                  dd       |	j                  dd       y )Nr         r  r8   r7         ?r   r>   r  rb   )r9   r8   T)r"   rF  re   r   clip_on   zr--r   )lwr   r   r   r9   )r&   r'   meshgridexppir%   r)   r*   r   
rotate_degr   set_transform
get_extentrp   r   r   )deltarj   rk   r-   YZ1Z2r   r.   r/   im1trans_data2x1x2y1y2s                   r2   test_rotate_imager    s}   EIIdC''A;;q!DAq	!Q$A+"	#q255y	1B
&&QUcMA%!a%3(::;a?
@ruu9s?S "B
RA||Aq!HC
**Qf9#*D  :C *''+cmm;Kk" ^^%NBBHHb"b"b!BBB#71"  $ LLALLAr4   c                     t        j                         } t        j                  d      }t	        j
                  | |d       | j                  d       t	        j                  |       }|j                  d d |j                  k(  sJ y )N)i  iA  r[   r   r   r8   )	rq   rr   r&   r?   r%   r   rt   ru   r   )r   r   rE   s      r2   test_image_preserve_sizer    s`    ::<D	*	BJJtR&IIaL
**T
C99Ra=BHH$$$r4   c                  ^   d} t        j                  | t              }t        j                  | | fd      }t        j
                  |g d      }|j                          |j                  |       |j                  |ddd       t        j                         }|j                  |d	
       |j                  d       t        j                  |      }|j                  dk(  sJ t        t        j                   |d d d d df   t"              t        j                  | t"              d d d          y )N   F)r_   r?  )r  r  r   r   r    rb   r5  )r"   re   r  r7   )r`   r   )r  r  r9   rf   )r&   r|  r  r%   rg   Axesset_axis_offrH  r*   rq   rr   rs   rt   ru   r   r   rq  bool)nr   r.   rv   r   rE   s         r2   test_image_preserve_size2r    s    	A;;q% D
**aVU
3C	#+	,BOOLLIId)GFIK::<DKK!KIIaL
**T
C99	!!!rzz#aAg,5{{1d+DbD13r4   zmask_image_over_under.pngr   )r5   tolc            
         dt         j                  d<   d} t        j                  dd|       x}}t        j                  ||      \  }}t        j
                  |dz  |dz  z    dz        dt        j                  z  z  }t        j
                  |dz
  dz  dz  |dz
  d	z  dz  z    dz        dt        j                  z  d	z  dz  z  }d
||z
  z  }t         j                  j                  j                  ddd      }t        j                  j                  |dkD  |      }	t        j                  dd      \  }
\  }}|j                  |	d|t        j                  ddd      dg d      }|j!                  d       |
j#                  |dd|d
       |j                  |	d|t        j$                  g ddd      dg d      }|j!                  d       |
j#                  |dd d|d
!       y )"NFzpcolormesh.snapg?r  r  r8   r7   r  r   rz   rL  rM  rN  overunderbad333333?r#   g      r   )r  r  cliprb   )r  r   r  r   )r"   rF  r4  re   r   zGreen=low, Red=high, Blue=badboth
horizontal)extendorientationrv   r  r    )rf   r  gɿr   rx  r   r7   r  )ncolorsr  zWith BoundaryNormproportional)r  spacingr  rv   r  )r%   r   r&   r'   r  r  r  cmrE  with_extremesmamasked_wherer)   r*   r   r  r+   r  BoundaryNorm)r  rj   rk   r-   r  r  r  r   paletteZmr.   r/   r0   r   s                 r2   test_mask_image_over_underr"  4  s    ',CLL"#EIIdC''A;;q!DAq	!Q$A+"	#q255y	1B
&&QUcMA%!a%3(::;a?
@ruu9s?S "B
BGAffkk''S'EG			AGQ	'Bll1a(OC#s	Bj ))t#EJ"> 
 
;B MM12LLF  $ 
Bi ,,-M58uF">	 
 
;B
 MM%&LLFN)c"  >r4   
mask_imagec                     t        j                  dd      \  } \  }}t        j                  d      }t        j                  |ddddf<   |j                  |d       t        j                  dt              }d|ddddf<   t        j                  j                  t        j                  dt        j                        |      }|j                  |d       y )Nr7   r8   r:   r    r!   r;   T)r%   r)   r&   r@   nanr*   r?   r	  r  masked_arrayr   )r.   r/   r0   r   s       r2   test_mask_imager'  V  s     ll1a(OC#s
A&&Aac1Q3hKJJq	J*
t$AAac1Q3hK
2776;Q?AJJq	J*r4   c                      t        j                  dt         j                        } t        j                         \  }}|j                  |        |j                  j                          y )Nr]   )r&   fullr%  r%   r)   r*   r   	draw_idle)r   r.   rv   s      r2   test_mask_image_allr+  h  s@    776266"DllnGCIIdOJJr4   zimshow_endianess.pngc                  t   t        j                  d      } t        j                  | |       \  }}t        j                  |dz
  |dz
        }t	        j
                  dd      \  }\  }}t        ddd      } |j                  |j                  d	      fi |  |j                  |j                  d
      fi | y )Nrz   r   r7   r8   rb   r    r  )re   r"   rF  z<f8z>f8)	r&   r'   r  hypotr%   r)   dictr*   r   )rj   r-   r  r   r.   r/   r0   kwargss           r2   test_imshow_endianessr0  p  s    
		"A;;q!DAq
QAAll1a(OC#s		JFCJJqxx)&)CJJqxx)&)r4   imshow_masked_interpolationx86_64r   )r  r5   r   c                     t         j                  d   j                  ddd      } d}t        j                  d||z  dz
  	      }t        j                  ||z  t        
      j                  ||      }d|d<   d|d<   t
        j                  |d<   t        j                  |      j                  d      }d|d<   t
        j                  j                  ||      }t        j                  dd      \  }}t!        t"        j$                        }|j'                  d       t)        ||j+                               D ]<  \  }}	|	j-                  |       |	j/                  ||| |       |	j1                  d       > y )Nr  rL  rN  r   r  r   r   r7   r  r  r;   rf   r:   g     j@)rA  r   )rA  rA  r	  T)r   rA  r   r   r   )r4  rF  r"   off)rg  	colormapsr  r   r  r&   r'   r  r(   inf
zeros_liker   r  r&  r%   r)   sortedmimage	_interpd_removezipravelr+   r*   axis)
rF  Nr
  r   maskr.   ax_gridinterpsinterprv   s
             r2    test_imshow_masked_interpolationrE  ~  s:   
 ==#11s#31OD
Aaac!e,A99QqS&..q!4DDJ DK 66DL==%%f-DDK55dD)D<<1%LCV%%&GNN=!'7==?3 

V
		$QT	@
r4   c                  V    t        j                  ddgdt        j                  gg       y )Nr7   r8   r   )r%   r*   r&   r%   r4   r2   test_imshow_no_warn_invalidrH    s    JJABFF$%r4   r<   zu2 u4 i2 i4 i8 f4 f8c                 D   t        j                  d|       j                  d      }| j                  dk7  r|dz  }|dk  }|dkD  }| j                  dk(  r|dz  }t	        j
                         \  }}|j                  |      j                         }||   dk(  j                         sJ | j                  dk(  r4||   d	k(  j                         sJ |j                  j                  dk(  sJ y ||   dk(  j                         sJ |j                  t         j                  k(  sJ y )
Nr  r;   )rz   rz   r   urz   r   rT   fr7   )r&   r'   r(   kindr%   r)   r*   	get_arrayallr<   rB   )r<   r   too_lowtoo_high_rv   outs          r2   $test_imshow_clips_rgb_to_valid_rangerS    s	    ))Cu
%
-
-k
:CzzSr	AgGSyHzzSCiLLNEAr
))C.
"
"
$CLA""$$$zzSH"'')))yy~~$$$H$))+++yyBHH$$$r4   zimshow_flatfield.pngc                      t        j                         \  } }|j                  t        j                  d      d      }|j                  dd       y )Nr:   r    r!   r   r  )r%   r)   r*   r&   r@   set_climr.   rv   r   s      r2   test_imshow_flatfieldrW    s9    llnGC	2776?)	<BKKCr4   zimshow_bignumbers.pngc                      dt         d<   t        j                         \  } }t        j                  g dg dgt        j
                        }|j                  |      }|j                  dd       y )Nr    image.interpolation)r7   r8   g   mB)r   r7   r9   r;   r   r   )r   r%   r)   r&   rW   uint64r*   rU  r.   rv   rE   pcs       r2   test_imshow_bignumbersr]    sR    &/H"# llnGC
((L),BII
>C	3BKK1r4   zimshow_bignumbers_real.pngc                      dt         d<   t        j                         \  } }t        j                  g dg dg      }|j                  |      }|j                  dd       y )Nr    rY  )r  r   gMD)r  r   r  r   r   )r   r%   r)   r&   rW   r*   rU  r[  s       r2   test_imshow_bignumbers_realr_    sN     '0H"# llnGC
((O\2
3C	3BKK1r4   	make_normc                  ,    t        j                  d      S Nr7   )r   
SymLogNormrG  r4   r2   <lambda>rd    s    Vq! r4   c                  ,    t        j                  d      S rb  )r   	PowerNormrG  r4   r2   rd  rd    s    Va  r4   c                    t        j                         \  }}t        j                  t        d      5  |j                  g g |              }d d d        j                  g d       |j                  j                          t        j                  t              5  |j                  |j                  j                                d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nz.Attempting to set identical low and high xlimsr  r4  )r   ri  r   )r%   r)   r'  warnsUserWarningr*   
set_extentr   r  r(  RuntimeError
make_imageget_renderer)r`  r.   rv   r   s       r2   test_empty_imshowrp    s     llnGC	kL
N /YYt)+Y./ MM.!JJOO	|	$ 1
cjj--/01 1/ /1 1s   C*CCC#c                      t        j                         \  } }|j                  t        j                  dt        j
                               | j                  j                          y )Nrb  r;   )r%   r)   r*   r&   r?   float16r   r  r.   rv   s     r2   test_imshow_float16rt    s:    llnGCIIbhhvRZZ01JJOOr4   c                     t        j                         \  } }|j                  t        j                  dt        j
                               t        j                  t        j
                  t        j                  d      r
t               nt        j                  t              5  | j                  j                          d d d        y # 1 sw Y   y xY w)Nrb  r;   equiv)r%   r)   r*   r&   r?   
longdoublecan_castfloat64r   r'  rj  rk  r   r  rs  s     r2   test_imshow_float128rz    sy    llnGCIIbhhvR]]34R]]BJJH)+||K( 	

  s   "CCc                      t        j                         \  } }|j                  t        j                  ddgddggt
                     y )NTFr;   )r%   r)   r*   r&   rW   r	  rs  s     r2   test_imshow_boolr|    s5    llnGCIIbhhut}5TBCr4   c                      t        j                         \  } }|j                  t        j                  dt        j
                               | j                  j                          y )Nr  )r%   r)   r*   r&   r)  r%  r   r  rs  s     r2   test_full_invalidr~     s:    llnGCIIbggh'(JJOOr4   zfmt,counted)r   s    colorimage)rI   s   <imagezcomposite_image,count)Tr7   )Fr8   c                 (   t        j                  t        j                  ddd      t        j                  ddd            \  }}t        j                  |dz        }t	        j
                         \  }}|j                  dd       |j                  |g d       |j                  |d d d	   g d
       |t        j                  d<   t        j                         }	|j                  |	|        |	j                         j                  |      |k(  sJ y )Nri  r   r7   r8   r   r   r   r7   r   r7   r   rf   )r8   r   r   r7   zimage.composite_imager   )r&   r  r'   ri   r%   r)   r   r*   r   rq   rr   rs   r  count)
r   countedcomposite_imager  r-   r  r   r.   rv   r   s
             r2   test_compositer    s     ;;ryyQ*BIIb!Q,?@DAq
qAvAllnGCKK1IIaI%IIa"glI+,;CLL()
**,CKKCK <<>(E111r4   c                      t        j                         \  } }|j                  dggd       |j                          |j	                          |j                         |j                         cxk(  rdk(  sJ  J y )Nr   r  r   rc  )r%   r)   r*   relim	autoscaleget_xlimget_ylimrs  s     r2   
test_relimr    s\    llnGCIIseLI)HHJLLN;;=BKKM3V33333r4   c                  r   t        j                         \  } }|j                          |j                  ddgddggdddd      }|j	                  dd       | j
                  j                          t        j                  | j
                  j                               d	d d
f   dk(  j                         sJ y )Nr   r5  rC  rE  F)r  r   rF  r  rc  rn  .r   )r%   r)   r  r*   rr  r   r  r&   rW   buffer_rgbarN  rV  s      r2   test_unclippedr  "  s    llnGCOO	QFQF#F;M 
 
/BFFVF$JJOO HHSZZ++-.sBQBw71<AACCCr4   c                  6   t        j                  d      \  } }|D ]  }|j                           |d   j                  ddgddggdd      }|j	                  d        |j                  |d   j                         t        j                         }| j                  |d	       h |j                         d
hk(  sJ |d   j                  d       t        j                         }| j                  |d	       |j                         |j                         k7  sJ y )Nr8   r7   r   r   r5  r  )r  r   rgbar   rT   )rf   r   )rp  )r%   r)   r  r*   r  set_clip_boxbboxrq   rr   rs   r  rr  )r.   r   rv   r   
buf_before	buf_afters         r2   test_respects_bboxr  .  s    ||AHC 
	QAA'|	LBT OOCFKK JKK
6K*#Z  "#v---FJJGJ

IKK	&K) I$6$6$8888r4   c                     t        j                         \  } }|j                  t        j                  d            }t        j
                  j                  dgdg      }|j                  |      dk(  sJ t        j
                  j                  dgdg      }|j                  |      dk(  sJ t        j                  }|j                  |      dk(  sJ y )	Nr   r   TrA  r  Fz[0]z[nan])	r%   r)   r*   r&   r?   r  r&  r  r%  )r.   rv   r   r   s       r2   test_image_cursor_formattingr  @  s    llnGC	288F#	$B55qc/D  &$...55qc0D  &%///66D  &'111r4   c                    t        j                  dd      }t        j                  ||      \  }}t        j                  d|dz
  dz  z  |dz
  z         }||j	                         z  }t
        j                  d   }| j                         }|j                  |||d	       |j                         } | t        j                         |            }	||	d
<   |j                  |	d       y)zPer-pixel alpha channel test.r   r7   r  r   r8   g[(\?r  r    )r   rF  r"   ).rf   r!   N)r&   r  r  r  maxrg  r6  rf  r*   r   r  )
r   r   rj   xxyyzzr   rF  rv   r  s
             r2   test_image_array_alphar  O  s     	AqA[[AFB	SQ'2=9	:BME==#D				BIIbD	IB				B"  "2&'DDMIId)I,r4   c                      t        j                  t        d      5  t        j                  t        j                  d      ddg       d d d        y # 1 sw Y   y xY w)Nzalpha must be a float, two-dr  r]   r7   )r   )r'  r(  r)  r%   r*   r&   r?   rG  r4   r2   !test_image_array_alpha_validationr  b  sA    	y(F	G 3

288F#Aq623 3 3s   -AAc                     t        t        j                  d         } | j                  d       t	        j
                  dd      }|j                  g d      }t        j                  g dgt        	      }|j                  |d
| dd      }|j                  d       |j                  j                          |j                  |j                  j                        d   d   }|j!                  |j#                  |dggdz  z  j$                  j'                                     dz  j)                  t*              }t        j,                  ||k(        sJ y )Nautumn_r	lightgrey)color)gffffff?rZ  r   r^   r~   )rf   rf   rf   r   r   r   r   +   O   _   B   r7   rf   rf   rf   r   r   r   "   r;   r5  r   )r  rF  r  r  r5  r7   rz   rT   )r   rg  r6  	set_underr%   rg   rH  r&   rW   r  r*   r?  r   r  rn  r  rF  r4  Tr>  r   r   rN  )rF  r.   rv   r   r   
from_imagedirect_computations          r2   test_exact_vminr  g  s   j)*DNNN% **ZS
1C	l	#B88	MND
 
4T	DBGGENJJOO szz223A6q9J 	1#,//55789C?fSk 
 66* 22333r4   image_placementc                  T   t        j                         \  } }|j                  g dg ddd       t        j                  j                  d       |j                  t        j                  j                  dd      dd	d
dd       |j                  dd       |j                  dd       y)zK
    The red box should line up exactly with the outside of the image.
    )r   r   r7   r7   r   )r   r7   r7   r   r   rL  rZ  )r  r  r}   r   r  r  r>   rf   r7   )rF  r   r"   r  r  grY  N)
r%   r)   rp   r&   r   r   r*   randnr   r   rs  s     r2   test_image_placementr    s     llnGCGGO_CCG@IINN8IIbiioob"%GL"!  5KKeKKer4   c                   @     e Zd Zd Zd Z fdZd Zed        Z xZ	S )
QuantityNDc                 \    t        j                  |      j                  |       }||_        |S r  )r&   rq  viewunits)clsinput_arrayr  objs       r2   __new__zQuantityND.__new__  s'    jj%**3/	
r4   c                 (    t        |dd       | _        y Nr  )getattrr  )selfr  s     r2   __array_finalize__zQuantityND.__array_finalize__  s    S'40
r4   c                 |    t        | dd       }t        | 	  |      }t        |t              s|t	        ||      }|S r  )r  super__getitem__
isinstancer  )r  itemr  ret	__class__s       r2   r  zQuantityND.__getitem__  s@    gt,g!$'c:&%*;S%(C
r4   c                    t        ||      }d|v rt        S t        |      dk(  r0|d   }t        |dd      } |t        j                  |      fi |}nXt        |      dk(  rC|d   }|d   }	t        |dd      }
t        |	dd      }|
|n|
}
||
n|}|t        j
                  t        j                  fv r|
|k7  rt        |
}n|t        j                  k(  r|
 d| }n|t        j                  k(  r	|
 d| d	}ng|t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  fv rd }nt        S  ||j!                  t        j"                        |	j!                  t        j"                        fi |}nt        S |t        j$                  |      }|S t'        ||      }|S )
NrR  r7   r   r  dimensionlessr8   *z/())r  NotImplementedr   r&   rq  addsubtractr  multiplydividegreatergreater_equalequal	not_equalless
less_equalr  ndarrayrW   r  )r  ufuncmethodinputsr/  funci0unitout_arri1u0u1s               r2   __array_ufunc__zQuantityND.__array_ufunc__  s   uf%F?!!v;!B2w8D2::b>4V4G[ABBWo6BWo6BzrBzrB--8$$"++%Qrd|"))#Rt1~2::r'7'788R\\77BMM3 3 %%2772::.

0CNvNG!!<hhw'G  !$/Gr4   c                 @    | j                  t        j                        S r  )r  r&   r  )r  s    r2   r   zQuantityND.v  s    yy$$r4   )
__name__
__module____qualname__r  r  r  r  propertyr   __classcell__)r  s   @r2   r  r    s,    
1%N % %r4   r  c                     t        ddgd      } | d d  \  }}t        j                  | j                  t        j                  ddg      k(        sJ | j
                  dk(  sJ t        j                  ||z   j                  t        j                  dg      k(        sJ ||z  j
                  dk(  sJ ||z  j
                  dk(  sJ t        j                  t              5  |t        dd      z    d d d        y # 1 sw Y   y xY w)Nr7   r8   mr   zm*mzm/(m)s)	r  r&   rN  r   rq  r  r'  r(  r  )qq0q1s      r2   test_quantityndr    s    Aq63AqTFB66!##QF++,,,77c>>6627++QC0111G??e###G??g%%%	z	"  
Z3     s   C66C?c                      t        t        j                  d      d      } t        j                         \  }}|j                  |        |j                  j                          y )Nr]   r  )r  r&   r@   r%   r)   r*   r   r  )r   r.   rv   s      r2   test_imshow_quantityndr    s>    
RWWV_c
*CllnGCIIcNJJOOr4   c                    t        j                  ddt         j                        }d|ddd d f<   t         j                  j	                  |d      }d	|j
                  ddddf<   t        j                  d
   j                  d      }| j                         }|j                  |t        j                  dd      dd|      }|j                  t        j                  dd             |j                  |t        j                  dd      dd|      }|j                  t        j                  dd             |j                  dd       |j                         }|j                  |t        j                  dd      dd|       |j                  |t        j                  dd      dd|       |j                  dd       y )Nr:   r7   r;   rf   r   r8   Fr  Tr  wr  r   r4  r  r    )r4  r   r"   rF  r  )r   rz   r   rz   r   rz   rn  )r&   r)  ry  r  rW   rA  rg  r6  r  r)   r*   r   r7  r  r  rr  )r   r   r   masked_datarF  rv   r   s          r2   test_norm_changer    s    7761BJJ/DD1aL%%++d+/K!%KQqS!A#X==#111<D				B	4fnn#A>&id 
 
LBKK  bq12	;V^^1%E(	 
 
NBKK  bq12FFgF&				BIId))r:!  GIIk 0 0bq A#94  IFFgF&r4   rj   c                 .   t        j                  d|t         j                        }d|ddd d f<   | j                         }|j	                  |t        j                  d|j                               dd	
       t        j                  d|t         j                        }d|ddd d f<   |j                         }t        j                  d	   j                  d      }|j	                  |t        j                  d|j                               d|
       y )Nr:   r;   g@xDr   r8   r7   r4  r    r  )r4  r"   rF  i  r  r  )r&   r)  ry  r)   r*   r   r7  r  rg  r6  r  r  )r   r   rj   r   rv   rF  s         r2   test_huge_range_logr    s     7761BJJ/DD1aL				BIIdQTXXZ@%I  7 7761BJJ/DD1aL				B==#111<DIId))qtxxzB%D  2r4   c           
      R   | j                  dd      }|j                  dd      }ddgddggddgddggddgddggf}g d}t        t        ||            D ]O  \  }\  }}||   j                  |       ||   j	                  |       ||   j                  |       ||   j                  |dddddd	       ||   j                  d
d       ||   j                  dd
       ||   j                  j                          ||   j                  j                  d       ||   j                  j                  d       ||   j                  j                  t        j                  dg dd             ||   j                   j                  t        j                  dg dd             R y )Nr7   r   r   )r@   r?   mixedr    r  r   Greys)r"   r  re   rF  r  r  r  r  g?r  rB  )r7   r8   r   rz   T)nbinsstepsinteger)r)   	enumerater=  r+   spyr*   r   r   xaxistick_toptitleset_yset_ticks_positionset_major_locatormtickerMaxNLocatoryaxis)	r   r   ax_testax_ref	plot_dataplot_titlesr  rl   r  s	            r2   test_spy_boxr    s    1%Ga#F Q!Q
Q!Q
Q!QI
 -K"3y+#>? 
:Au
U#
qq	E"q	)#*7!" 	 	, 	q	4%q	3%q	  "q	d#q	**62q	))a}dK	
 	q	))a}dK	

r4   znonuniform_and_pcolor.pngc                     t        j                  d      j                  ddd      } t        | ddg      D ]  \  }}t	        ||      }|j                  t        j                  d      d	z  t        j                  d      d	z  t        j                  d
      j                  d             |j                  |        | d	   j                  t        j                  d      d	z  t        j                  d      d	z  t        j                  d
      j                  d             | D ]$  }|j                          |j                  d       & y )Nrb  r>  r   T)sharexshareyr    r#   r!   r8   rB  r9   r  )ro  )r%   rg   r)   r=  r   ry  r&   r'   r(   	add_image
pcolorfastr  rr  )r   rv   r"   r   s       r2   test_nonuniform_and_pcolorr  9  s
   
**V
$
-
-aT
-
JC y*&=> MR}=
BIIaLA%ryy|q'8IIaL((0	2
R	
 F
		!299Q<1,biil.B.B6.JL 

Gr4   zrgba_antialias.png)aarch64ppc64les390xgy&1|?)r   r5   r  c                     t        j                  dddddd      \  } }d}t        j                  ||f      }d|d d dd d f<   t        j                  |      |z  dz
  }t        j                  |      |z  dz
  }t        j
                  ||      \  }}t        j                  |dz  |dz  z         }d	}	d
}
t        j                  t        j                  dz  |	|z  |
|dz  z  dz  z   z        }d|d t        |dz        d d f   |d t        |dz        d d f   dk  <   d|d t        |dz        d d f   |d t        |dz        d d f   dk  <   |d d t        |dz        d f   |d d t        |dz        d f<   t        j                  |ddddf<   d|ddddf<   d|ddddf<   d|ddddf<   d|ddddf<   t        t         j                  j                        }|j                  d       |j                  d       |j!                         }|d   j#                  |d|dd       |d   j%                  |dz  dz
  |dz  dz   g       |d   j'                  |dz  dz   |dz  d	z
  g       |d   j#                  |d|dd       |d   j#                  |dd |dd!       |d"   j#                  |dd#|dd!       y )$Nr8   )      @r  FT)r_   r  r  constrained_layout   rf   r   rz   K   r  r7   r[  r   ra   g    .AF   Z   g    .r        yellowcyanr   r    g333333r  )r"   rF  r  r     r   r   )r"   interpolation_stagerF  r  r  r   r  )r%   r)   r&   r@   r'   r  sqrtri   r  r   r%  r   r  RdBu_rset_overr  r  r*   r   r   )r.   r   r@  aarj   rk   r-   r  Rf0r   rO  rF  s                r2   test_rgba_antialiasr+  I  s    ||Aq*U#(TCHCA	!QBBssAvJ
		!q3A
		!q3A;;q!DAq
1q!tA	B
A
ruuqyBFQAX\123A .0Ais1Q3xilOAis1Q3xilOc)*-.Ais1Q3xilOAis1Q3xilOc)*C!HIBq#ac()| vvBr"ube|Br"ube|Br"ube|Br"uc#g~Br"uc#g~DMM(NN6
++-CFMM"IDt#MNFOOQqSVQqSV$%FOOQqSVQqSV$% FMM"IDt#MN FMM"Mv$S  2
 FMM"Mv$S  2r4   z<ignore:Data with more than .* cannot be accurately displayedre   r   rb   zdim, size, msg)rowi   z2\*\*23 columns)coli   z2\*\*24 rows)r[   c           	      $   | j                         }|j                         }t        j                  d|dz   f      }d|d d |j                  dz  d f<   |dk(  r|j                  }|j                  |ddddd|      }	t        j                  t        d	| d
      5  | j                  j                          d d d        t        j                  d      }d|d d df<   |dk(  r|j                  }|j                  |ddddd|      }	y # 1 sw Y   QxY w)Nr7   r8   r-  r   r5  r  r>   )r  r  r  r   r"   re   zData with more than z  cannot be accurately displayed.r  re  )r)   r&   r?   sizer  r*   r'  rj  rk  r   r  )
r   r   dimr/  msgre   r
  r  rW   r   s
             r2   test_large_imager2    s    !GFHHa]#E!"E!UZZ1_

e|	AA%l&,% 
 
'B
 
k23% 8. .
/  	
 HHVEE!Q$K
e|	u11V*%+$ 
 
&B s   DDc                    t         j                  j                  dd      dz  dz   }| j                  dd      }|d   j	                  |d       |d   j	                  |dd	
       |d   j	                  |d       |d   j	                  |ddd       |d   j	                  |ddd       |j                  dd      }|d   j	                  |t        j                                |d   j	                  |t        j                  d	             |d   j	                  |t        j                  d             |d   j	                  |t        j                  ddd             |d   j	                  |dd       t        |d   j                  d   j                        t
        j                  u sJ t        j                  t              5  |d   j	                  |d       d d d        y # 1 sw Y   y xY w)Nrz   g?rZ  r7   r   r   r  rh  rx  )r4  r  r8   symlogr   r[  r  )r4  r  r  r9   logit)r  )	linthresh)r6  r  r  )r[  r  )r4  climfoobar)r&   r   r   r)   r*   r   r7  rc  typeimagesr4  r'  r(  r  )r   r   rh  axtsaxrss        r2   test_str_normsr=    s   
		r2#b(AQ"DGNN15N!GNN15rN*GNN18N$GNN18"2N6GNN17"N5Aq!DGNN16>>+N,GNN16>>r2N3GNN16,,q9N:GNN16,,qrKNLGNN17N2Qq!&&'6>>999	z	" )Qqx() ) )s   G--G6c                  8   t        j                  t        j                  j                  t                     } t        j                  t        d      5   | t        j                  d      d        d d d        t        j                  t        d      5   | t        j                  d      t        j                  d             d d d        t        j                  t        d      5   | t        j                  d      t        j                  d             d d d        t        j                  t        d	      5   | t        j                  dt        j                        t        j                  d             d d d        t        j                  t        d
      5   | t        j                  d      t        j                  d      j                         d d d        y # 1 sw Y   pxY w# 1 sw Y   *xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr   zmust be a NumPy arrayr  )rB  rB  zdifferent dimensionalities)rB  rB  r9   zmust be RGBA)rB  rB  r   zMismatched typeszmust be C-contiguous)	functoolspartialrg  _imageresampler   r'  r(  r  r&   r?   rB   r  )rB  s    r2   test__resample_valid_outputrC    sg     !4!4
KH	z)@	A )&!4()	z)E	F 8&!288I#678	z	8 ;)$bhhy&9:;	z);	< ?&"((+RXXf-=>?	z)?	@ 7&!288F#3#5#567 7) )8 8; ;? ?7 7s<   G0G+&0G89?H:HG(+G58HHHc                     t        j                         } t        |       }t        j                  t
        d      5  |j                          d d d        t        j                  dt              j                  d      }|j                  |       |j                         dk(  sJ |j                         |j                         k(  sJ y # 1 sw Y   }xY w)Nz"You must first set the image arrayr  r@  r;   r  )r%   r  r   r'  r(  rm  	get_shaper&   r'   r  r(   ry  get_sizer  s      r2   test_axesimage_get_shaperG    s    	B	2B	|+O	P 

		"E"**62AKKN<<>V###;;=BLLN*** s   CCc                     t        j                         j                         } t        j                  d      j                  d      }| j                  || j                         | j                         dk(  sJ | j                  |t               j                  d      | j                  z          | j                         dk(  sJ | j                  || j                  d       | j                         dk(  sJ y )Nr9   r]   r   r5  r8   r7   )r   r  )r%   rg   rf  r&   r'   r(   r*   r  
get_aspectr   r   r   r  s     r2   .test_non_transdata_image_does_not_touch_aspectrJ    s    		!	!	#B	1		f	%BIIbBLLI)==?f$$$IIbHJ,,Q/",,>I?==?aIIbBLLI3==?ar4   )
contextlibr   r   r?  rq   r   pathlibr   r  r  urllib.requestr  numpyr&   numpy.testingr   PILr   
matplotlibrg  r   r	   r:  r
   r   r%   r   r   matplotlib.imager   r   r   r   r   matplotlib.testing.decoratorsr   r   matplotlib.transformsr   r   r   matplotlib.tickertickerr  r'  r3   rF   rX   markparametrizern   rx   r   r   r   r   r   r   r   r   r   r   r   r  r%  r  r  r  r!  r#  r*  r.  r1  r<  rP  rT  r`  ri  ru  r  r  r  r  r  r  r  r  r  r'   r(   r  r  r  r  r  r  r  r"  r'  r+  r0  machinerE  rH  splitr<   rS  rW  r]  r_  r  r7  rp  rt  rz  r|  r~  r  r  r  r  r  r  r  contextr  r  r  r  r  r  r  r  r  r  r+  filterwarningsr2  r=  rC  rG  rJ  )r  s   0r2   <module>r]     s.	       	 	   
   ,  F F< < O A A #  ?#73 4( %&D9	. :	. +,#U^?+?+  ,udm<:,E5>:B ; =B ' (. ). ( )" 	) 	)$$  >?- @-D  BCA DA*2)4 =/t46 56D+N %.	=),#661a.	4 g,/0r(,-DD <.0 1 #$G4 5 8*$g> ? ( ) ,-4@I AI =/tO PF8 /0"'33 *+> ?4 (% )% $%#U^WN!N!: ()t7K L0 GF 34"'33!'0-- 		2			"yryy~'='=f'E	G		2			"yryy}'<'<V'D	F11B $%48 9 >"5 66	%3, ./TsK> L>B <.d3+ 4+" )*=
* >
* 01+8++-9at"'33B& #9#?#?#ABahbhhqkBD%D%& )*GL M *+WM N /0"'33 ^^! "#	1#	1D
 02DEG09j2IJ2 KG2 4	D9$2 - -$3
 74 48 $%5%."'3
3
"9% 9%x	  (' )'6 r1g&(2 ) '2$ 
 
@ ./w? @ 't!!!#'FFAO22O22n  = >GW#569689 	*& +9 7>&> () ))*7	+ e Cs    Z+
