
    
3j                        S SK Jr  S SKJr  S SKrS SKJrJr  \R                  S 5       r	S\\   S\
4S jr\R                  R                  S	/ S
Q5      S 5       rS r\R                  R                  S\R                   / SQ4\R"                  / SQ4/5      S 5       rS r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       rS rS rS rS rS rS r\R                  R                  SSS /5      S! 5       r\R                  R                  S"/ S#Q5      S$ 5       rS% rg)&    )Sequence)AnyN)BackendFilterbackend_registryc               #   h   #    [         R                  " 5         S v   [         R                  " 5         g 7fN)r   _clear     `/home/wildlama/miniconda3/lib/python3.13/site-packages/matplotlib/tests/test_backend_registry.pyclear_backend_registryr   	   s"      	s   02seqreturnc                 B    [        U 5      [        [        U 5      5      :  $ r   )lenset)r   s    r   has_duplicatesr      s    s8c#c(m##r   zframework,expected))qtqtagg)gtk3gtk3agg)gtk4gtk4agg)wxwxagg)tktkagg)macosxr   )headlessagg)zdoes not existNc                 <    [         R                  " U 5      U:X  d   eg r   )r   backend_for_gui_framework)	frameworkexpecteds     r   test_backend_for_gui_frameworkr%      s     55i@HLLLr   c                  j    [         R                  " 5       n [        U 5      (       a   e1 U k1 Sk:X  d   eg )N>   psr   r    pdfpgfsvgcaironbaggr   r   r   r   qt5aggwebaggr   r   qtcairotkcairowxcaironotebookqt5cairotemplate	gtk3cairo	gtk4cairor   list_builtinr   backendss    r   test_list_builtinr;   '   s<    ,,.Hh''''X;    r   zfilter,expected)r   r5   r   r6   r   r,   r2   r   r/   r-   r3   r   r0   r.   r   r   r1   )r    r+   r(   r)   r'   r*   r4   c                 l    [         R                  " U 5      n[        U5      (       a   e1 Uk1 Uk:X  d   eg r   r7   )filterr$   r:   s      r   test_list_builtin_with_filterr>   3   s;      ,,V4Hh''''X;+H+%%%r   c                  j    [         R                  " 5       n [        U 5      (       a   e1 U k1 Sk:X  d   eg )N>   r   r   r   qt5qt6r   r   r   )r   list_gui_frameworksr   )
frameworkss    r   test_list_gui_frameworksrD   E   s<    !557Jj))))Z=    r   zbackend, is_valid))r    T)QtAggT)zmodule://anythingT)zmade-up-nameFc                 <    [         R                  " U 5      U:X  d   eg r   )r   is_valid_backend)backendis_valids     r   test_is_valid_backendrJ   N   s     ,,W5AAAr   zbackend, normalized))r    zmatplotlib.backends.backend_agg)rE   z!matplotlib.backends.backend_qtagg)zmodule://AnythingAnythingc                 <    [         R                  " U 5      U:X  d   eg r   )r   _backend_module_name)rH   
normalizeds     r   test_backend_normalizationrO   X   s     009ZGGGr   c                  j    [         R                  " S5        [        R                  " 5       n SU ;   d   eg )Nmatplotlib_inlineinlinepytestimportorskipr   list_allr9   s    r   test_entry_points_inlinerW   a   s-    
+,((*Hxr   c                  z    [         R                  " S5        [        R                  " 5       n SU ;   d   eSU ;   d   eg )NipymplwidgetrS   r9   s    r   test_entry_points_ipymplr[   g   s:    
!((*Hxxr   c                     [         R                  " [        5         [        R                  " S/5        S S S 5        g ! , (       d  f       g = f)N)r   module1rT   raisesRuntimeErrorr    _validate_and_store_entry_pointsr   s    r   %test_entry_point_name_shadows_builtinrc   n   s.    	|	$99!"	$ 
%	$	$	   <
A
c                     [         R                  " [        5         [        R                  " SS/5        S S S 5        g ! , (       d  f       g = f)N)	some_namer]   )rf   module2r^   rb   s    r   test_entry_point_name_duplicaterh   t   s2    	|	$99%'?@	B 
%	$	$s	   =
Ac                     [        [        R                  5      n[        R                  " SS/5        [        [        R                  5      US-   :X  d   e[        R                  S   S:X  d   eg )N)rf   zsome.module   rf   zmodule://some.module)r   r   _name_to_modulera   )r   ns     r   test_entry_point_identicalrm   z   se     	,,-A55	%'CDF//0AaC777++K8<RRRRr   c                     [         R                  " [        5         [        R                  " S/5        S S S 5        g ! , (       d  f       g = f)N)zmodule://backend.somethingr]   r^   rb   s    r   test_entry_point_name_is_modulero      s.    	|	$9967	9 
%	$	$rd   rH   r    z(module://matplotlib.backends.backend_aggc                     [         R                  (       a   e[         R                  " U5      nX!S 4:X  d   e[         R                  (       a   e[         R                  " 5         [         R                  (       d   eg r   )r   _loaded_entry_pointsresolve_backendrV   )r   rH   checks      r   %test_load_entry_points_only_if_neededrt      s]    
  4444,,W5EdO###44440000r   z.gui_or_backend, expected_backend, expected_gui))r    r    N)r   r   r   )TkCairor0   r   c                 P    [         R                  " U 5      u  p4X1:X  d   eXB:X  d   eg r   )r   resolve_gui_or_backend)gui_or_backendexpected_backendexpected_guirH   guis        r   test_resolve_gui_or_backendr|      s.     $::>JLG&&&r   c                      Sn [         R                  " [        U S9   [        R                  " S5        S S S 5        g ! , (       d  f       g = f)Nz,is not a recognised GUI loop or backend namematchzno-such-name)rT   r_   r`   r   rw   r~   s    r   #test_resolve_gui_or_backend_invalidr      s/    :E	|5	1//? 
2	1	1s	   <
A
)collections.abcr   typingr   rT   matplotlib.backendsr   r   fixturer   boolr   markparametrizer%   r;   INTERACTIVENON_INTERACTIVEr>   rD   rJ   rO   rW   r[   rc   rh   rm   ro   rt   r|   r   r
   r   r   <module>r      s   $   ?  $ $$ $ 	MM	 		"	"
9	: 
	&	&	@	B
&
& , / BB . 1 
H
H  $BS9 	.% 1	1 4@r   