
    P/PhC                        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	             Z e
d
gddd          d             Z e
dg          d             Zd Z e            d             Z e            d             Z e            d             Z e
dgd          d             Z e
dgd          d             Z e
dgd          d             Z e
dgd          d             Z e
dgd          d             Z e
d gd          d!             Z e
d"gd          d#             Z e
d$gd          d%             Z ed&g'          d(             Z ed&g'          d)             Zd* Zd+ Zd, Zd- Z d. Z!d/ Z" ed&g'          d0             Z# ed&g'          d1             Z$d2 Z%d3 Z&d4 Z'd5 Z( ed&g'          d6             Z)d7 Z*d8 Z+d9 Z,d: Z- e
d;gd          d<             Z.d= Z/ej0        1                    d>d?d@g           e
dAgdd&gdBC          dD                         Z2dS )E    N)assert_allclose)pyplot)image_comparisoncheck_figures_equal
polar_axesdefaultg~jt?)styletolc            
         t          j        ddd          } dt           j        z  | z  }t          j                    }|                    d          }|                    || dd	          \  }|                    d
ddd	          \  }d}| |         ||         }}|                    |g|gd           |                    d||fddt          dd          d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	thisthetas           [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/matplotlib/tests/test_polar.pytest_polar_annotationsr@   
   s    		#sE""A!E
*,,C	t	$	$BGGE1I!G44EDGGFF)G::ED
CvuSz9EGGYK%#&&&KK$u%#,'$???$*",     NNT45NIIIII    polar_coordsTgy&1?)r	   remove_textr
   c                     t           j                            ddddd          } t          j                    }|                    d          }|                    |            |                     |j                   |	                    d	t          j        d
z  dft          j        dz  dfddt          dd          ddd	  	         |                    dd           |                    dd           d S )Nr   
      r7         ?)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Ellipser0   r1   r2   
add_artistset_clip_boxbboxr4   r-   r/   r5   set_xlimset_ylim)elr9   r:   s      r?   test_polar_coord_annotationsrX   ,   s     
		VRs#		F	FB
*,,C		(	(BMM"OOBGKK	E"Hc?a~ "'$???$*",  	 	 	 KKRKKRrA   zpolar_alignment.pngc                     t          j        ddd          } g d}t          j                    }g d}|                    |dd          }|                    |            |                    |dd	          }|j                            d
           t          d          D ],}|j	        |         
                    || |         dd           -d S )Nr   ih  Z   )r   皙?皙?g333333?皙?r   皙?r_   r]   r]   T
horizontal)r   labelverticalF   r   top)angler%   r&   )r-   r.   r0   r1   add_axesset_thetagridspatchset_visiblerangeaxes
set_rgrids)anglesgrid_valuesr9   rectr`   rb   is          r?   test_polar_alignmentrq   I   s     Yq#r""F,,,K
*,,CDd$lCCJf%%%||DJ|??HNu%%%1XX A Avay &% 	 	A 	A 	A 	AA ArA   c                      t          j                    } t          j        ddgddg           t          j        ddgddg           t          | j                  dk    s
J d	            d S )
Nr   rc   r_   r[   r      g333333?r\   z!More than one polar Axes created.)r0   r1   r   lenrk   )r9   s    r?   test_polar_twiceru   ^   si    
*,,CIq!fr2hIq!fr2hsx==ABrA   c                    |                      d          }|                    t          j        ddg          ddg           |                    t          j        ddg          ddg           |                     d          }|                    t          j        dd	g          ddg           |                    t          j        dd
g          ddg           d S )Nr   
projection   iMr[   r_   rc      if  )r2   r3   r-   deg2radfig_testfig_refr:   s      r?   test_polar_wrapr   e   s    					1	1BGGBJT{##c3Z000GGBJ2w#s,,,					0	0BGGBJSz""S#J///GGBJ3x  3*-----rA   c                 n   dd l mc m                                  g d}g d}t	          j        | j                   t	          j        fd|D             |           |                    d          }|	                    t          j        |          |           |                    d           d S )	Nr   g      >@g     F@g      N@     V@r   rK         @r   c                 $    g | ]}|j         z  S  deg.0r'   unitss     r?   
<listcomp>z&test_polar_units_1.<locals>.<listcomp>w   s    )))q59})))rA   r   rw   r   )xlabel)matplotlib.testing.jpl_unitstesting	jpl_unitsregisterr0   r1   numberr   r2   r3   r-   r|   set)r~   r   xsysr:   r   s        @r?   test_polar_units_1r   o   s    000000000	NN	!	!	!B			BJxI))))b)))2...					0	0BGGBJrNNBFF%FrA   c                    dd l mc m                                  g d}fd|D             }g d}fd|D             }t	          j        | j                   t	          j        ||dd           t          t	          j	                    j
                                        j                  sJ |                    d	
          }|                    t          j        |          |           |j
                            t$          j                            dj                             |                    dd           d S )Nr   r   c                 $    g | ]}|j         z  S r   r   r   s     r?   r   z&test_polar_units_2.<locals>.<listcomp>   s    (((a%)m(((rA   r   c                 $    g | ]}|j         z  S r   )km)r   yr   s     r?   r   z&test_polar_units_2.<locals>.<listcomp>   s    &&&aQ\&&&rA   radr   )
thetaunitsrunitsr   rw   z{:.12})r   ylabel)r   r   r   r   r0   r1   r   r   
isinstancegcaxaxisget_major_formatterUnitDblFormatterr2   r3   r-   r|   set_major_formatterrO   tickerFuncFormatterformatr   )r~   r   r   xs_degr   ys_kmr:   r   s          @r?   test_polar_units_2r   ~   sQ   000000000	NN	!	!	!B((((R(((F			B&&&&2&&&EJxIfed;;;;cgiio99;;,. . . . . 
				0	0BGGBJrNNBH  !9!9(/!J!JKKKFF%F%%%%%rA   
polar_rmin)r	   c                  .   t          j        ddd          } dt           j        z  | z  }t          j                    }|                    g dd          }|                    ||            |                    d           |                    d	           d S )
Nr   r   {Gz?rc   r^   Tr   rK   rG   	r-   r.   r/   r0   r1   rf   r3   set_rmaxset_rminr7   r8   r9   r:   s       r?   test_polar_rminr      s    
	!S$AbeGAIE
*,,C	***$	7	7BGGE1KKKKrA   polar_negative_rminc                  .   t          j        ddd          } dt           j        z  | z  }t          j                    }|                    g dd          }|                    ||            |                    d           |                    d           d S )Ng      r   r   rc   r^   Tr   r   r   s       r?   test_polar_negative_rminr      s    
	$T""AbeGAIE
*,,C	***$	7	7BGGE1KKKKrA   polar_roriginc                  X   t          j        ddd          } dt           j        z  | z  }t          j                    }|                    g dd          }|                    ||            |                    d           |                    d	           |	                    d
           d S )Nr   r   r   rc   r^   Tr   rK   rG   r   )
r-   r.   r/   r0   r1   rf   r3   r   r   set_roriginr   s       r?   test_polar_roriginr      s    
	!S$AbeGAIE
*,,C	***$	7	7BGGE1KKKKNN3rA   zpolar_invertedylim.pngc                      t          j                    } |                     g dd          }|                    dd           d S )Nr^   Tr   rc   r   )r0   r1   rf   rV   r9   r:   s     r?   test_polar_invertedylimr      sC    
*,,C	***$	7	7BKK1rA   zpolar_invertedylim_rorigin.pngc                     t          j                    } |                     g dd          }|j                            d           |                    ddgddgd           |                    d           |                    d           d S )	Nr^   Tr   r   rc   none)cr   )r0   r1   rf   yaxisset_invertedr3   marginsr   r   s     r?   test_polar_invertedylim_roriginr      s    
*,,C	***$	7	7BH$ GGQFQFfG%%%JJqMMMNN1rA   polar_theta_positionc                  0   t          j        ddd          } dt           j        z  | z  }t          j                    }|                    g dd          }|                    ||            |                    dd	           |                    d
           d S )Nr   r   r   rc   r^   Tr   NW   	clockwise)	r-   r.   r/   r0   r1   rf   r3   set_theta_zero_locationset_theta_directionr   s       r?   test_polar_theta_positionr      s    
	!S$AbeGAIE
*,,C	***$	7	7BGGE1tR(((;'''''rA   polar_rlabel_positionc                      t          j                    } |                     d          }|                    d           |                    d           d S )Nr   rw   i;  auto)rotation)r0   r1   r2   set_rlabel_positionr6   r   s     r?   test_polar_rlabel_positionr      sN    
*,,C	G	,	,B3NNFN#####rA   polar_theta_wedgec                     t          j        ddd          } dt           j        z  | z  }t          j        ddd          }t          j        ddd          }d	}t          j        t          |          t          |          d
did          \  }}t          |          D ],\  }}t          |          D ]\  }	}
|||	f         }|                    ||            ||
k     r+|                    |           |	                    |
           n?|                    |
           |	                    |           |
                    d           |                    dd||t          |          z           d           |j                            dd           |j                                        j                            g d           .d S )Nr   r   r   rc   g      .@g     v@r   g      I@)r(   ininoutr   T)      )
subplot_kwfigsizer   r   )r*   r+   r,   r   )label2Onr   )r   rc   g      @   rE   )steps)r-   r.   r/   r0   subplotsrt   	enumerater3   set_thetaminset_thetamaxr   r6   r   set_tick_paramsr   get_major_locatorbase
set_params)r7   r8   
theta_mins
theta_maxs
DIRECTIONSr9   axsrp   startjendr:   s               r?   test_polar_theta_limitsr      s   
	!S$AbeGAIE4--J4--J'J|C
OOS__(/$*, , ,HC j)) * *5
++ 	* 	*FAsQTBGGE1s{{&&&$$$$ $$$&&&&&{333NN4%/C
OO0C%D$*  , , , H$$dV$DDDH&&((-88((( 9 * * * *	** *rA   png)
extensionsc                    |                      ddi          }|                    d           |                    d           |                     ddi          }|                    d           |                    d           d S )	Nr   Tr   rE   )rd   rG   bottomrL   r   set_rlimr   r   r}   s      r?   test_polar_rlimr      s    			wo		6	6BKKBKKKrK			gt_		5	5BKKKKOOOOOrA   c                     |                      ddi          }|                    ddg           |                     ddi          }|                    d           |                    d           d S )Nr   Tr   rG   rE   r   rL   r   r}   s      r?   test_polar_rlim_bottomr     ss    			wo		6	6BKKBxK   			gt_		5	5BKKKKOOOOOrA   c                     t          j                                        d          } |                     t	          j        d          t	          j        d          dz              |                                 d         dk    sJ d S )Nr   rw   rE   r   r   )r0   r1   r2   r3   r-   r.   get_ylimr:   s    r?   test_polar_rlim_zeror     sk    		!	!W	!	5	5BGGBIbMM29R==3.///;;==q      rA   c                     t          j        d           t          j                    } |                                 dk    r|                                 dk    sJ t          j        d           t          j                     t          j                    } |                                 dk    r|                                 dk    sJ d S )Nr   rw   r   r   all)r0   subplotr   get_rminget_rmaxcloser   r   s    r?   test_polar_no_datar    s    K7####	B;;==A"++--1"4"4"4"4IeIKKK	B;;==A"++--1"4"4"4"4"4"4rA   c                      t          j        d           t          j                    } |                     d           |                                 dk    sJ d S )Nr   rw   logr   )r0   r   r   
set_rscaler  r   s    r?   test_polar_default_log_limsr  &  sQ    K7####	BMM%;;==1rA   c                      t          j                                        d          } t          j        t
                    5  |                     d           d d d            d S # 1 swxY w Y   d S )Nr   rw   datalim)r0   r1   r2   pytestraises
ValueErrorset_adjustabler   s    r?   !test_polar_not_datalim_adjustabler  -  s    		!	!W	!	5	5B	z	"	" % %
)$$$% % % % % % % % % % % % % % % % % %s   A$$A(+A(c                     t          j                    } |                     d          }|                    d           t          j        |j                                        d           | j                                         |j	        j
        d         j                                        dk    sJ |j        j
        d         j                                        dk    sJ d S )NTr   r[   )rH   F)visibler   )r0   r1   r2   gridsetpr   get_ticklabelscanvasdrawr   
majorTicksgridline	get_alphar   s     r?   test_polar_gridlinesr  3  s    
*,,C	t	$	$BGG#GHRX$$&&6666JOO8q!*4466"<<<<8q!*4466"<<<<<<rA   c                      t          j        ddi          \  } }| j                                         |                    | j                                                  }t          |j        g dd           d S )Nrx   r   r   )gyZ@g,ԚG=@g_)Gހ@gR!+|@r   )rtol)r0   r   r  r  get_tightbboxget_rendererr   extents)r9   r:   bbs      r?   test_get_tightbbox_polarr!  ?  s    l|W&=>>>GCJOO			#*1133	4	4B

<<<5J J J J J JrA   c                    |                      dd                              dgdgdt          j        z  dd	          }|                      d
d                              dgdgdt          j        z  dd	          }|                     dd                              dgdgdt          j        z  dd	          }|                     d
d                              dgdgdt          j        z  dd	          }d S )Ny   r   rw   r   r   r   r   F)	edgecolorantialiasedz   rc   rz   )r2   barr-   r/   )r~   r   p1p2p3p4s         r?   )test_polar_interpolation_steps_constant_rr-  G  s     

sw

7
73sQC25F3FF 


sw

7
73sQCBEV3GG 


cg

6
63sQC25F3FF 


cg

6
63sQCBEV3GG BBrA   c                 p   |                      d                              dt          j        dz  gddg          \  }d|                                _        |                     d                              t          j        dt          j        dz  d          t          j        ddd                     d S )Nr   rw   r   rc   r   d   e   )r2   r3   r-   r/   get_path_interpolation_stepslinspace)r~   r   ls      r?   )test_polar_interpolation_steps_variable_rr5  U  s    					1	1	6	6257|aV	L	LBA(+AJJLL%7++00
AruQw$$bk!Q&<&<> > > > >rA   c                     t          j        d          } |                     ddt          j        z             |                     dd           t          j        t          d	          5  |                     dd
t          j        z             d d d            n# 1 swxY w Y   t          j        t          d	          5  |                     dd           d d d            d S # 1 swxY w Y   d S )Nr   rw   r   rc   r   i  )thetaminthetamaxz+angle range must be less than a full circle)matchr   i  )r0   r   set_thetalimr-   r/   r  r  r  r   s    r?   test_thetalim_valid_invalidr;  ]  sm   		(	(	(BOOAq25y!!!OOS3O///	zJ
L 
L 
L & &
1ru9%%%& & & & & & & & & & & & & & & 
zJ
L 
L 
L 4 4
s3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s$   +$BB"BC&&C*-C*c                     t          j        d          } |                     dd           t          t	          j        |                                 |                                 f                    dk    sJ |                     d           t          t	          j        |                                 |                                 f                    dk    sJ d S )Nr   rw   r   r   r   )rc   r   )r0   r   r:  tupler-   radiansget_thetaminget_thetamaxr   s    r?   test_thetalim_argsrA  i  s    		(	(	(BOOAqR__..0A0ABCCDDNNNNOOFR__..0A0ABCCDDNNNNNNrA   c                     t          j        dddi          \  } }|                                D ]"}|                    dt          j                   #|                                D ]o}t	          j        |j                                                  	                                }t          j        d          |v sJ t          j        d          |vsJ pd S )NzAAAABB.rx   r   r   r   rZ   r/  )r0   subplot_mosaicvaluesr:  r-   r/   degreesr   get_majorticklocstolistr  approx)r9   r   r:   ticklocss       r?   test_default_thetalocatorrJ  q  s     !|W57 7 7HCjjll " "
25!!!!jjll 2 2:bh88::;;BBDD}R  H,,,,}S!!111112 2rA   c                      t          j        d          } |                     dt          j        dz            }|                                j        dk    sJ d S )Nr   rw   r   rs   r   )r0   r   axvspanr-   r/   r1  r2  )r:   spans     r?   test_axvspanrN    sO    		(	(	(B::aq!!D==??/!333333rA   c                    |                      dddddi          }dD ]!}|j        |                                          "|                     dddddi          }dD ]!}|j        |                                          "d S )Nrc   Trx   r   )sharexr   )r   r   r   )shareyr   )r   flatremove)r   r~   r   rp   s       r?   test_remove_shared_polarrT    s    
 

	1T|W&=  ? ?C  


	1T|W&=  ? ?C   rA   c                  @   t          j        ddddidd          \  } }| j                                         |d         j        j        d                                         sJ |d         j        j        d                                         sJ t          j        dddidd          \  } }| j                                         |d	         j        j        d                                         sJ |d	         j        j        d                                         sJ d S )
Nrc   rx   r   T)r   rP  rQ  r   r   zab
cdb)	r0   r   r  r  r   r  get_visibler   rC  )r9   r   s     r?   "test_shared_polar_keeps_ticklabelsrX    s   |	1,0dL L LHCJOOt9?%a(4466666t9?%a(4466666!lG4T$P P PHCJOOs8>$Q'3355555s8>$Q'335555555rA   c                      t          j        d          } |                     dd           |                     d           |                     ddg           |                                 dk    sJ d S )	Nr   rw   r   r   rG   r_   r[   )r   r[   )r0   r   rL  axvliner3   r   r   s    r?   (test_axvline_axvspan_do_not_modify_rlimsr[    sl    		(	(	(BJJq!JJrNNNGGRH;;==G######rA   c                  (   t          j        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    sJ |                     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 S )Nr   rw   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.000rc   u   θ=0.6π (115°), r=0.005u   θ=0.64π (115°), r=0.100u   θ=0.637π (114.6°), r=1.000)r0   r   format_coordr   s    r?   test_cursor_precisionr_    s:   		(	(	(B??1e$$(AAAAA??1b!!%???????1a  $AAAAA??1e$$(BBBBB??1b!!%@@@@@??1a  $BBBBB??1e$$(CCCCC??1b!!%AAAAA??1a  $CCCCCCCrA   c                     t          j        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    sJ |                     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 S )Nr   rw   c                     d| dz  z  S )Nz$%1.1fMgư>r   )r'   s    r?   millionsz&test_custom_fmt_data.<locals>.millions  s    AdF##rA      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)r0   r   	fmt_xdata	fmt_ydatar^  )r:   rb  s     r?   test_custom_fmt_datarf    sy   		(	(	(B$ $ $ BLBL??2s##'UUUUU??4%%)XXXXX??1c""&IIIII BLBL??3""&99999??1b!!%88888??3&&*===== BLBL??3((,BBBBB??4--1TTTTT??5,//3OOOOOOOrA   zpolar_log.pngc                  H   t          j                    } |                     d          }|                    d           |                    dd           d}|                    t          j        ddt          j        z  |          t          j	        dd|                     d S )	NTr   r  r   i  r/  r   rc   )
r0   r1   r2   r  r   r3   r-   r3  r/   logspace)r9   r:   ns      r?   test_polar_logrj    s    
*,,C	t	$	$BMM%KK4AGGBK1ru9a(("+aA*>*>?????rA   c                     t          j                    } |                     d          }|                    t          j         t          j                   d |j                                        D             }|g dk    sJ d S )Nr   rw   c                 6    g | ]}|                                 S r   )get_text)r   r4  s     r?   r   z-test_polar_neg_theta_lims.<locals>.<listcomp>  s     >>>qajjll>>>rA   )u   -180°u   -135°u   -90°u   -45°u   0°u   45°u   90°u   135°)r0   r1   r2   r:  r-   r/   r   r  )r9   r:   labelss      r?   test_polar_neg_theta_limsro    sy    
*,,C	G	,	,BOORUFBE""">>BH$;$;$=$=>>>F[[[[[[[[[rA   orderbeforeafterpolar_errorbarmpl20)baseline_imagesrC   r   r	   c           	         t          j        ddt           j        z  t           j        dz            }|t           j        z  dz  dz   }t          j        d          }|                    d          }| d	k    rH|                    d
           |                    d           |                    ||ddddd           d S |                    ||ddddd           |                    d
           |                    d           d S )Nr   rc   r   rG   )r   r   )r   r   rw   rq  Nr_      r   seagreen)xerryerrcapsizefmtr   )	r-   r.   r/   r0   r1   r2   r   r   errorbar)rp  r8   r7   r9   r:   s        r?   test_polar_errorbarr    s    IaRUBEAI..ECA
*V
$
$
$C	G	,	,B
""3'''
r"""
E13S!
SSSSS
E13S!
SSS
""3'''
r"""""rA   )3numpyr-   numpy.testingr   r  
matplotlibrO   r   r0   matplotlib.testing.decoratorsr   r   r@   rX   rq   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r!  r-  r5  r;  rA  rJ  rN  rT  rX  r[  r_  rf  rj  ro  markparametrizer  r   rA   r?   <module>r     sl       ) ) ) ) ) )      $ $ $ $ $ $ O O O O O O O O <.	u===J J >=JB >")    6 ()**A A +*A(C C C . . .    & & &( <.	222  32 ();;;  <; ?#9555	 	 65	 +,I>>>  ?> 34IFFF  GF )*)<<<( ( =<( *+9===$ $ >=$ &'y999* * :9*@ (((  )( (((  )(! ! !5 5 5  % % %	= 	= 	=J J J (((
I 
I )(
I (((> > )(>	4 	4 	4O O O2 2 24 4 4 (((  )(
6 
6 
6$ $ $D D DP P P6 ?#9555@ @ 65@\ \ \ 8W"566#3"4$#WG5 5 5# #5 5 76# # #rA   