B
    ·ôJd:  ã               @   s.  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!ed4gd5dDdE„ ƒZ"ed4gd5dFdG„ ƒZ#dHdI„ Z$dJdK„ Z%dLdM„ Z&dNdO„ Z'ed4gd5dPdQ„ ƒZ(dRdS„ Z)dTdU„ Z*dVdW„ Z+dS )Xé    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 )Ng        g      ð?gü©ñÒMbP?g      @T)Úpolarz#ee8d18é   )ÚcolorZlw)r   r   )r   é   z#0000ffr   i   Úoza polar annotation)gš™™™™™©?gš™™™™™©?zfigure fractionÚblackgš™™™™™©?)Ú	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© r.   úM/var/www/html/venv/lib/python3.7/site-packages/matplotlib/tests/test_polar.pyÚtest_polar_annotations
   s"    
r0   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 )N)r   r   é
   é   r(   g      à?)r   ÚalphaÚequal)Zaspectzthe topg       @g      $@r
   g      4@r	   r   gš™™™™™©?)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    r&   Zset_xlimÚset_ylim)Úelr*   r+   r.   r.   r/   Útest_polar_coord_annotations,   s     

r8   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¡ x,tdƒD ] }|j	| j
|| | ddd qrW d S )Nr   ih  éZ   gš™™™™™É?gš™™™™™Ù?g333333ã?gš™™™™™é?r   gš™™™™™¹?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_valuesr*   Úrectr:   r<   Úir.   r.   r/   Útest_polar_alignmentI   s    

rE   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   r=   gš™™™™™¹?gš™™™™™É?r
   é   g333333Ó?gš™™™™™Ù?z!More than one polar axes created.)r!   r"   r	   ÚlenrB   ÚAssertionError)r*   r.   r.   r/   Útest_polar_twice^   s    rI   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ÿÿÿgš™™™™™É?gš™™™™™¹?r=   éþÿÿÿéµ   if  )r#   r$   r   Údeg2rad)Úfig_testÚfig_refr+   r.   r.   r/   Útest_polar_wrape   s    rQ   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   g      >@g     €F@g      N@g     €V@g      ð?g       @g      @g      @c                s   g | ]}|ˆ j  ‘qS r.   )Údeg)Ú.0r   )Úunitsr.   r/   ú
<listcomp>w   s    z&test_polar_units_1.<locals>.<listcomp>r	   )rJ   rR   )Úxlabel)Úmatplotlib.testing.jpl_unitsÚtestingÚ	jpl_unitsÚregisterr!   r"   Únumberr	   r#   r$   r   rN   Úset)rO   rP   ÚxsÚysr+   r.   )rT   r/   Útest_polar_units_1o   s    r_   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   g      >@g     €F@g      N@g     €V@c                s   g | ]}|ˆ j  ‘qS r.   )rR   )rS   r   )rT   r.   r/   rU   ƒ   s    z&test_polar_units_2.<locals>.<listcomp>g      ð?g       @g      @g      @c                s   g | ]}|ˆ j  ‘qS r.   )Úkm)rS   Úy)rT   r.   r/   rU   …   s    Zradr`   )Z
thetaunitsZrunitsr	   )rJ   z{:.12})rV   Zylabel)rW   rX   rY   rZ   r!   r"   r[   r	   Ú
isinstanceÚgcaÚxaxisZget_major_formatterZUnitDblFormatterrH   r#   r$   r   rN   Zset_major_formatterr5   ZtickerZFuncFormatterÚformatr\   )rO   rP   r]   Zxs_degr^   Zys_kmr+   r.   )rT   r/   Útest_polar_units_2~   s    rf   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   g      @g{®Gáz„?r=   gš™™™™™¹?gš™™™™™é?T)r	   g       @g      à?)	r   r   r    r!   r"   r?   r$   Úset_rmaxÚset_rmin)r(   r)   r*   r+   r.   r.   r/   Útest_polar_rmin“   s    
ri   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      Àg        g{®Gáz„?r=   gš™™™™™¹?gš™™™™™é?T)r	   )	r   r   r    r!   r"   r?   r$   rg   rh   )r(   r)   r*   r+   r.   r.   r/   Útest_polar_negative_rminŸ   s    
rj   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   g      @g{®Gáz„?r=   gš™™™™™¹?gš™™™™™é?T)r	   g       @g      à?g        )
r   r   r    r!   r"   r?   r$   rg   rh   Úset_rorigin)r(   r)   r*   r+   r.   r.   r/   Útest_polar_rorigin«   s    

rl   zpolar_invertedylim.pngc              C   s.   t  ¡ } | jddddgdd}| dd¡ d S )Ngš™™™™™¹?gš™™™™™é?T)r	   r=   r   )r!   r"   r?   r6   )r*   r+   r.   r.   r/   Útest_polar_invertedylim¸   s    rm   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 )
Ngš™™™™™¹?gš™™™™™é?T)r	   r   r=   Únone)Úcr
   )r!   r"   r?   ÚyaxisZset_invertedr$   Zmarginsrk   )r*   r+   r.   r.   r/   Útest_polar_invertedylim_rorigin¿   s    
rq   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   g      @g{®Gáz„?r=   gš™™™™™¹?gš™™™™™é?T)r	   ZNWé   Ú	clockwise)	r   r   r    r!   r"   r?   r$   Zset_theta_zero_locationÚset_theta_direction)r(   r)   r*   r+   r.   r.   r/   Útest_polar_theta_positionË   s    ru   Zpolar_rlabel_positionc              C   s.   t  ¡ } | jdd}| d¡ |jdd d S )Nr	   )rJ   i;  Úauto)Úrotation)r!   r"   r#   Zset_rlabel_positionr'   )r*   r+   r.   r.   r/   Útest_polar_rlabel_position×   s    
rx   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\}}xÊt|ƒD ]¾\}}x´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 qzW qhW d S )Nr   g      @g{®Gáz„?r=   g      .@g     v@g     €V@g      I@)r   ÚinZinoutr	   T)é   é   )Ú
subplot_kwZfigsizers   rv   )r   r   r   rw   )Zlabel2Onrw   r   g      @é   r1   )Zsteps)r   r   r    r!   ÚsubplotsrG   Ú	enumerater$   Zset_thetaminZset_thetamaxrt   r'   rp   Zset_tick_paramsrd   Zget_major_locatorÚbaseZ
set_params)r(   r)   Z
theta_minsZ
theta_maxsZ
DIRECTIONSr*   ÚaxsrD   ÚstartÚjÚendr+   r.   r.   r/   Útest_polar_theta_limitsß   s0    



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|   r1   )r>   g      à?)Úbottomg      $@)r~   Úset_rlimrg   rh   )rO   rP   r+   r.   r.   r/   Ú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	   T)r|   g      à?r1   )r‡   g      $@)r~   rˆ   rg   rh   )rO   rP   r+   r.   r.   r/   Ú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	   )rJ   r1   g{®Gáz„?r   )r!   r"   r#   r$   r   r   Úget_ylimrH   )r+   r.   r.   r/   Ú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	   )rJ   r   r   Úall)r!   Úsubplotrc   Zget_rminZget_rmaxrH   Úcloser	   )r+   r.   r.   r/   Útest_polar_no_data  s    
r   c           	   C   s4   t  ¡ jdd} t t¡ |  d¡ W d Q R X d S )Nr	   )rJ   Zdatalim)r!   r"   r#   ÚpytestÚraisesÚ
ValueErrorZset_adjustable)r+   r.   r.   r/   Ú!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 )NT)r	   gš™™™™™É?)r3   F)Úvisibler   )r!   r"   r#   ÚgridZsetprp   Zget_ticklabelsÚcanvasÚdrawrd   Ú
majorTicksZgridlineZ	get_alpharH   )r*   r+   r.   r.   r/   Útest_polar_gridlines,  s    
rš   c              C   sJ   t jddid\} }| j ¡  | | j ¡ ¡}t|jddddgdd	 d S )
NrJ   r	   )r|   gµ¦yÇñZ@g,ÔšæG=@g_)ËGÞ€@g½R–!Ž+|@gü©ñÒMbP?)Zrtol)r!   r~   r—   r˜   Zget_tightbboxZget_rendererr   Zextents)r*   r+   Zbbr.   r.   r/   Útest_get_tightbbox_polar8  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	   )rJ   r   r   r
   rn   F)Z	edgecolorZantialiasedéz   éýÿÿÿr=   rL   )r#   Úbarr   r    )rO   rP   Úp1Úp2Zp3Zp4r.   r.   r/   Ú)test_polar_interpolation_steps_constant_r@  s    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	   )rJ   r   r=   r   éd   ée   )r#   r$   r   r    Úget_pathÚ_interpolation_stepsZlinspace)rO   rP   Úlr.   r.   r/   Ú)test_polar_interpolation_steps_variable_rN  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 d Q R X tjtdd	 | jddd W d Q R X d S )Nr	   )rJ   r   r=   i   i¸  )ZthetaminZthetamaxz+angle range must be less than a full circle)Úmatchr
   i  )r!   rŽ   Úset_thetalimr   r    r‘   r’   r“   )r+   r.   r.   r/   Útest_thetalim_valid_invalidV  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	   )rJ   r   r   )r   r   )r=   r
   )	r!   rŽ   rª   Útupler   ÚradiansZget_thetaminZget_thetamaxrH   )r+   r.   r.   r/   Útest_thetalim_argsb  s
    "
r®   c              C   s„   t jdddid\} }x| ¡ D ]}| dtj¡ q W xH| ¡ D ]<}t |j ¡ ¡ 	¡ }t
 d¡|ksjt‚t
 d¡|ks@t‚q@W d S )NzAAAABB.rJ   r	   )r|   r   r9   r£   )r!   Úsubplot_mosaicÚvaluesrª   r   r    Údegreesrd   Zget_majorticklocsÚtolistr‘   ZapproxrH   )r*   r   r+   Zticklocsr.   r.   r/   Útest_default_thetalocatorj  s    r³   c              C   s4   t jdd} t  dtjd ¡}| ¡ jdks0t‚d S )Nr	   )rJ   r   rF   r   )r!   rŽ   Úaxvspanr   r    r¥   r¦   rH   )r+   Úspanr.   r.   r/   Útest_axvspanx  s    r¶   c             C   sh   | j dddddid}xdD ]}|j|  ¡  qW |j dddddid}xdD ]}|j|  ¡  qNW d S )Nr=   TrJ   r	   )Úsharexr|   )r   r   r
   )Úshareyr|   )r~   ZflatÚremove)rP   rO   r   rD   r.   r.   r/   Ú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 )
Nr=   rJ   r	   T)r|   r·   r¸   )r   r   r   zab
cdÚb)
r!   r~   r—   r˜   rd   r™   Zget_visiblerH   rp   r¯   )r*   r   r.   r.   r/   Ú"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	   )rJ   r   r   g      à?gš™™™™™¹?gš™™™™™É?)r   gš™™™™™É?)r!   rŽ   r´   Zaxvliner$   r‹   rH   )r+   r.   r.   r/   Ú(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	   )rJ   r   u   Î¸=0Ï€ (0Â°), r=0.000gš™™™™™¹?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.000r=   u   Î¸=0.6Ï€ (115Â°), r=0.000u   Î¸=0.64Ï€ (115Â°), r=0.100u   Î¸=0.637Ï€ (114.6Â°), r=1.000)r!   rŽ   Zformat_coordrH   )r+   r.   r.   r/   Útest_cursor_precision¢  s    r¾   ),Únumpyr   Znumpy.testingr   r‘   Z
matplotlibr5   r   r!   Zmatplotlib.testing.decoratorsr   r   r0   r8   rE   rI   rQ   r_   rf   ri   rj   rl   rm   rq   ru   rx   r…   r‰   rŠ   rŒ   r   r”   rš   r›   r¢   r¨   r«   r®   r³   r¶   rº   r¼   r½   r¾   r.   r.   r.   r/   Ú<module>   sL   "

!
