U
    Âmœd§;  ã                   @   sL  d dl Zd dlmZ d dlZd dlZd dlmZ d dl	m
Z
mZ e
dgdddd	d
„ ƒZe
dgdddddd„ ƒZe
dgƒdd„ ƒZdd„ Zeƒ dd„ ƒZeƒ dd„ ƒZeƒ dd„ ƒZe
dgdddd„ ƒZe
dgddd d!„ ƒZe
d"gddd#d$„ ƒZe
d%gddd&d'„ ƒZe
d(gddd)d*„ ƒZe
d+gddd,d-„ ƒZe
d.gddd/d0„ ƒZe
d1gddd2d3„ ƒZed4gd5d6d7„ ƒZed4gd5d8d9„ ƒZd:d;„ Zd<d=„ Zd>d?„ Zd@dA„ Z dBdC„ Z!dDdE„ Z"ed4gd5dFdG„ ƒZ#ed4gd5dHdI„ ƒZ$dJdK„ Z%dLdM„ Z&dNdO„ Z'dPdQ„ Z(ed4gd5dRdS„ ƒZ)dTdU„ Z*dVdW„ Z+dXdY„ Z,e
dZgddd[d\„ ƒZ-dS )]é    N)Úassert_allclose)Úpyplot)Úimage_comparisonÚcheck_figures_equalZ
polar_axesÚdefaultgú~j¼t“ˆ?)ÚstyleÚtolc               	   C   sº   t  ddd¡} dt j |  }t ¡ }|jdd}|j|| ddd	\}|jd
dddd	\}d}| | ||  }}| |g|gd¡ |jd||fddtdddddd |j	ddddd d S )Nç        ç      ð?çü©ñÒMbP?ç      @T©Úpolarz#ee8d18é   )ÚcolorZlw©r   r   ©r   é   z#0000ffr   é   Úoza polar annotation)çš™™™™™©?r   zfigure fractionÚblackr   ©Ú	facecolorÚshrinkÚleftÚbaseline)ÚxyÚxytextÚ
textcoordsÚ
arrowpropsÚhorizontalalignmentÚverticalalignmentÚxÚout)ZaxisÚtick1OnÚtick2OnÚ	direction)
ÚnpÚarangeÚpiÚpltÚfigureÚadd_subplotÚplotÚannotateÚdictÚtick_params)ÚrÚthetaÚfigÚaxÚlineÚindZthisrZ	thistheta© r8   úT/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/matplotlib/tests/test_polar.pyÚtest_polar_annotations
   s$    
ú	r:   Zpolar_coordsT)r   Zremove_textr   c                  C   s”   t jjdddddd} t ¡ }|jdd}| | ¡ |  |j¡ |j	d	t
jd
 dft
jd dfddtddddddd	 | dd¡ | dd¡ d S )Nr   é
   é   r2   ç      à?)r   ÚalphaÚequal)Zaspectzthe topç       @ç      $@r   g      4@r   r   r   r   r   r   T)r   r   Zxycoordsr   r    r!   r"   Zclip_oniìÿÿÿ)ÚmplZpatchesZEllipser+   r,   r-   Z
add_artistZset_clip_boxZbboxr/   r(   r*   r0   Zset_xlimÚset_ylim)Úelr4   r5   r8   r8   r9   Útest_polar_coord_annotations,   s"    

ørE   zpolar_alignment.pngc                  C   s–   t  ddd¡} ddddddg}t ¡ }d	d	ddg}|j|d
dd}| | ¡ |j|d
dd}|j d¡ tdƒD ] }|j	| j
|| | ddd qpd S )Nr   ih  éZ   çš™™™™™É?çš™™™™™Ù?g333333ã?çš™™™™™é?r   çš™™™™™¹?TÚ
horizontal)r   ÚlabelÚverticalFé   r   Útop)Zangler!   r"   )r(   r)   r+   r,   Úadd_axesZset_thetagridsÚpatchZset_visibleÚrangeÚaxesZ
set_rgrids)ZanglesZgrid_valuesr4   ÚrectrK   rM   Úir8   r8   r9   Útest_polar_alignmentI   s    

  þrV   c                  C   sJ   t  ¡ } t  ddgddg¡ t  ddgddg¡ t| jƒdksFtd	ƒ‚d S )
Nr   rN   rJ   rG   r   é   g333333Ó?rH   z!More than one polar axes created.)r+   r,   r   ÚlenrS   ÚAssertionError)r4   r8   r8   r9   Útest_polar_twice^   s    rZ   c                 C   s„   | j dd}| t ddg¡ddg¡ | t ddg¡ddg¡ |j dd}| t dd	g¡ddg¡ | t dd
g¡ddg¡ d S )Nr   ©Ú
projectioné³   iMÿÿÿrG   rJ   rN   éþÿÿÿéµ   if  )r-   r.   r(   Údeg2rad©Úfig_testÚfig_refr5   r8   r8   r9   Útest_polar_wrape   s    rd   c                    s†   dd l m  m‰  ˆ  ¡  ddddg}dddd	g}t | j¡ t ‡ fd
d„|D ƒ|¡ |jdd}| 	t
 |¡|¡ |jdd d S )Nr   ç      >@ç     €F@ç      N@ç     €V@r
   r@   ç      @r   c                    s   g | ]}|ˆ j  ‘qS r8   ©Údeg©Ú.0r#   ©Zunitsr8   r9   Ú
<listcomp>w   s     z&test_polar_units_1.<locals>.<listcomp>r   r[   rk   )Úxlabel)Úmatplotlib.testing.jpl_unitsÚtestingÚ	jpl_unitsÚregisterr+   r,   Únumberr   r-   r.   r(   r`   Úset)rb   rc   ÚxsÚysr5   r8   rn   r9   Útest_polar_units_1o   s    ry   c                    sÔ   dd l m  m‰  ˆ  ¡  ddddg}‡ fdd„|D ƒ}dd	d
dg}‡ fdd„|D ƒ}t | j¡ tj||ddd tt 	¡ j
 ¡ ˆ jƒsŽt‚|jdd}| t |¡|¡ |j
 tj dj¡¡ |jddd d S )Nr   re   rf   rg   rh   c                    s   g | ]}|ˆ j  ‘qS r8   rj   rl   rn   r8   r9   ro   ƒ   s     z&test_polar_units_2.<locals>.<listcomp>r
   r@   ri   r   c                    s   g | ]}|ˆ j  ‘qS r8   )Úkm)rm   Úyrn   r8   r9   ro   …   s     Zradrz   )Z
thetaunitsZrunitsr   r[   z{:.12})rp   Zylabel)rq   rr   rs   rt   r+   r,   ru   r   Ú
isinstanceÚgcaÚxaxisZget_major_formatterZUnitDblFormatterrY   r-   r.   r(   r`   Zset_major_formatterrB   ZtickerZFuncFormatterÚformatrv   )rb   rc   rw   Zxs_degrx   Zys_kmr5   r8   rn   r9   Útest_polar_units_2~   s    ÿr€   Z
polar_rmin)r   c                  C   s^   t  ddd¡} dt j |  }t ¡ }|jddddgdd}| || ¡ | d	¡ | d
¡ d S )Nr   ri   ç{®Gáz„?rN   rJ   rI   Tr   r@   r=   ©	r(   r)   r*   r+   r,   rP   r.   Úset_rmaxÚset_rmin©r2   r3   r4   r5   r8   r8   r9   Útest_polar_rmin“   s    
r†   Zpolar_negative_rminc                  C   s^   t  ddd¡} dt j |  }t ¡ }|jddddgdd}| || ¡ | d¡ | d¡ d S )	Ng      Àr	   r   rN   rJ   rI   Tr   r‚   r…   r8   r8   r9   Útest_polar_negative_rminŸ   s    
r‡   Zpolar_roriginc                  C   sh   t  ddd¡} dt j |  }t ¡ }|jddddgdd}| || ¡ | d	¡ | d
¡ | 	d¡ d S )Nr   ri   r   rN   rJ   rI   Tr   r@   r=   r	   )
r(   r)   r*   r+   r,   rP   r.   rƒ   r„   Úset_roriginr…   r8   r8   r9   Útest_polar_rorigin«   s    

r‰   zpolar_invertedylim.pngc                  C   s.   t  ¡ } | jddddgdd}| dd¡ d S )NrJ   rI   Tr   rN   r   )r+   r,   rP   rC   ©r4   r5   r8   r8   r9   Útest_polar_invertedylim¸   s    r‹   zpolar_invertedylim_rorigin.pngc                  C   sZ   t  ¡ } | jddddgdd}|j d¡ |jddgddgdd | d¡ | d	¡ d S )
NrJ   rI   Tr   r   rN   Únone)Úcr   )r+   r,   rP   ÚyaxisZset_invertedr.   Zmarginsrˆ   rŠ   r8   r8   r9   Útest_polar_invertedylim_rorigin¿   s    
r   Zpolar_theta_positionc                  C   s`   t  ddd¡} dt j |  }t ¡ }|jddddgdd}| || ¡ | d	d
¡ | d¡ d S )Nr   ri   r   rN   rJ   rI   Tr   ZNWé   Ú	clockwise)	r(   r)   r*   r+   r,   rP   r.   Zset_theta_zero_locationÚset_theta_directionr…   r8   r8   r9   Útest_polar_theta_positionË   s    r“   Zpolar_rlabel_positionc                  C   s.   t  ¡ } | jdd}| d¡ |jdd d S )Nr   r[   i;  Úauto)Úrotation)r+   r,   r-   Zset_rlabel_positionr1   rŠ   r8   r8   r9   Útest_polar_rlabel_position×   s    
r–   Zpolar_theta_wedgec               	   C   s&  t  ddd¡} dt j |  }t  ddd¡}t  ddd¡}d	}tjt|ƒt|ƒd
didd\}}t|ƒD ]º\}}t|ƒD ]¨\}	}
|||	f }| || ¡ ||
k r´| |¡ | 	|
¡ n| |
¡ | 	|¡ | 
d¡ |jdd||t|ƒ  dd |jjddd |j ¡ jjdddddgd qvqfd S )Nr   ri   r   rN   g      .@g     v@rh   g      I@)r$   ÚinZinoutr   T)é   é   )Ú
subplot_kwZfigsizer‘   r”   )r%   r&   r'   r•   )Zlabel2Onr•   r   g      @é   r;   )Zsteps)r(   r)   r*   r+   ÚsubplotsrX   Ú	enumerater.   Zset_thetaminZset_thetamaxr’   r1   rŽ   Zset_tick_paramsr~   Zget_major_locatorÚbaseZ
set_params)r2   r3   Z
theta_minsZ
theta_maxsZ
DIRECTIONSr4   ÚaxsrU   ÚstartÚjÚendr5   r8   r8   r9   Útest_polar_theta_limitsß   s6    þ




þÿr£   Zpng)Ú
extensionsc                 C   sP   | j ddid}|jdd |jdd |j ddid}| d¡ | d¡ d S )	Nr   T©rš   r;   )rO   r=   ©ÚbottomrA   ©rœ   Úset_rlimrƒ   r„   ra   r8   r8   r9   Útest_polar_rlim   s    
rª   c                 C   sH   | j ddid}|jddgd |j ddid}| d¡ | d¡ d S )Nr   Tr¥   r=   r;   r¦   rA   r¨   ra   r8   r8   r9   Útest_polar_rlim_bottom  s
    
r«   c                  C   sD   t  ¡ jdd} |  t d¡t d¡d ¡ |  ¡ d dks@t‚d S )Nr   r[   r;   r   r   )r+   r,   r-   r.   r(   r)   Úget_ylimrY   ©r5   r8   r8   r9   Útest_polar_rlim_zero  s    r®   c                  C   sj   t jdd t  ¡ } |  ¡ dkr,|  ¡ dks0t‚t  d¡ t  ¡  t  ¡ } |  ¡ dkrb|  ¡ dksft‚d S )Nr   r[   r   r   Úall)r+   Úsubplotr}   Úget_rminZget_rmaxrY   Úcloser   r­   r8   r8   r9   Útest_polar_no_data  s    
r³   c                  C   s2   t jdd t  ¡ } |  d¡ |  ¡ dks.t‚d S )Nr   r[   Úlogr   )r+   r°   r}   Ú
set_rscaler±   rY   r­   r8   r8   r9   Útest_polar_default_log_lims&  s    
r¶   c               	   C   s4   t  ¡ jdd} t t¡ |  d¡ W 5 Q R X d S )Nr   r[   Zdatalim)r+   r,   r-   ÚpytestÚraisesÚ
ValueErrorZset_adjustabler­   r8   r8   r9   Ú!test_polar_not_datalim_adjustable-  s    rº   c                  C   sv   t  ¡ } | jdd}|jdd t j|j ¡ dd | j ¡  |j	j
d j ¡ dksXt‚|jj
d j ¡ dksrt‚d S )NTr   rG   )r>   F)Úvisibler   )r+   r,   r-   ÚgridZsetprŽ   Zget_ticklabelsÚcanvasÚdrawr~   Ú
majorTicksZgridlineZ	get_alpharY   rŠ   r8   r8   r9   Útest_polar_gridlines3  s    
rÀ   c                  C   sJ   t jddid\} }| j ¡  | | j ¡ ¡}t|jddddgdd	 d S )
Nr\   r   r¥   gµ¦yÇñZ@g,ÔšæG=@g_)ËGÞ€@g½R–!Ž+|@r   )Zrtol)r+   rœ   r½   r¾   Zget_tightbboxZget_rendererr   Zextents)r4   r5   Zbbr8   r8   r9   Útest_get_tightbbox_polar?  s    
 
 ÿrÁ   c                 C   s¤   | j dddjdgdgdtj ddd	}| j d
ddjdgdgdtj ddd	}|j dddjdgdgdtj ddd	}|j d
ddjdgdgdtj ddd	}d S )Néy   r   r[   r   r   r   rŒ   F)Z	edgecolorZantialiasedéz   éýÿÿÿrN   r^   )r-   Úbarr(   r*   )rb   rc   Úp1Úp2Zp3Zp4r8   r8   r9   Ú)test_polar_interpolation_steps_constant_rG  s8        ÿ    ÿ    ÿ    ÿrÈ   c                 C   s`   | j dd dtjd gddg¡\}d| ¡ _|j dd t dtjd d¡t ddd¡¡ d S )Nr   r[   r   rN   r   éd   ée   )r-   r.   r(   r*   Úget_pathÚ_interpolation_stepsÚlinspace)rb   rc   Úlr8   r8   r9   Ú)test_polar_interpolation_steps_variable_rU  s    $
 ÿrÏ   c               	   C   s„   t jdd} |  ddtj ¡ | jddd tjtdd	 |  dd
tj ¡ W 5 Q R X tjtdd	 | jddd W 5 Q R X d S )Nr   r[   r   rN   r   i¸  )ZthetaminZthetamaxz+angle range must be less than a full circle)Úmatchr   i  )r+   r°   Úset_thetalimr(   r*   r·   r¸   r¹   r­   r8   r8   r9   Útest_thetalim_valid_invalid]  s    ÿÿrÒ   c                  C   sj   t jdd} |  dd¡ tt |  ¡ |  ¡ f¡ƒdks:t‚|  d¡ tt |  ¡ |  ¡ f¡ƒdksft‚d S )Nr   r[   r   r   r   )rN   r   )	r+   r°   rÑ   Útupler(   ÚradiansZget_thetaminZget_thetamaxrY   r­   r8   r8   r9   Útest_thetalim_argsi  s
    "
rÕ   c                  C   s|   t jdddid\} }| ¡ D ]}| dtj¡ q| ¡ D ]<}t |j ¡ ¡ 	¡ }t
 d¡|ksdt‚t
 d¡|ks:t‚q:d S )NzAAAABB.r\   r   r¥   r   rF   rÉ   )r+   Úsubplot_mosaicÚvaluesrÑ   r(   r*   Údegreesr~   Zget_majorticklocsÚtolistr·   ZapproxrY   )r4   rŸ   r5   Zticklocsr8   r8   r9   Útest_default_thetalocatorq  s     ÿ
rÚ   c                  C   s4   t jdd} |  dtjd ¡}| ¡ jdks0t‚d S )Nr   r[   r   rW   r   )r+   r°   Úaxvspanr(   r*   rË   rÌ   rY   )r5   Úspanr8   r8   r9   Útest_axvspan  s    rÝ   c                 C   s`   | j dddddid}dD ]}|j|  ¡  q|j dddddid}dD ]}|j|  ¡  qHd S )NrN   Tr\   r   )Úsharexrš   )r   r   r   )Úshareyrš   )rœ   ZflatÚremove)rc   rb   rŸ   rU   r8   r8   r9   Útest_remove_shared_polar…  s        ÿ   ÿrá   c                  C   s®   t jddddiddd\} }| j ¡  |d jjd  ¡ s>t‚|d jjd  ¡ sVt‚t j	dddiddd\} }| j ¡  |d	 jjd  ¡ s’t‚|d	 jjd  ¡ sªt‚d S )
NrN   r\   r   T)rš   rÞ   rß   r   r   zab
cdÚb)
r+   rœ   r½   r¾   r~   r¿   Zget_visiblerY   rŽ   rÖ   )r4   rŸ   r8   r8   r9   Ú"test_shared_polar_keeps_ticklabels”  s&        ÿ

   ÿ

rã   c                  C   sD   t jdd} |  dd¡ |  d¡ |  ddg¡ |  ¡ dks@t‚d S )	Nr   r[   r   r   r=   rJ   rG   )r   rG   )r+   r°   rÛ   Zaxvliner.   r¬   rY   r­   r8   r8   r9   Ú(test_axvline_axvspan_do_not_modify_rlims¡  s
    
rä   c                  C   sÄ   t jdd} |  dd¡dks t‚|  dd¡dks4t‚|  dd¡dksHt‚|  dd¡d	ks\t‚|  dd¡d
kspt‚|  dd¡dks„t‚|  dd¡dks˜t‚|  dd¡dks¬t‚|  dd¡dksÀt‚d S )Nr   r[   r   u   Î¸=0Ï€ (0Â°), r=0.000rJ   u   Î¸=0.00Ï€ (0Â°), r=0.100r   u   Î¸=0.000Ï€ (0.0Â°), r=1.000u   Î¸=0.3Ï€ (57Â°), r=0.000u   Î¸=0.32Ï€ (57Â°), r=0.100u   Î¸=0.318Ï€ (57.3Â°), r=1.000rN   u   Î¸=0.6Ï€ (115Â°), r=0.000u   Î¸=0.64Ï€ (115Â°), r=0.100u   Î¸=0.637Ï€ (114.6Â°), r=1.000)r+   r°   Zformat_coordrY   r­   r8   r8   r9   Útest_cursor_precision©  s    rå   zpolar_log.pngc                  C   sX   t  ¡ } | jdd}| d¡ | dd¡ d}| t ddtj |¡t 	dd|¡¡ d S )	NTr   r´   r   iè  rÉ   r   rN   )
r+   r,   r-   rµ   r©   r.   r(   rÍ   r*   Zlogspace)r4   r5   Únr8   r8   r9   Útest_polar_log·  s    
rç   ).Únumpyr(   Znumpy.testingr   r·   Z
matplotlibrB   r   r+   Zmatplotlib.testing.decoratorsr   r   r:   rE   rV   rZ   rd   ry   r€   r†   r‡   r‰   r‹   r   r“   r–   r£   rª   r«   r®   r³   r¶   rº   rÀ   rÁ   rÈ   rÏ   rÒ   rÕ   rÚ   rÝ   rá   rã   rä   rå   rç   r8   r8   r8   r9   Ú<module>   sz   
!
ÿ


	









 




	





