
    g,                        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                  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                  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                  j!                  d, ej*                  d       e       jC                  dd       e       jC                  dd      f ej*                  d e       jC                  dd      -       e       jC                  dd       e       jC                  d.d.      f ej*                  d/ e       jC                  dd      -       e       jC                  dd       e       jC                  d.d.      f ej*                  ej"                   e       jC                  dd      -       e       jC                  dd       e       jC                  d.d.      fg      d0        Z"d1 Z#ej                  j!                  d2 ej*                  d      d3d e       jI                  d3      f ej*                  d      dd4 e       jK                  d4      f ej*                  d e       jC                  dd      -      d3d e       jC                  dd      jI                  d3      f ej*                  d e       jC                  dd      -      dd4 e       jC                  dd      jK                  d4      f ej*                  d/ e       jC                  dd      -      d3d e       jC                  dd      jI                  d3      f ej*                  ej"                   e       jC                  dd      -      d3d e       jC                  dd      jI                  d3      fg      d5        Z&d6 Z'd7 Z(y)8    N)markers)Path)check_figures_equal)Affine2Dc                      t        j                  dd      } | j                         dk(  sJ | j                         rJ y )Nonone)marker	fillstyle)r   MarkerStyleget_fillstyle	is_filled)marker_styles    Y/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/matplotlib/tests/test_marker.pytest_marker_fillstyler      s@    &&cVDL%%'6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                  |        y 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        y # 1 sw Y   y xY wr   )pytestraises
ValueErrorr   r   r   s    r   test_markers_invalidr)   *   s3     
z	" $F#$ $ $s	   9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                 0    t         |           d | _        y 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   s    $ $r   r+   c                 <   | j                         }|j                         }d}|j                  dgdgd|       |j                  dgdgd|dz         |j                  dgdgd|       |j                  dgdgt        d	      |dz         |j                  dgd
gd|       |j                  dgd
gt        d	      |dz         |j                  dgdgd|       |j                  dgdgt        d      |       |j                  dgdgd|       |j                  dgdgt        d      |       |j                  dgdgd|       |j                  dgdgd|       |j                  dgdgd|       |j                  dgdgd|       |j                  dgdgd|       |j                  dgdgd|       |j                  dgdgd|       |j                  dgdgt        d      |       |j                  dd       |j                  dd       y )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
NNA3C46N2 OOQC!VtO4
NNA3$8$=aNHOOQC#yDO9
NNA3&:3&?46NJ OOQC!VtO4
NNA3$8$=NFOOQC#yDO9
NNA3&:3&?4NH OOQC!VtO4
NNA3C4N0OOQC#yDO9
NNA3cTN2 OOQC!Z4O8
NNA3C4N0 OOQC!\TO:
NNA3$8$=NFKK[{K3
JJKkJ2r   c                      d} t        j                         \  }}|j                  dgdgd|        |j                  dgdgd|        |j                  dd	       y )
Nr8   r   )r   r   r:   r   )r   r   r   )r"         ?r"   r=   rE   )pltsubplotsrI   rJ   )rO   figaxs      r   test_star_markerrX   o   sX     DllnGCJJsQC$J/JJsQC	TJ2FF+F.r   g333333?)tolc                 p   | j                         }|j                         d}fd}|j                  dgdgd|        |dd|       |j                  dgdgd|        |dd|       |j                  d	gd	gd
|        |d	d|dz         |j                  dd       j                  dd       y )Nr8   c                     j                  | g| gt        |      |       j                  d      dk(  r!j                  | g| gt        |      |       y y )Nr:   extpng)rI   r+   getfixturevalue)ystylerO   rN   requests      r   draw_ref_markerz-test_asterisk_marker.<locals>.draw_ref_marker   s_     	sQC(<U(CtL""5)U2NNA3,@,G!  # 3r   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AsD!OOSEC5dO;Cd# OOQC!Z4O8AsDF#KK[{K3
JJKkJ2r   r]   g(\?)
extensionsrY   c                     | j                         }|j                         }|j                  ddddd       |j                  ddddd       y )Nr   r   d   )r
   
markersizemarkeredgewidthz	$\bullet$)rH   plot)rL   rK   rN   rM   s       r   test_text_markerrk      sJ      "F""$G
KK1Tc1KELLAlsALNr   c                    t        t        j                  j                        }d}d}||z  dz   }d|z  |z  }d|z  |z  dz  }| j                  || j                  z  || j                  z  f       | j                  g d      }|j                  ||j                  z  || j                  z  f       |j                  g d      }	t        t        j                  j                        D ]  \  }
}|
|z  }|
|z  dz  }|j                  ||g||dz   gddd	       |j                  ||d||d
dd       |j                  ||dz   d||d
dd       |	j                  ||g||dz   gddd||d
dd
        |j                  d|fdd|z  f       |	j                  d|fdd|z  f       |j                  d       |	j                  d       y )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      s   
 w**223LKD4!#DOd"E_t#a'FUW[[0&7;;2FGHl+Fehll2FW[[4HIJ-Gw22::; @	6HIM 	QFQAJ#CAqC!k2$g 	 	? 	Aq1u!k2$g 	 	?
 	aVaQZ3#!"{B%w 	 	@@$ JJT4La$h'7J8KKdD\q4x(8K9
KKLLr   c                      t        j                  d      } t               j                  dd      }t        j                  d|      }| j	                         |z   |j	                         k(  sJ y)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      s]      %F
Q"A""3!4H!A%)?)?)AAAAr   c                      t        j                  d      } t        j                  dd      }|j                         dk(  sJ | j                         dk7  sJ y )N*round)	joinstyle)r   r   get_joinstyler
   styled_markers     r   test_marker_init_joinstyler      sR      %F''w?M&&(G333!W,,,r   c                      t        j                  d      } t        j                  dd      }|j                         dk(  sJ | j                         dk7  sJ y )Nr   r   )capstyle)r   r   get_capstyler   s     r   test_marker_init_captyler      sR      %F''g>M%%'7222 G+++r   zmarker,transform,expectedr   r   z$|||$c                     | j                  |      }|| usJ |j                         |k(  sJ | j                  |j                  usJ y r   )transformedget_user_transform_user_transform)r
   r   expected
new_markers       r   test_marker_transformedr      sS     ##I.JV###((*h666!!)C)CCCCr   c                  ,   t        j                  d      } t        j                  t              5  | j                         }d d d        t        j                  t              5  | j                  dd      }d d d        y # 1 sw Y   ?xY w# 1 sw Y   y xY w)Nr   r   degrad)r   r   r&   r'   r(   rotated)r
   r   s     r   test_marker_rotated_invalidr      sw      %F	z	" &^^%
&	z	" 4^^^3
4 4& &4 4s   A>!B
>B
Bzmarker,deg,rad,expectedr   g{Gz?c                     | j                  ||      }|| usJ |j                         |k(  sJ | j                  |j                  usJ y )Nr   )r   r   r   )r
   r   r   r   r   s        r   test_marker_rotatedr     sU     CS1JV###((*h666!!)C)CCCCr   c                     t        j                  d      } | j                  d      }|| usJ |j                         t	               j                  d      k(  sJ | j                  |j                  usJ | j                  dd      }|| usJ |j                         t	               j                  dd      k(  sJ | j                  |j                  usJ t        j                  dt	               j                  dd            } | j                  d      }|| usJ t	               j                  dd      j                  d      }|j                         |k(  sJ | j                  |j                  usJ y )N1r   r#   r   r   )r   r   scaledr   r   scaler   r   )r
   r   r   s      r   test_marker_scaledr     sW     %Fq!JV###((*hj.>.>q.AAAA!!)C)CCCCq!$JV###((*hj.>.>q!.DDDD!!)C)CCCC  
0D0DQ0JKFq!JV###z##Aq)//2H((*h666!!)C)CCCCr   c                      t        j                  dd      } t        j                  ddt               j                  d            }| j	                         j                  d      |j	                         k(  sJ y )Nr   leftZ   )r   r   r   
rotate_degget_alt_transform)m1m2s     r   test_alt_transformr   ,  s`    			S&	)B			S&(**?*?*C	DB!,,R0B4H4H4J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BHHr1g1v1a&1a&	DKK56


G%$ ( )( 
 BHH !"
$ $$
	$7.. 	$ )3 )3X/ 3 3F T2O 3O % %PB-, 4Wxz33Aq9
Q"$W
(<(<Q(BC
Q"HJ$8$8A$>@WHJ,@,@A,FGZ!Q!5!5a!;=WHJ$8$8A$>@
Q"HJ$8$8A$>@
7 
D
D4 2Wr4)>)>r)BCWtT8:+<+<T+BCW
(<(<Q(BC
D(*&&q!,77;=W
(<(<Q(BCdHJ((A.55d;=WHJ,@,@A,FG$
$$Q*55b9;WHJ$8$8A$>@
D(*&&q!,77;=5 DDD(Kr   