
    h/                        S r SSKrSSKrSSKrSSKrSSKJr  SSK	J
r  SSKJr  SSKJr   " S S5      r " S S5      r " S	 S
5      r\R(                  \R*                  \R,                  /r/ SQr " S S5      r " S S5      rS r " S S5      r " S S5      r " S S5      r\R>                  RA                  S5      \" S/S9S 5       5       r!S r"S r#S r$g)z#Catch all for categorical functions    N)Axes)check_figures_equalc                   f   \ rS rSrSS/S/44SS/S/44S/ SQ/ S	Q44/r\" \6 u  rr\R                  R                  S
\\S9S 5       rS rSS\R                  4SSS/4SSS/4/r\" \6 u  rr\R                  R                  S\\S9S 5       r\R                  R                  S\\S9S 5       rSrg)TestUnitData   singlehello worldr   unicode   Здравствуйте мирmixed)Aznp.nanBz3.14   мир)r               z
data, locsidsc                     [         R                  " U5      n[        UR                  R	                  5       5      U:X  d   e[        UR                  R                  5       5      U:X  d   eg N)catUnitDatalist_mappingkeysvalues)selfdatalocsunits       P/var/www/html/env/lib/python3.13/site-packages/matplotlib/tests/test_category.py	test_unitTestUnitData.test_unit   sP    ||D!DMM&&()T111DMM((*+t333    c                    SS/nSS/n/ SQn/ SQn/ SQn[         R                  " U5      n[        UR                  R	                  5       5      U:X  d   e[        UR                  R                  5       5      U:X  d   eUR                  U5        [        UR                  R	                  5       5      U:X  d   e[        UR                  R                  5       5      U:X  d   eg )Nadr   r   )br(   e)r'   r(   r)   r*   )r   r   r   r   )r   r   r   r   r   r   update)r   r   r    data_updateunique_dataupdated_locsr!   s          r"   test_updateTestUnitData.test_update   s    Sz1v%*#||D!DMM&&()T111DMM((*+t333K DMM&&()[888DMM((*+|;;;r%   )numberQ	@nanr   r2      z
mixed typer   r   fdatac                     [         R                  " [        5         [        R                  " U5        S S S 5        g ! , (       d  f       g = fr   )pytestraises	TypeErrorr   r   )r   r5   s     r"   test_non_string_fails"TestUnitData.test_non_string_fails0   s&    ]]9%LL &%%s	   ;
A	c                     [         R                  " 5       n[        R                  " [        5         UR                  U5        S S S 5        g ! , (       d  f       g = fr   )r   r   r7   r8   r9   r+   )r   r5   unitdatas      r"   test_non_string_update_fails)TestUnitData.test_non_string_update_fails5   s1    <<>]]9%OOE" &%%s   A
A N)__name__
__module____qualname____firstlineno__
test_caseszipr   r   r7   markparametrizer#   r/   npr3   failing_test_casesfidsr5   r:   r>   __static_attributes__r@   r%   r"   r   r      s   }os34 ABQCHIC,. /0J Z IC[[\4S94 :4
<  +UBFFO!D":.Qx0HJ z"KD%[[We6  7  [[We6# 7#r%   r   c                       \ rS rSrS rSrg)FakeAxis<   c                     Xl         g r   units)r   rR   s     r"   __init__FakeAxis.__init__=   s    
r%   rQ   N)rA   rB   rC   rD   rS   rL   r@   r%   r"   rN   rN   <   s    r%   rN   c                      \ rS rSrSrSS/4SS/4S/ SQ4S	S
S/4S/ SQ4/r\" \6 u  rrSSS\	R                  /4SSS/4/r\" \6 u  rr\R                  " SS9S 5       r\R"                  R%                  S\\S9S 5       r\R"                  R%                  SSS/SS/S9S 5       r\R"                  R%                  S\\S9S 5       rS  rS! rS"rg#)$TestStrCategoryConverterA   z
Based on the pandas conversion and factorization tests:

ref: /pandas/tseries/tests/test_converter.py
     /pandas/tests/test_algos.py:TestFactorize
r
   r   asciir	   r   r'   r)   czinteger string12zsingle + values>10)r   r   CDEFGHIJKLMNOPQRSTUVWXYZr   r2   r   string integer42*   T)autousec                     [         R                  " 5       U l        [         R                  " 5       U l        [        U R                  5      U l        g r   )r   StrCategoryConverterccr   r!   rN   ax)r   requests     r"   	mock_axis"TestStrCategoryConverter.mock_axisX   s/    **,LLN	499%r%   valsr   c                     [         R                  R                  U R                  R	                  XR
                  R                  U R
                  5      [        [        U5      5      5        g r   )	rI   testingassert_allcloser{   convertr|   rR   rangelen)r   r   s     r"   test_convert%TestStrCategoryConverter.test_convert_   s@    


""477??43777$<#(T#3	5r%   valuehir   c                 p    U R                   R                  XR                  U R                  5      S:X  d   eg )Nr   )r{   r   r!   r|   )r   r   s     r"   test_convert_one_string0TestStrCategoryConverter.test_convert_one_stringe   s'    wwuii9Q>>>r%   fvalsc                     [         R                  " [        5         U R                  R	                  XR
                  U R                  5        S S S 5        g ! , (       d  f       g = fr   )r7   r8   r9   r{   r   r!   r|   )r   r   s     r"   test_convert_fail*TestStrCategoryConverter.test_convert_faili   s4    ]]9%GGOOE99dgg6 &%%s   1A
A#c                    U R                   R                  U R                  U R                  5      n[	        UR
                  [        R                  5      (       d   e[	        UR                  [        R                  5      (       d   eg r   )
r{   axisinfor!   r|   
isinstancemajlocr   StrCategoryLocatormajfmtStrCategoryFormatter)r   axiss     r"   test_axisinfo&TestStrCategoryConverter.test_axisinfon   sZ    ww		4773$++s'='=>>>>$++s'?'?@@@@r%   c                     [        U R                  R                  S/U R                  5      [        R
                  5      (       d   eg )Nr'   )r   r{   default_unitsr|   r   r   r   s    r"   test_default_units+TestStrCategoryConverter.test_default_unitss   s0    $''//tww?NNNNr%   )r|   r{   r!   N)rA   rB   rC   rD   __doc__rE   rF   r   r   rI   infrJ   rK   fvaluesr7   fixturer~   rG   rH   r   r   r   r   r   rL   r@   r%   r"   rV   rV   A   sB    @AB]O,_-#c3Z0' *C D	EJ z"KC"T3$78+dBZ8: +,MD'^^D!& "& [[VV55 65
 [[WtX&6Wi<PQ? R? [[Wg487 97A
Or%   rV   )scatterplotbarc                   \    \ rS rSrS r\R                  R                  S\\	S9S 5       r
Srg)TestStrCategoryLocator{   c                    / SQn[         R                  " U Vs/ s H  n[        U5      PM     sn5      n[         R                  " UR                  5      n[
        R                  R                  UR                  S S 5      U5        g s  snf )N)r   r   r   r   r               	   
   )	r   r   strr   r   rI   r   assert_array_equaltick_values)r   r    jr!   tickss        r"   test_StrCategoryLocator.TestStrCategoryLocator.test_StrCategoryLocator|   sb    1||T2TSVT23&&t}}5


%%e&7&7d&CTJ 3s   Bplotterr   c                     [         R                  " 5       R                  5       nU" U/ SQ/ SQ5        [        R                  R                  UR                  R                  R                  5       [        S5      5        g )N)r   r   r   rY   r   )
pltfiguresubplotsrI   r   r   yaxismajorlocatorr   r   r   r|   s      r"   test_StrCategoryLocatorPlot2TestStrCategoryLocator.test_StrCategoryLocatorPlot   sK    ZZ\""$I/


%%bhhnn&<&<&>aIr%   r@   N)rA   rB   rC   rD   r   r7   rG   rH   	PLOT_LISTPLOT_IDSr   rL   r@   r%   r"   r   r   {   s5    K [[Y	x@J AJr%   r   c                       \ rS rSrS/ SQ4SSS/4/r\" \6 u  rr\R                  R                  S\\S9S	 5       r\R                  R                  S\\S9\R                  R                  S
\\S9S 5       5       rSrg)TestStrCategoryFormatter   rX   )helloworldr   r
      Здравствуйте   приветydatar   c                     [         R                  " U5      n[         R                  " UR                  5      n[	        U5       H"  u  pEU" XD5      U:X  d   eU" US 5      U:X  a  M"   e   g r   )r   r   r   r   	enumerate)r   r   r!   labelsir(   s         r"   test_StrCategoryFormatter2TestStrCategoryFormatter.test_StrCategoryFormatter   s[    ||E"))$--8e$DA!<1$$$!T?a''' %r%   r   c                 \   [         R                  " 5       R                  5       nU" U[        [	        U5      5      U5        [        U5       H0  u  pEUR                  R                  R                  U5      U:X  a  M0   e   UR                  R                  R                  WS-   5      S:X  d   eg )Nr    )	r   r   r   r   r   r   r   r   	formatter)r   r   r   r|   r   r(   s         r"   test_StrCategoryFormatterPlot6TestStrCategoryFormatter.test_StrCategoryFormatterPlot   s     ZZ\""$E#e*%u-e$DA88>>++A.!333 %xx~~''!,222r%   r@   N)rA   rB   rC   rD   rE   rF   r   casesr7   rG   rH   r   r   r   r   rL   r@   r%   r"   r   r      s    459>JKMJ j!JC[[We5( 6( [[We5[[Y	x@3 A 63r%   r   c                 b   [        [        [        U5      5      5      n[        R                  R                  U R                  5       U5        U Vs/ s H  o0R                  R                  X35      PM     nnXA Vs/ s H"  n[        R                  R                  U5      PM$     sn:X  d   e[        U R                  R                  R                  5       5      U Vs/ s H  oUPM     sn:X  d   e[        U R                  R                  R                  5       5      U:X  d   eg s  snf s  snf s  snf r   )r   r   r   rI   r   r   get_majorticklocsr   r   r   r   _textrR   r   r   r   )r   r   r   r   graph_labelsls         r"   	axis_testr      s    s6{#$EJJ!!$"8"8":EB8=>1JJ((.L>vNv!C44::1=vNNNN

##((*+6/B6a6/BBBB

##**,-666	 ?N/Bs   $D":)D'D,c                       \ rS rSrS/ SQ4S/ SQ4S\R
                  " / SQ5      4/r\" \6 u  rr	\
R                  R                  S\\S9\
R                  R                  S	\	\S9S
 5       5       rSrg)TestPlotBytes   string listrY   
bytes list)   a   b   cbytes ndarrayr   r   bdatac                     [         R                  " 5       R                  5       n[        R                  " / SQ5      nU" X2U5        [        UR                  U5        g N)r   r   r   r   r   r   rI   arrayr   xaxis)r   r   r   r|   countss        r"   test_plot_bytesTestPlotBytes.test_plot_bytes   >     ZZ\""$)$6""((E"r%   r@   N)rA   rB   rC   rD   rI   r   bytes_casesrF   	bytes_ids
bytes_datar7   rG   rH   r   r   r   rL   r@   r%   r"   r   r      s    !?3 "45#RXX.@%ABDK  -Iz[[Y	x@[[Wji@# A A#r%   r   c                      \ rS rSrS/ SQ4S\R
                  " / SQ5      4S/ SQ4S\R
                  " / SQ5      4/r\" \6 u  rr	\
R                  R                  S\\S	9\
R                  R                  S
\	\S	9S 5       5       rSrg)TestPlotNumlike   r   )r[   113zstring ndarrayr   )   1s   11   3r   r   r   ndatac                     [         R                  " 5       R                  5       n[        R                  " / SQ5      nU" X2U5        [        UR                  U5        g r   r   )r   r   r   r|   r   s        r"   test_plot_numlike!TestPlotNumlike.test_plot_numlike   r   r%   r@   N)rA   rB   rC   rD   rI   r   numlike_casesrF   numlike_idsnumlike_datar7   rG   rH   r   r   r   rL   r@   r%   r"   r   r      s    #%56&1A(BC"$78%rxx0C'DEGM !$] 3K[[Y	x@[[WlD# E A#r%   r   c                      \ rS rSr\R
                  R                  S\\S9S 5       r	\R                  S 5       r\R
                  R                  S5      \R
                  R                  S\\S9S 5       5       r\R
                  R                  S5      \R
                  R                  S\\S9S 5       5       r\R
                  R                  S5      \R
                  R                  S\\S9S	 5       5       r\R
                  R                  S\\S9S
 5       rS rSSS/4SSS/4SSS/4SS\R&                  /4/r\" \6 u  rr\R2                  \R4                  \R6                  " \R8                  \R
                  R:                  S9/r\R
                  R                  S\5      \R
                  R                  S\\S9S 5       5       r\R
                  R                  S\5      \R
                  R                  S\\S9S 5       5       r Sr!g)TestPlotTypes   r   r   c                     [         R                  " 5       R                  5       nSS/nU" X#SS/5        [        UR                  U5        g )Nr   r   r   r   )r   r   r   r   r   )r   r   r|   wordss       r"   test_plot_unicodeTestPlotTypes.test_plot_unicode   s<    ZZ\""$+^<Aq6""((E"r%   c                 L    / SQU l         / SQU l        / SQU l        / SQU l        g )N)r   happyr   )r   r   r   )Pythonisfun)r   r   r   xxyyyxr   s    r"   	test_dataTestPlotTypes.test_data   s    ,(r%   r  c                     [         R                  " 5       R                  5       nU" X0R                  U R                  5        [        UR                  U R                  5        g r   )r   r   r   r  r  r   r   r   r  r   r|   s       r"   test_plot_xaxisTestPlotTypes.test_plot_xaxis   s<     ZZ\""$FFDGG$"((DFF#r%   c                     [         R                  " 5       R                  5       nU" X0R                  U R                  5        [        UR                  U R                  5        g r   )r   r   r   r  r  r   r   r  s       r"   test_plot_yaxisTestPlotTypes.test_plot_yaxis   s<     ZZ\""$GGTVV$"((DFF#r%   c                    [         R                  " 5       R                  5       nU" X0R                  U R                  5        [        UR                  U R                  5        [        UR                  U R                  5        g r   )r   r   r   r  r  r   r   r   r  s       r"   test_plot_xyaxisTestPlotTypes.test_plot_xyaxis   sN     ZZ\""$FFDFF#"((DFF#"((DFF#r%   c                     [         R                  " 5       R                  5       nU" USS/SS/5        U" U/ SQ/ SQ5        U" U/ SQ/ SQ5        [        UR                  / S	Q5        [        UR
                  / S
Q5        g Nr'   r)   r*   g)r'   r)   r(   )fr'   r)   )r)   rZ   r(   )r#  r*   r(   )r'   r)   r(   rZ   )r*   r#  r$  r'   r)   r(   )r   r   r   r   r   r   r   s      r"   test_update_plotTestPlotTypes.test_update_plot   s`    ZZ\""$S#Jc
+O_5O_5"((01"((:;r%   c                 .   [         R                  " 5       R                  5       nUR                  SS/SS/5        UR	                  / SQ/ SQ5        UR                  / SQ/ SQ5        [        UR                  / S	Q5        [        UR                  / S
Q5        g r"  )	r   r   r   r   r   r   r   r   r   )r   r|   s     r"   %test_update_plot_heterogenous_plotter3TestPlotTypes.test_update_plot_heterogenous_plotter   sf    ZZ\""$


C:Sz*
1
0"((01"((:;r%   r   r   r2   znumber integerr[   r   ru   rv   rw   missing12)marksxdatac                     [         R                  " 5       R                  5       n[        R                  " [
        5         U" X2SS/5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   r   r   r7   r8   r9   r   r   r-  r|   s       r"   test_mixed_type_exception'TestPlotTypes.test_mixed_type_exception  s>     ZZ\""$]]9%B1v& &%%s   A
A!c                     [         R                  " 5       R                  5       n[        R                  " [
        5         U" USS/SS/5        U" X2SS/5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   r   r/  r0  s       r"    test_mixed_type_update_exception.TestPlotTypes.test_mixed_type_update_exception  sR     ZZ\""$]]9%BAA'B1v& &%%s   A!!
A/r  N)"rA   rB   rC   rD   r7   rG   rH   r   r   r	  r   r  usefixturesr  r  r  r%  r(  rI   r3   rJ   rF   rK   r   r   r   r   paramr   xfailplottersr1  r4  rL   r@   r%   r"   r  r     s?   [[Y	x@# A# ^^  [[[)[[Y	x@$ A *$
 [[[)[[Y	x@$ A *$
 [[[)[[Y	x@$ A *$ [[Y	x@< A<< #S$K0+c1X6+dBZ8$tRVVn57
 +,MD'dhhTYYfkk.?.?@BH [[Y1[[Wg48' 9 2'
 [[Y1[[Wg48' 9 2'r%   r  defaultpng)
extensionsc           	         SSK J n  U" SSS5      nU" SSS5      nU" SSS5      nU" SSS5      nU R                  5       nUR                  5       n[        Xx/0 [        S S S945       H  u  pU	R                  " X4/S	S
/40 U
D6  U	R
                  R                  nU	R                  R                  nU	R                  " XV/S	S
/40 U
D6  XR
                  R                  L d   eXR                  R                  L a  M   e   g )Nr   )datetimei  r   r   r   r   )xunitsyunitsV1V2)r>  r   rF   dictr   r   rR   r   )fig_testfig_refr>  t0t1t2t3ax_testax_refr|   kwargsx_unitsy_unitss                r"   test_overriding_units_in_plotrO    s     "	$1	B	$1	B	$1	B	$1	B!GF7+t4=>@
 	4,1&1((..((..
4,1&1((..(((((..(((@r%   c                      [         R                  " 5       u  pUR                  R                  SS/5        UR	                  / / 5        g)zI
Smoke test to check that no deprecation warning is emitted. See #22640.
r'   r)   N)r   r   r   update_unitsr   r$  r|   s     r"   !test_no_deprecation_on_empty_datarS  4  s4     LLNEAHH3*%GGBOr%   c                      [         R                  " 5       u  pUR                  / SQ5      u  p#nUR                  S:X  d   e[        R
                  R                  U/ SQ5        g )N)r'   r)   r'   rZ   ff)r   )
g       @        rV        ?rV  rV  rW  rV  rV  rW  )r   r   histshaperI   r   r   )figr|   nbinspatchess        r"   	test_histr^  =  sJ    llnGCww9:AW77eJJq"JKr%   c                      [         R                  " 5       u  pUR                  / SQ/ SQ5        [        R                  " 5          UR                  SS5        S S S 5        g ! , (       d  f       g = f)N)r'   r)   rZ   r(   )r   r   r   r   r)   rZ   )r   r   r   warningscatch_warningsset_xlimrR  s     r"   test_set_limrc  D  sF     LLNEAGG ,/		 	 	"
C 
#	"	"s   A
A-)%r   r`  r7   numpyrI   
matplotlibmplmatplotlib.axesr   matplotlib.pyplotpyplotr   matplotlib.categorycategoryr   matplotlib.testing.decoratorsr   r   rN   rV   r   r   r   r   r   r   r   r   r   r   r  stylecontextrO  rS  r^  rc  r@   r%   r"   <module>ro     s    )        ! =+# +#\ 
3O 3Ol \\499dhh/	%J J3 307# # # # M' M'` 9() ) ).Lr%   