o
    hD                     @   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d0d1 Ze
d2gd3dd4d5 Ze
d6gddd7d8 Zed9gd:d;d< Zed9gd:d=d> Zd?d@ ZdAdB ZdCdD Z dEdF Z!dGdH Z"dIdJ Z#ed9gd:dKdL Z$ed9gd:dMdN Z%dOdP Z&dQdR Z'dSdT Z(dUdV Z)ed9gd:dWdX Z*dYdZ Z+d[d\ Z,d]d^ Z-d_d` Z.e
dagdddbdc Z/ddde Z0ej12dfdgdhge
digdd9gd3djdkdl Z3dS )m    N)assert_allclose)pyplot)image_comparisoncheck_figures_equal
polar_axesdefaultg~jt?)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   )color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)axistick1Ontick2On	direction)
nparangepipltfigureadd_subplotplotannotatedicttick_params)rthetafigaxlineindthisr	thistheta r=   o/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/matplotlib/tests/test_polar.pytest_polar_annotations
   s$   
	r?   polar_coordsTgy&1?)r   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   
      r5         ?)r   alphaequal)aspectzthe top       @      $@r   g      4@r   r   r   r   r   r   T)r   r    xycoordsr!   r"   r#   r$   clip_oni)mplpatchesEllipser.   r/   r0   
add_artistset_clip_boxbboxr2   r+   r-   r3   set_xlimset_ylim)elr7   r8   r=   r=   r>   test_polar_coord_annotations,   s"   

rU   zpolar_alignment.pngc                  C   s   t ddd} g d}t }g d}|j|ddd}||  |j|dd	d}|jd
 tdD ]}|j	| j
|| | ddd q2d S )Nr   ih  Z   )r   皙?皙?g333333?皙?r   皙?r[   rY   rY   T
horizontal)r   labelverticalF   r   top)angler#   r$   )r+   r,   r.   r/   add_axesset_thetagridspatchset_visiblerangeaxes
set_rgrids)anglesgrid_valuesr7   rectr\   r^   ir=   r=   r>   test_polar_alignmentI   s   

rm   c                  C   sJ   t  } t ddgddg t ddgddg t| jdks#J d	d S )
Nr   r_   r[   rW   r      g333333?rX   z!More than one polar Axes created.)r.   r/   r   lenrg   )r7   r=   r=   r>   test_polar_twice^   s   rp   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   iMrW   r[   r_      if  )r0   r1   r+   deg2radfig_testfig_refr8   r=   r=   r>   test_polar_wrape   s   rz   c                    s~   dd l m  m     g d}g d}t| j t fdd|D | |jdd}|	t
|| |jdd	 d S )
Nr   g      >@g     F@g      N@     V@r   rH         @r   c                       g | ]}| j  qS r=   deg.0r%   unitsr=   r>   
<listcomp>w       z&test_polar_units_1.<locals>.<listcomp>r   rq   r   )xlabel)matplotlib.testing.jpl_unitstesting	jpl_unitsregisterr.   r/   numberr   r0   r1   r+   rv   set)rx   ry   xsysr8   r=   r   r>   test_polar_units_1o   s   r   c                    s   dd l m  m     g d} fdd|D }g d} fdd|D }t| j tj||ddd	 tt	 j
  jsCJ |jd
d}|t|| |j
tjdj |jddd d S )Nr   r{   c                    r   r=   r   r   r   r=   r>   r      r   z&test_polar_units_2.<locals>.<listcomp>r}   c                    r   r=   )km)r   yr   r=   r>   r      r   radr   )
thetaunitsrunitsr   rq   z{:.12})r   ylabel)r   r   r   r   r.   r/   r   r   
isinstancegcaxaxisget_major_formatterUnitDblFormatterr0   r1   r+   rv   set_major_formatterrL   tickerFuncFormatterformatr   )rx   ry   r   xs_degr   ys_kmr8   r=   r   r>   test_polar_units_2~   s   r   
polar_rmin)r   c                  C   sZ   t ddd} dt j |  }t }|jg ddd}|||  |d |d	 d S )
Nr   r~   {Gz?r_   rZ   Tr   rH   rD   	r+   r,   r-   r.   r/   rb   r1   set_rmaxset_rminr5   r6   r7   r8   r=   r=   r>   test_polar_rmin      
r   polar_negative_rminc                  C   sZ   t ddd} dt j |  }t }|jg ddd}|||  |d |d d S )Ng      r
   r   r_   rZ   Tr   r   r   r=   r=   r>   test_polar_negative_rmin   r   r   polar_roriginc                  C   sd   t ddd} dt j |  }t }|jg ddd}|||  |d |d	 |	d
 d S )Nr   r~   r   r_   rZ   Tr   rH   rD   r
   )
r+   r,   r-   r.   r/   rb   r1   r   r   set_roriginr   r=   r=   r>   test_polar_rorigin   s   

r   zpolar_invertedylim.pngc                  C   s*   t  } | jg ddd}|dd d S )NrZ   Tr   r_   r   )r.   r/   rb   rS   r7   r8   r=   r=   r>   test_polar_invertedylim   s   r   zpolar_invertedylim_rorigin.pngc                  C   sV   t  } | jg ddd}|jd |jddgddgdd |d |d d S )	NrZ   Tr   r   r_   none)cr   )r.   r/   rb   yaxisset_invertedr1   marginsr   r   r=   r=   r>   test_polar_invertedylim_rorigin   s   
r   polar_theta_positionc                  C   s\   t ddd} dt j |  }t }|jg ddd}|||  |dd	 |d
 d S )Nr   r~   r   r_   rZ   Tr   NW   	clockwise)	r+   r,   r-   r.   r/   rb   r1   set_theta_zero_locationset_theta_directionr   r=   r=   r>   test_polar_theta_position   s   r   polar_rlabel_positionc                  C   s.   t  } | jdd}|d |jdd d S )Nr   rq   i;  auto)rotation)r.   r/   r0   set_rlabel_positionr4   r   r=   r=   r>   test_polar_rlabel_position   s   
r   zpolar_title_position.pngmpl20c                  C   s"   t  } | jdd}|d d S )Nr   rq   foo)r.   r/   r0   	set_titler   r=   r=   r>   test_polar_title_position   s   r   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 ]Z\}}t|D ]Q\}	}
|||	f }|||  ||
k rZ|| |	|
 n||
 |	| |
d |jdd||t|  dd |jjddd |j jjg dd q;q3d S )Nr   r~   r   r_   g      .@g     v@r|   g      I@)r&   ininoutr   T)      )
subplot_kwfigsizer   r   )r(   r)   r*   r   )label2Onr   )r   r_   g      @   rB   )steps)r+   r,   r-   r.   subplotsro   	enumerater1   set_thetaminset_thetamaxr   r4   r   set_tick_paramsr   get_major_locatorbase
set_params)r5   r6   
theta_mins
theta_maxs
DIRECTIONSr7   axsrl   startjendr8   r=   r=   r>   test_polar_theta_limits   s:   




r   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   rB   )r`   rD   bottomrI   r   set_rlimr   r   rw   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   Tr   rD   rB   r   rI   r   rw   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 J d S )Nr   rq   rB   r   r   )r.   r/   r0   r1   r+   r,   get_ylimr8   r=   r=   r>   test_polar_rlim_zero  s   r   c                  C   sj   t jdd t  } |  dkr|  dksJ t d t   t  } |  dkr1|  dks3J d S )Nr   rq   r   r   all)r.   subplotr   get_rminget_rmaxcloser   r   r=   r=   r>   test_polar_no_data"  s   
 r   c                  C   s2   t jdd t  } | d |  dksJ d S )Nr   rq   logr   )r.   r   r   
set_rscaler   r   r=   r=   r>   test_polar_default_log_lims-  s   
r   c                  C   sJ   t  jdd} tt | d W d    d S 1 sw   Y  d S )Nr   rq   datalim)r.   r/   r0   pytestraises
ValueErrorset_adjustabler   r=   r=   r>   !test_polar_not_datalim_adjustable4  s   "r   c                  C   sv   t  } | jdd}|jdd t j|j dd | j  |j	j
d j dks,J |jj
d j dks9J d S )NTr   rW   )rE   F)visibler   )r.   r/   r0   gridsetpr   get_ticklabelscanvasdrawr   
majorTicksgridline	get_alphar   r=   r=   r>   test_polar_gridlines:  s   
r  c                  C   sF   t jddid\} }| j  || j }t|jg ddd d S )Nrr   r   r   )gyZ@g,ԚG=@g_)Gހ@gR!+|@r   )rtol)r.   r   r  r  get_tightbboxget_rendererr   extents)r7   r8   bbr=   r=   r>   test_get_tightbbox_polarF  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 )Ny   r   rq   r   r   r   r   F)	edgecolorantialiasedz   r_   rt   )r0   barr+   r-   )rx   ry   p1p2p3p4r=   r=   r>   )test_polar_interpolation_steps_constant_rN  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   rq   r   r_   r   d   e   )r0   r1   r+   r-   get_path_interpolation_stepslinspace)rx   ry   lr=   r=   r>   )test_polar_interpolation_steps_variable_r\  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    n1 s1w   Y  tjtdd	 | jddd W d    d S 1 sPw   Y  d S )Nr   rq   r   r_   r   i  )thetamin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_invalidd  s   "r$  c                  C   sj   t jdd} | dd tt|  |  fdksJ | d tt|  |  fdks3J d S )Nr   rq   r   r   r   )r_   r   )r.   r   r#  tupler+   radiansget_thetaminget_thetamaxr   r=   r=   r>   test_thetalim_argsp  s
   "
&r)  c                  C   s|   t jdddid\} }| D ]	}|dtj q| D ]}t|j 	 }t
d|v s2J t
d|vs;J qd S )NzAAAABB.rr   r   r   r   rV   r  )r.   subplot_mosaicvaluesr#  r+   r-   degreesr   get_majorticklocstolistr   approx)r7   r   r8   ticklocsr=   r=   r>   test_default_thetalocatorx  s   
r1  c                  C   s4   t jdd} | dtjd }| jdksJ d S )Nr   rq   r   rn   r   )r.   r   axvspanr+   r-   r  r  )r8   spanr=   r=   r>   test_axvspan  s   r4  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|   q$d S )Nr_   Trr   r   )sharexr   )r   r   r   )shareyr   )r   flatremove)ry   rx   r   rl   r=   r=   r>   test_remove_shared_polar  s   r9  c                  C   s   t jddddiddd\} }| j  |d jjd  sJ |d jjd  s+J t jdddiddd\} }| j  |d	 jjd  sIJ |d	 jjd  sUJ d S )
Nr_   rr   r   T)r   r5  r6  r   r   zab
cdb)	r.   r   r  r  r   r  get_visibler   r*  )r7   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 J d S )	Nr   rq   r   r   rD   r[   rW   )r   rW   )r.   r   r2  axvliner1   r   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J | dddksJ | ddd	ks$J | ddd
ks.J | dddks8J | dddksBJ | dddksLJ | dddksVJ | dddks`J d S )Nr   rq   r   {Gzt?u   θ=0.0π (0°), r=0.005r[   u   θ=0.00π (0°), r=0.100r   u   θ=0.000π (0.0°), r=1.000u   θ=0.3π (57°), r=0.005u   θ=0.32π (57°), r=0.100u   θ=0.318π (57.3°), r=1.000r_   u   θ=0.6π (115°), r=0.005u   θ=0.64π (115°), r=0.100u   θ=0.637π (114.6°), r=1.000)r.   r   format_coordr   r=   r=   r>   test_cursor_precision  s   rA  c                  C   s   t jdd} dd }d | _|| _| dddksJ | dd	d
ks$J | dddks.J || _d | _| dddks>J | dddksHJ | dddksRJ || _|| _| d	ddksbJ | dddkslJ | dddksvJ d S )Nr   rq   c                 S   s   d| d  S )Nz$%1.1fMgư>r=   )r%   r=   r=   r>   millions  s   z&test_custom_fmt_data.<locals>.millions   g    sAu,   θ=3.8197186342π (687.54935416°), r=$20.0Mi  g    >Au-   θ=392.794399551π (70702.9919191°), r=$2.0Mr   r  u!   θ=0.95493π (171.887°), r=$0.0Mg     jAr   u   θ=$0.2M, r=1.000r[   u   θ=$0.0M, r=0.100g    .Ar?  u   θ=$1.0M, r=0.005g   ZAu   θ=$2.0M, r=$6000.0Mg NgmCl   {  u!   θ=$1000000000000.0M, r=$12891.3Ml   1;Ti 	Bu   θ=$3938980.6M, r=$1107.9M)r.   r   	fmt_xdata	fmt_ydatar@  )r8   rB  r=   r=   r>   test_custom_fmt_data  s"   rF  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   r_   )
r.   r/   r0   r   r   r1   r+   r  r-   logspace)r7   r8   nr=   r=   r>   test_polar_log  s   
*rI  c                  C   sN   t  } | jdd}|tj tj dd |j D }|g dks%J d S )Nr   rq   c                 S   s   g | ]}|  qS r=   )get_text)r   r  r=   r=   r>   r     s    z-test_polar_neg_theta_lims.<locals>.<listcomp>)u   -180°u   -135°u   -90°u   -45°u   0°u   45°u   90°u   135°)r.   r/   r0   r#  r+   r-   r   r  )r7   r8   labelsr=   r=   r>   test_polar_neg_theta_lims  s
   rL  orderbeforeafterpolar_errorbar)baseline_imagesrA   r   r   c              	   C   s   t ddt j t jd }|t j d d }tjdd}|jdd}| d	kr>|d
 |d |j||dddddd d S |j||dddddd |d
 |d d S )Nr   r_   r   rD   )r   r   )r   r   rq   rN  Nr[      r   seagreen)xerryerrcapsizefmtr   )	r+   r,   r-   r.   r/   r0   r   r   errorbar)rM  r6   r5   r7   r8   r=   r=   r>   test_polar_errorbar  s   


r[  )4numpyr+   numpy.testingr   r   
matplotlibrL   r   r.   matplotlib.testing.decoratorsr   r   r?   rU   rm   rp   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r$  r)  r1  r4  r9  r<  r>  rA  rF  rI  rL  markparametrizer[  r=   r=   r=   r>   <module>   s    

!


	











 



	






