
    ^jZK                        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 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mZ d dlmZ  d dl!Z"d dl#m$Z$m%Z% d Z&d Z' e%dgdd	      d
        Z( e$       d        Z)d Z* e%dgdd	      d        Z+d Z, e%dgdd	      d        Z-d Z.d Z/d Z0d Z1d Z2d Z3ejh                  jk                  dg d      d        Z6d Z7d Z8d Z9d Z:d  Z;d! Z<d" Z=d# Z>d$ Z?d% Z@y)&    N)chain)check_figures_equalimage_comparisonc                     t        j                         } | j                  dd       | j                  dd       d}| j                  j                  |      }t        j                  |dddd      }| j                  |       |j                  | j                  k(  sJ t        j                  |dddd d	      }|j                         sJ | j                  |       t        |j                  t        j                        sJ t        j                  |d
d
t        j                         d      }| j                  |       t        |j                  t        j                        sJ t        j                  |dddd      }|j                         }|j                         rJ | j                  |       |j                         |k7  sJ |j                         sJ |j                  | j                  k(  sJ y )N         r
   yellow      ?)widthheightfcalphax   coral)r   r   r   	transformr   d   )r   r   r   r   )pltaxesset_xlimset_ylim	transDatar   mpatchesEllipse	add_patch
_transformis_transform_set
isinstancemtransformsIdentityTransformget_transform)axxy_dataxy_pixeintermediate_transforms        g/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/matplotlib/tests/test_artist.pytest_patch_transform_of_noner)      s    
BKK1KK1 G\\##G,F 	!LALLO<<2<<''' 	s37#'s	4ALLOallK$A$ABBB 	s3#.#@#@#B#	OALLOallK$A$ABBB 	s37"	$A__.!!###LLO?? 6666<<2<<'''    c                     t        j                         } | j                  dd       | j                  dd       d}| j                  j                  |      }t        j                  |dd      }t        j                  |gdd      }| j                  |       |j                         |j                         z   | j                  k(  sJ t        j                  |dd      }t        j                  |gd	d      }|j                  d        | j                  |       t        |j                         t        j                         sJ t        j                  |d
d
      }t        j                  |gt        j                          d      }| j                  |       t        |j                         t        j                         sJ y )Nr   r   r	   )r   r   r   r   )	facecolorr   r   r   r   )r   r   )r   r   r   r   r   r   r   r   mcollectionsPatchCollectionadd_collectionget_offset_transformr"   set_transformr   r    r!   )r#   r$   r%   r&   cs        r(   !test_collection_transform_of_noner3   ?   su    
BKK1KK1 G\\##G,F 	!4A$$aSHCHAa!!#aoo&772<<GGG 	s37A$$aSG+.	0AOODaaoo')F)FGGG 	s37A$$aS/:/L/L/N+.	0A aa,,.0M0MNNNr*   clip_path_clippingT_classic_test)remove_textstylec                     t         j                  j                         j                         } | xj                  dz  c_        | xj                  dz  c_        t         j                  j                         j                         }|j                  d d d   |_        t         j                  j                  | |      }t         j                  j                  d      j                         }|xj                  dz  c_        t        j                  dddd      \  }\  }}t        j                  |gd	d
ddd      }|j                  ||j                         |j                  |       t        j                   |d	d
ddd      }|j                  ||j                         |j#                  |       |j%                  dd       |j'                  dd       y )N   r
      g@r   T)sharexsharey   blueredgffffff?*)lw	edgecolorr,   r   hatchr   )mpathPathunit_rectangledeepcopyverticesunit_circlemake_compound_pathunit_regular_starr   subplotsr-   PathCollectionset_clip_pathr   r/   r   	PathPatchr   r   r   )	exteriorinterior	clip_pathstarfigax1ax2colpatchs	            r(   test_clippingr[   c   si   zz((*335Hzz%%'002H ))$B$/H

--hAI::''*335DMMSMll1aTBOC#s

%
%tff05SMCi/stVu%(5E		3==1MM%LLQLLQr*   c                    | j                  d      }|j                  ddgddg      \  }t        j                  ddgddgddgddgddgg      }t	        j
                  ||j                        }|j                  |       |j                  d      }|j                  ddgddg       |j                  dd       |j                  dd       y )	N)r   r   r   r   rE   r   r   r   )r   )r   g      ?)xlimylim)	add_axesplotrF   rG   r   rQ   r   rP   set)fig_testfig_refax_testlpax_refs         r(   test_clipping_zoomrh      s     -G	r1gAw	'BA 	

QFQFQFQFQF;<A1(9(9:AOOAl+F
KKQ"a!
JJKkJ2KK[{K3r*   c                     t         j                  j                  d      } t         j                  j                  d      }t        j                         \  }}|j	                  | |d       |j                  dd       t        j                         }|j                  |d       t        |j                               dk  sJ t        j                         }|j                  |d       t        |j                               dk  sJ y )	Ni N  zk.r
   r   pdf)formati@  svg)nprandomr   rN   r`   r   ioBytesIOsavefiglengetvalue)xyrV   r#   rj   rl   s         r(   test_cull_markersrv      s    
		A
		AllnGCGGAq$KK1
**,CKKEK"s||~%%%
**,CKKEK"s||~&&&r*   hatchingdefaultc                     t        j                  dd      \  } }t        j                  dddd      }|j	                  |       t        j                  ddgdg|j                  d	      }|j                  |       t        j                  d
dddd      }|j	                  |       t        j                  ddgdg|j                  dd      }|j                  |       |j                  dd       |j                  dd       y )Nr   r   r   r   r9   /)rD   i>  )g      ?      @)sizesoffsetsoffset_transformrD   )r9   r   C1)rD   rC   )g      @r|   )r}   r~   r   rD   rC   r      	   )r   rN   r   	Rectangler   r-   RegularPolyCollectionr   r/   r   r   )rV   r#   rect1rect2rect3rect4s         r(   test_hatchingr      s    ll1a GC vq!37ELL..	%:,E e vq!3$GELL..	%:,T#E eKK1KK1r*   c                     t        j                         \  } }|j                  t        j                  d      j                  dd            }|j                  t        d            \  }| j                  sJ |j                  sJ | j                  j                          | j                  rJ |j                  rJ |j                  rJ ||j                  v sJ ||j                  vsJ |j                  |u sJ |j                          |j                          ||fD ]"  }|j                  J |j                         "J  ||j                  vsJ | j                  sJ |j                  sJ y )N$   r;   r>   )r   rN   imshowrm   arangereshaper`   rangestalecanvasdraw_mouseover_setr   remove
get_figure)rV   r#   imlnarts        r(   test_remover      s>   llnGC	299R=((A.	/B
''%(
CB99988O8JJOOyy=xx<xx<"""""R&&&&&77b==IIKIIKBx (xx~~'''( R&&&&&99988O8r*   zdefault_edges.pngc            	      h   t        j                  dd      \  } \  \  }}\  }}|j                  t        j                  d      t        j                  d      dt        j                  d      dz   t        j                  d      d       |j                  t        j                  d      t        j                  d      d       |j                  ddd	d
t        d             |j                  dd       |j                  dd       t        j                  t        j                  g dt        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                   g      d|j"                        }|j%                  |       y )Nr
   
   rt   r   oedge)alignr   BOX   sawtooth)boxstyle)sizebboxr:   )rz   r   r   r   r   rz   none)r   r   )r   rN   r`   rm   r   bartextdictr   r   r   rQ   rF   rG   MOVETOCURVE3	CLOSEPOLYr   r   )rV   rW   rX   ax3ax4pp1s         r(   test_default_edgesr      s*   $'LLA$6!C	!*3jsCHHRYYr]BIIbM3YYr]Q		"s4GGBIIbM299R=G7HHQ5rj(AHBLLQLLQ




3JJ%%uzz'8'8JJ%%uzz';';=	> S]]	,C
 MM#r*   c                  P    t        j                  g g       } | j                          y N)mlinesLine2D
properties)r   s    r(   test_propertiesr      s    	r2	BMMOr*   c                     t        j                  g        t        j                  g g       t        j                         \  } }|j                  t	        d            }|j                  t	        d            }t        j                  t        ||      dd       t        j                  |j                  j                         d       t        j                         }t        j                  |d|       |j                         dk(  sJ y )	Nr   rB   r>   green)colorzorder)filez  zorder: float
)r   setprN   r`   r   martistr   spinesvaluesro   StringIOrs   )rV   r#   lines1lines2sios        r(   	test_setpr      s    HHRLHHbTN llnGCWWU1XFWWU1XFLLvv&a0HHRYYw/ ++-CHHVXC(<<>0000r*   c                      t        j                  g g       } | j                  d       | j                         dk(  sJ | j                  d       | j                         dk(  sJ y )Nr   )	linewidthr>   )rB   )r   r   ra   get_linewidthlines    r(   test_artist_setr     s]    ==R DHHqH1$$$ 	HHHN1$$$r*   c                      t        j                  ddgddg      } t        j                  t        d      5  | j                  d       ddd       y# 1 sw Y   yxY w)zK
    Test that set() raises AttributeError for invalid property names.
    r   r   zunexpected keyword argumentmatch)not_a_propertyN)r   r   pytestraisesAttributeErrorra   r   s    r(   'test_artist_set_invalid_property_raisesr     sN     ==!Q!Q(D	~-J	K #"# # #s   AAc                      t        j                  ddgddg      } t        j                  t        d      5  | j                  dd       ddd       y# 1 sw Y   yxY w)	z[
    Test that set() raises TypeError when both a property and its alias are provided.
    r   r   zaliases of one anotherr   r
   r   )rB   r   N)r   r   r   r   	TypeErrorra   r   s    r(   (test_artist_set_duplicate_aliases_raisesr     sP     ==!Q!Q(D	y(@	A $A#$ $ $s   AAc                     t        j                         \  } }|j                  t        d      d       \  }|j	                         t
        j                  j                  k(  sJ |j                  d       |j	                         dk(  sJ |j                  d        |j	                         t
        j                  j                  k(  sJ y )Nr>   )r   i@ )	r   rN   r`   r   
get_zorderr   r   r   
set_zorder)rV   r#   r   s      r(   test_None_zorderr   !  s    llnGC
''%(4'
(CB==?fmm22222MM&==?f$$$MM$==?fmm22222r*   zaccept_clause, expected)) unknown)zACCEPTS: [ '-' | '--' | '-.' ]z[ '-' | '--' | '-.' ])zACCEPTS: Some description.Some description.)z.. ACCEPTS: Some description.r   )z	arg : intint)z
*arg : intr   )z"arg : int
ACCEPTS: Something else.zSomething else. c                      G d dt         j                        }d| z  |j                  _        t        j                  |      j                  d      }||k(  sJ y )Nc                       e Zd Zd Zy):test_artist_inspector_get_valid_values.<locals>.TestArtistc                      y r    )selfargs     r(   set_fz@test_artist_inspector_get_valid_values.<locals>.TestArtist.set_f6      r*   N)__name__
__module____qualname__r   r   r*   r(   
TestArtistr   5      	r*   r   z
    Some text.

    %s
    f)r   Artistr   __doc__ArtistInspectorget_valid_values)accept_clauseexpectedr   valid_valuess       r(   &test_artist_inspector_get_valid_valuesr   +  sW    W^^   	 J
 **:6GGLL8###r*   c                      t        j                  t        j                        } | j	                         }|d   dhk(  sJ y )Nr   rB   )r   r   r   r   get_aliases)aialiasess     r(   !test_artist_inspector_get_aliasesr   B  s7    		 	 	/BnnG;D6)))r*   c                  T   t        j                         } t        j                  t        d      5  | j                  d       d d d        t        j                  t        d      5  | j                  g d       d d d        t        j                  t        d      5  | j                  d       d d d        t        j                  t        d      5  | j                  t        j                         d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   exY w# 1 sw Y   y xY w)N^alpha must be numeric or Noner   string)r   r
   r   outside 0-1 range皙?)	r   r   r   r   r   	set_alpha
ValueErrorrm   nanr   s    r(   test_set_alphar  I  s    
..
C	y(H	I  h 	y(H	I !i !	z)<	= c	z)<	= bff    ! !  s/   C:%DD D:DDDD'c                     t        j                         } t        j                  t        d      5  | j                  d       d d d        t        j                  t        d      5  | j                  d       d d d        t        j                  t        d      5  | j                  t        j                         d d d        t        j                  t        d      5  | j                  ddg       d d d        t        j                  t        d      5  | j                  dt        j                  g       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   sxY w# 1 sw Y   y xY w)Nr   r   r   r   r   zalpha must be between 0 and 1r   )	r   r   r   r   r   _set_alpha_for_arrayr  rm   r  r  s    r(   test_set_alpha_for_arrayr  U  s   
..
C	y(H	I +  *+	z)<	= &  %&	z)<	= )  ()	z)H	I -  #s,-	z)H	I 0  #rvv/0 0+ +& &) )- -0 0s;   D?%E EE#"E/?EEE #E,/E8c                  t   fdd_         t        j                         } | j                        }j                   dk(  sJ | j	                          j                   dk(  sJ | j                  d       j                   dk(  sJ | j                  |       | j	                          j                   dk(  sJ y )Nc                 0    xj                   dz  c_         y )Nr   )counter)artistfuncs    r(   r  ztest_callbacks.<locals>.funcd  s    r*   r   r   r   r
   )r
  r   r   add_callbackpchangedr   remove_callback)r   oidr  s     @r(   test_callbacksr  c  s     DL
..
C


4
 C<<1LLN<<1NN2<<1LLN<<1r*   c                  H    G d dt         j                        } t        | j                  d      sJ d| j                  j                  v sJ  G d d|       }t        |j                  d      sJ d|j                  j                  v sJ d|j                  j                  v sJ y)	z3Test autogenerated ``set()`` for Artist subclasses.c                       e Zd Zd Zy)%test_set_signature.<locals>.MyArtist1c                      y r   r   r   vals     r(   set_myparam1z2test_set_signature.<locals>.MyArtist1.set_myparam1x  r   r*   N)r   r   r   r  r   r*   r(   	MyArtist1r  w  r   r*   r  _autogenerated_signaturemyparam1c                       e Zd Zd Zy)%test_set_signature.<locals>.MyArtist2c                      y r   r   r  s     r(   set_myparam2z2test_set_signature.<locals>.MyArtist2.set_myparam2  r   r*   N)r   r   r   r  r   r*   r(   	MyArtist2r  ~  r   r*   r   myparam2Nr   r   hasattrra   r   )r  r   s     r(   test_set_signaturer$  u  s    GNN  9=="<===.....I  9=="<===..........r*   c                       G d dt         j                        } t        | j                  d      rJ | j                  j                  dk(  sJ  G d d|       }|j                  | j                  u sJ y)z=set() defined in Artist subclasses should not be overwritten.c                       e Zd Zd Zy)*test_set_is_overwritten.<locals>.MyArtist3c                      y)Not overwritten.Nr   )r   kwargss     r(   ra   z.test_set_is_overwritten.<locals>.MyArtist3.set  s    r*   N)r   r   r   ra   r   r*   r(   	MyArtist3r'    s    	#r*   r+  r  r)  c                       e Zd Zy)*test_set_is_overwritten.<locals>.MyArtist4Nr   r   r   r   r*   r(   	MyArtist4r-    s    r*   r/  Nr"  )r+  r/  s     r(   test_set_is_overwrittenr0    sf    #GNN #
 y}}&@AAA==  $6666I  ==IMM)))r*   c                     t        j                  d      } d| d<   d| d<   d| d<   d| d	<   d
| d<   d| d<   d| d<   d| d<   d| d<   t        j                         \  }}|j	                  d       t        j                  t        j                  ddd      d      }|j                  | d|      }g d}t        | j                  |      D ]  \  }}|j                  |      |k(  rJ  t        j                          t        j                         \  }}|j	                  d       t        j                  d   j                  d      }t        j                  t        j                  ddd      d      }|j                  | ||      }g d}t        | j                  |      D ]  \  }}|j                  |      |k(  rJ  t        j                          t        j                         \  }}|j	                  d       t        j                  d   j                  d      }t        j                  t        j                  ddd      d      }|j                  | ||      }g d}t        | j                  |      D ]  \  }}|j                  |      |k(  rJ  t        j                          t        j                  d       } d!| d
<   d"| d<   d#| d$<   d%| d&<   d| d'<   d(| d)<   d*| d+<   g d,}t        j                         \  }}|j	                  d-       t        j                  t        j                  d
dd'd./      dd0d12      }|j                  | d|      }t        | j                  |      D ]  \  }}|j                  |      |k(  rJ  t        j                          t        j                         \  }}|j	                  d3       t        j                  t        j                  d
dd'd./      dd0d42      }|j                  | d|      }t        | j                  |      D ]  \  }}|j                  |      |k(  rJ  t        j                          t        j                         \  }}|j	                  d5       t        j                  t        j                  d
dd'd./      dd0d62      }|j                  | d|      }t        | j                  |      D ]  \  }}|j                  |      |k(  rJ  t        j                          t        j                         \  }}|j	                  d7       t        j                  t        j                  d
dd'd./      dd0d82      }|j                  | d|      }t        | j                  |      D ]  \  }}|j                  |      |k(  rJ  t        j                          t        j                         \  }}|j	                  d9       t        j                  t        j                  d
dd'd./      dd.d12      }|j                  | d|      }t        | j                  |      D ]  \  }}|j                  |      |k(  rJ  t        j                          y:);z7Test if cursor data is correct when using BoundaryNorm.)r   r   g?rz   gGz?)r   r   g+?)r   r
   r:   r   r   r   r   )r   r
   g
ףp=
?)r
   r   g;On?)r
   r   gH}M?r	   z-1..1 to 0..256 in 0.1      RdBu_r)cmapnorm)	[0.9][1.]r8  [-1.0][0.0][1.0][0.09][0.009][0.0009]z-1..1 to 0..256 in 0.01   )	z[0.90]z[0.99]r;  z[-1.00]z[0.00]z[1.00]r<  r=  r>  z-1..1 to 0..256 in 0.001i  )	z[0.900]z[0.990]z[0.999]z[-1.000]z[0.000]z[1.000]z[0.090]r=  r>  )r   r   g      g        g?r
   r   r   r9   g      ?r>   g       @r;   )r9  r:  z[0.1]z[0.5]r7  r;  z[2.0]znoclip, neitherT)endpointFneither)clipextendznoclip, minminznoclip, maxmaxznoclip, bothbothzclip, neitherN)rm   emptyr   rN   suptitlemcolorsBoundaryNormlinspacer   zipflatformat_cursor_dataclosempl	colormaps	resampled)	XrV   r#   r6  imglabels_listvlabelr5  s	            r(   $test_format_cursor_data_BoundaryNormrX    s   
AAdGAdGAdGAdGAdGAdGAdGAdGAdG llnGCLL)*B2 6<D
))AH4)
0C
K , 25%%a(E1112 IIK llnGCLL*+==",,S1DB3 7=D
))ADt)
,C
K , 25%%a(E1112 IIK llnGCLL+,==",,T2DB4 8$?D
))ADt)
,C
K , 25%%a(E1112 IIK 	AAaDAaDAaDAaDAaDAaDAaDK llnGCLL"#
Aq!d+SuYPD
))AH4)
0C, 25%%a(E1112 IIKllnGCLL
Aq!d+SuULD
))AH4)
0C, 25%%a(E1112 IIKllnGCLL
Aq!d+SuULD
))AH4)
0C, 25%%a(E1112 IIKllnGCLL 
Aq!d+SuVMD
))AH4)
0C, 25%%a(E1112 IIKllnGCLL!
Aq!d+StIOD
))AH4)
0C, 25%%a(E1112 IIKr*   c                       G d dt         j                        } d| j                  v sJ | j                  d   | j                  u sJ  G d d|       }d|j                  vsJ |j                  | j                  u sJ y )Nc                       e Zd Zy)$test_auto_no_rasterize.<locals>.Gen1Nr.  r   r*   r(   Gen1r[  9      r*   r\  r   c                       e Zd Zy)$test_auto_no_rasterize.<locals>.Gen2Nr.  r   r*   r(   Gen2r_  ?  r]  r*   r`  )r   r   __dict__r   )r\  r`  s     r(   test_auto_no_rasterizerb  8  sw    w~~  T]]"""== DII---t  &&&99		!!!r*   c                       G d dt         j                        }  |        }t        j                         }d|j	                  |d      k(  sJ d|j	                  |d      k(  sJ y )Nc                       e Zd Zd Zy)1test_draw_wraper_forward_input.<locals>.TestKlassc                     |S r   r   )r   rendererextras      r(   r   z6test_draw_wraper_forward_input.<locals>.TestKlass.drawH  s    Lr*   N)r   r   r   r   r   r*   r(   	TestKlassre  G  s    	r*   ri  aardvark)rh  )r   r   mbackend_basesRendererBaser   )ri  r   rg  s      r(   test_draw_wraper_forward_inputrm  F  s]    GNN  +C**,H(J7777(*====r*   c                  Z   t        j                         } | j                         }|j                         }|j                         }| j	                  d      | u sJ | j	                  d      | u sJ |j	                         |u sJ |j	                  d      |u sJ |j	                  d      | u sJ |j	                  d      |u sJ |j	                  d      | u sJ t        j                  t        j                        5  |j	                         | u sJ 	 d d d        |j	                         | u sJ t        j                  g g       }|j	                  d      J |j	                  d      J |j                  |u sJ | j                  | u sJ |j                  | u sJ y # 1 sw Y   xY w)NT)rootF)r   figure
subfiguresrN   r   r   warnsrP  MatplotlibDeprecationWarningr   r   )rV   sfig1sfig2r#   r   s        r(   test_get_figurerv  R  s   
**,CNNEE		B>>t>$+++>>u>%,,,==?e###==e=$---==d=#s*** '5000&#---	c66	7 )!S((() $$$ 
r2	B==d=#+++==e=$,,, 99::<<3) )s    F!!F*)Aro   	itertoolsr   numpyrm   r   matplotlib.colorscolorsrI  matplotlib.pyplotpyplotr   matplotlib.patchespatchesr   matplotlib.lineslinesr   matplotlib.pathpathrF   matplotlib.transforms
transformsr    matplotlib.collectionscollectionsr-   matplotlib.artistr  r   matplotlib.backend_basesbackend_basesrk  
matplotlibrP  matplotlib.testing.decoratorsr   r   r)   r3   r[   rh   rv   r   r   r   r   r   r   r   r   r   markparametrizer   r   r  r  r  r$  r0  rX  rb  rm  rv  r   r*   r(   <module>r     sA   	    #  % !  + - # 1  O'(T!OH '(d/R S6 4 4$'" :,D	B C2: &'TK L"
1$%#$3 2 5 $$*	0$/$* ^B"	>r*   