
    P/Ph,                     
   d dl Zd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlZd Zej                            ddd	d
ddddej        dd gdd gg ej        dd gdd gg           ed d gdd ggej        ej        g          dddddd ej        d          g          d             Zej                            dd ej        g dg          dddg          d             Z G d dej                  Z e
            d             Zd  Z e
d!"          d#             Z e
d$gd%&          d'             Z e
            d(             Zd) Zd* Zd+ Z ej                            d, ej        d           e            !                    dd           e            !                    dd          f ej        d e            !                    dd          -           e            !                    dd           e            !                    d.d.          f ej        d/ e            !                    dd          -           e            !                    dd           e            !                    d.d.          f ej        ej         e            !                    dd          -           e            !                    dd           e            !                    d.d.          fg          d0             Z"d1 Z#ej                            d2 ej        d          d3d e            $                    d3          f ej        d          dd4 e            %                    d4          f ej        d e            !                    dd          -          d3d e            !                    dd          $                    d3          f ej        d e            !                    dd          -          dd4 e            !                    dd          %                    d4          f ej        d/ e            !                    dd          -          d3d e            !                    dd          $                    d3          f ej        ej         e            !                    dd          -          d3d e            !                    dd          $                    d3          fg          d5             Z&d6 Z'd7 Z(dS )8    N)markers)Path)check_figures_equal)Affine2Dc                      t          j        dd          } |                                 dk    sJ |                                 rJ d S )Nonone)marker	fillstyle)r   MarkerStyleget_fillstyle	is_filled)marker_styles    \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/matplotlib/tests/test_marker.pytest_marker_fillstyler      sR    &cVDDDL%%''61111%%'''''''    r
   r   x Nonez$\frac{1}{2}$u   $♫$      r   )   r   )r      )r   r   
   )r   r   r   )r   r   r   c                 .    t          j        |            d S N)r   r   r
   s    r   test_markers_validr       s    , r   square)      r   r   r      )r   )r   r#   )r   r   r#      c                     t          j        t                    5  t          j        |            d d d            d S # 1 swxY w Y   d S r   )pytestraises
ValueErrorr   r   r   s    r   test_markers_invalidr)   *   s     
z	"	" $ $F###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   <A A c                   "     e Zd ZdZ fdZ xZS )UnsnappedMarkerStylez
    A MarkerStyle where the snap threshold is force-disabled.

    This is used to compare to polygon/star/asterisk markers which do not have
    any snap threshold set.
    c                 V    t                                                       d | _        d S r   )super_recache_snap_threshold)self	__class__s    r   r.   zUnsnappedMarkerStyle._recache=   s'    #r   )__name__
__module____qualname____doc__r.   __classcell__)r1   s   @r   r+   r+   6   sB         $ $ $ $ $ $ $ $ $r   r+   c                    |                                  }|                                 }d}|                    dgdgd|           |                    dgdgd|dz             |                    dgdgd|           |                    dgdgt          d	          |dz             |                    dgd
gd|           |                    dgd
gt          d	          |dz             |                    dgdgd|           |                    dgdgt          d          |           |                    dgdgd|           |                    dgdgt          d          |           |                    dgdgd|           |                    dgdgd|           |                    dgdgd|           |                    dgdgd|           |                    dgdgd|           |                    dgdgd|           |                    dgdgd|           |                    dgdgt          d          |           |                    dd           |                    dd           d S )N  r   )r$   r   -   r
   sr;   r   r   )r$   r   D      ?)r$   r   r   r   pg      @)r   r   r   r#   )   r   hg      @)r?   r   r   r$   )r?   r      Hr   )   r   g     6@8)r"   g      @xlimylim)add_subplotscatterr+   set)fig_testfig_refax_testax_refsizes        r   test_poly_markerrP   B   s   ""$$G  ""F D OOQC!Z4O888
NNA3C46N222 OOQC!VtO444
NNA3$8$=$=aNHHHOOQC#yDO999
NNA3&:3&?&?46NJJJ OOQC!VtO444
NNA3$8$=$=NFFFOOQC#yDO999
NNA3&:3&?&?4NHHH OOQC!VtO444
NNA3C4N000OOQC#yDO999
NNA3cTN222 OOQC!Z4O888
NNA3C4N000 OOQC!\TO:::
NNA3$8$=$=NFFFKK[{K333
JJKkJ22222r   c                      d} t          j                    \  }}|                    dgdgd|            |                    dgdgd|            |                    dd	           d S )
Nr8   r   )r   r   r:   r   )r   r   r   )r"         ?r"   r=   rE   )pltsubplotsrI   rJ   )rO   figaxs      r   test_star_markerrX   o   sp     DlnnGCJJsQC$J///JJsQC	TJ222FF+F.....r   g333333?)tolc                    |                                  }|                                 d}fd}|                    dgdgd|            |dd|           |                    dgdgd|            |dd|           |                    d	gd	gd
|            |d	d|dz             |                    dd                               dd           d S )Nr8   c                                          | g| gt          |          |                               d          dk    r*                     | g| gt          |          |           d S d S )Nr:   extpng)rI   r+   getfixturevalue)ystylerO   rN   requests      r   draw_ref_markerz-test_asterisk_marker.<locals>.draw_ref_marker   s     	sQC(<U(C(CtLLL""5))U22NNA3,@,G,G!  # # # # # 32r   r   )r$   r   r:   +rR   )r$   r   r   r   )r$   r   r9   r   r   rS   rE   )rH   rI   rJ   )rK   rL   ra   rM   rO   rb   rN   s     `   @r   test_asterisk_markerrd   ~   s   ""$$G  ""F D# # # # # # OOQC!VtO444OAsD!!!OOSEC5dO;;;OCd### OOQC!Z4O888OAsDF###KK[{K333
JJKkJ22222r   r]   g(\?)
extensionsrY   c                     |                                  }|                                 }|                    ddddd           |                    ddddd           d S )Nr   r   d   )r
   
markersizemarkeredgewidthz	$\bullet$)rH   plot)rL   rK   rN   rM   s       r   test_text_markerrk      sb      ""F""$$G
KK1Tc1KEEELLAlsALNNNNNr   c                    t          t          j        j                  }d}d}||z  dz   }d|z  |z  }d|z  |z  dz  }|                     || j        z  || j        z  f           |                     g d          }|                    ||j        z  || j        z  f           |                    g d          }	t          t          j        j                  D ]\  }
}|
|z  }|
|z  dz  }|                    ||g||dz   gddd	           |                    ||d||d
dd           |                    ||dz   d||d
dd           |	                    ||g||dz   gddd||d
dd
  
         |                    d|fdd|z  f           |	                    d|fdd|z  f           |	                    d           |		                    d           d S )N2   r   r   r   )r   r   r   r   k-r#   )c	linestylelwr   fullwhite)rp   r
   rh   ri   r   markerfacecolor)rp   rq   rr   r
   rh   ri   r   ru   r"   rE   off)
lenr   r   set_size_inchesdpiadd_axes	enumeraterj   rJ   axis)rL   rK   marker_countmarker_sizencolnrowwidthheightrN   rM   ir
   r   r_   s                 r   test_marker_clippingr      sJ   
 w*233LKD4!#DOd"E_t#a'FUW[0&7;2FGHHHlll++Fehl2FW[4HIJJJ--Gw2:;; @ @	6HIM 	QFQAJ#CCCAqC!k2$g 	 	? 	? 	? 	Aq1u!k2$g 	 	? 	? 	?
 	aVaQZ3#!"{B%w 	 	@ 	@ 	@ 	@ JJT4La$h'7J888KKdD\q4x(8K999
KKLLr   c                      t          j        d          } t                                          dd          }t          j        d|          }|                                 |z   |                                k    sJ dS )zBTest that initializing marker with transform is a simple addition.r   r   	transformN)r   r   r   	translateget_transform)r
   tt_markers      r   test_marker_init_transformsr      st     %%F

Q""A"3!444H!!A%)?)?)A)AAAAAAAr   c                      t          j        d          } t          j        dd          }|                                dk    sJ |                                 dk    sJ d S )N*round)	joinstyle)r   r   get_joinstyler
   styled_markers     r   test_marker_init_joinstyler      sg     %%F'w???M&&((G3333!!W,,,,,,r   c                      t          j        d          } t          j        dd          }|                                dk    sJ |                                 dk    sJ d S )Nr   r   )capstyle)r   r   get_capstyler   s     r   test_marker_init_captyler      sg     %%F'g>>>M%%''72222  G++++++r   zmarker,transform,expectedr   r   z$|||$c                     |                      |          }|| usJ |                                |k    sJ | j        |j        usJ d S r   )transformedget_user_transform_user_transform)r
   r   expected
new_markers       r   test_marker_transformedr      sb     ##I..JV####((**h6666!)CCCCCCCr   c                  J   t          j        d          } t          j        t                    5  |                                 }d d d            n# 1 swxY w Y   t          j        t                    5  |                     dd          }d d d            d S # 1 swxY w Y   d S )Nr   r   degrad)r   r   r&   r'   r(   rotated)r
   r   s     r   test_marker_rotated_invalidr      s    %%F	z	"	" & &^^%%
& & & & & & & & & & & & & & &	z	"	" 4 4^^^33
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s#   AAA3BBBzmarker,deg,rad,expectedr   g{Gz?c                     |                      ||          }|| usJ |                                |k    sJ | j        |j        usJ d S )Nr   )r   r   r   )r
   r   r   r   r   s        r   test_marker_rotatedr     sd     CS11JV####((**h6666!)CCCCCCCr   c                  "   t          j        d          } |                     d          }|| usJ |                                t	                                          d          k    sJ | j        |j        usJ |                     dd          }|| usJ |                                t	                                          dd          k    sJ | j        |j        usJ t          j        dt	                                          dd                    } |                     d          }|| usJ t	                                          dd                              d          }|                                |k    sJ | j        |j        usJ d S )N1r   r#   r   r   )r   r   scaledr   r   scaler   r   )r
   r   r   s      r   test_marker_scaledr     s    %%Fq!!JV####((**hjj.>.>q.A.AAAAA!)CCCCCq!$$JV####((**hjj.>.>q!.D.DDDDD!)CCCCC 

0D0DQ0J0JKKKFq!!JV####zz##Aq))//22H((**h6666!)CCCCCCCr   c                     t          j        dd          } t          j        ddt                                          d                    }|                                                     d          |                                k    sJ d S )Nr   leftZ   )r   r   r   
rotate_degget_alt_transform)m1m2s     r   test_alt_transformr   ,  sw    		S&	)	)B		S&(***?*?*C*C	D	DB!!,,R00B4H4H4J4JJJJJJJr   ))numpynpmatplotlib.pyplotpyplotrT   
matplotlibr   matplotlib.pathr   matplotlib.testing.decoratorsr   matplotlib.transformsr   r&   r   markparametrizeTICKLEFTarrayMOVETOLINETOr   r    r)   r+   rP   rX   rd   rk   r   r   r   r   r   r   r   r   rotater   r   r    r   r   <module>r      s                               = = = = = = * * * * * * ( ( ( 
!Wq!fBHr1g1vD1a&1a&	DK566


G%$  (   ) ( 
 BH   !""
$  $ $ $
	$ 	$ 	$ 	$ 	$7. 	$ 	$ 	$ )3 )3 )3X/ / / 3 3 3F T222O O 32O % % %PB B B- - -, , , 4Wxxzz33Aq99

Q""$W

(<(<Q(B(BCCC

Q""HHJJ$8$8A$>$>@WHHJJ,@,@A,F,FGGGXZZ!Q!5!5a!;!;=WHHJJ$8$8A$>$>@ @ @

Q""HHJJ$8$8A$>$>@
7 
 
D D
 
D4 4 4 2Wr4)>)>r)B)BCWtT88::+<+<T+B+BCW

(<(<Q(B(BCCC
D((**&&q!,,77;;=W

(<(<Q(B(BCCCdHHJJ((A..55d;;=WHHJJ,@,@A,F,FGGG$

$$Q**55b99;WHHJJ$8$8A$>$>@ @ @
D((**&&q!,,77;;=5  D D DD D D(K K K K Kr   