
    P/Ph                        d dl Zd dlZd dlmZ d dlmZ d dlm	Z	m
Z
 d Z e
dg          d             Z e
dg          d             Z e	d	g
          d             Z e
dg          d             Zd Z e
dg          d             ZdS )    N)Spines)check_figures_equalimage_comparisonc                      G d d          }  |              |              |              |             d}t          di |}|d         |d         u sJ |j        |d         u sJ |ddg                             d           |j        j        dk    sJ |j        j        dk    sJ |j        j        J |j        j        J |dd                             d           t          d	 |                                D                       sJ |dd         	                    d
           t          d |                                D                       sJ t          j        t          d          5  |j         ddd           n# 1 swxY w Y   t          j        t          d          5  |d          ddd           n# 1 swxY w Y   t          j        t          d          5  |g d          ddd           n# 1 swxY w Y   t          j        t          d          5  |d          ddd           n# 1 swxY w Y   t          j        t          d          5  |dd          ddd           n# 1 swxY w Y   t          j        t          d          5  |dd          ddd           dS # 1 swxY w Y   dS )z)Test Spines and SpinesProxy in isolation.c                        e Zd Zd Zd Zd ZdS )#test_spine_class.<locals>.SpineMockc                     d | _         d S Nval)selfs    \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/matplotlib/tests/test_spines.py__init__z,test_spine_class.<locals>.SpineMock.__init__   s    DHHH    c                 J    t          |                               |           d S r
   )varsupdate)r   kwargss     r   setz'test_spine_class.<locals>.SpineMock.set   s"    JJf%%%%%r   c                     || _         d S r
   r   )r   r   s     r   set_valz+test_spine_class.<locals>.SpineMock.set_val   s    DHHHr   N)__name__
__module____qualname__r   r   r    r   r   	SpineMockr      sA        	 	 		& 	& 	&	 	 	 	 	r   r   )leftrighttopbottomr   r   xNyc              3   ,   K   | ]}|j         d k    V  dS )r"   Nr   .0spines     r   	<genexpr>z#test_spine_class.<locals>.<genexpr>'   s)      ==EuyC======r   barfooc              3   ,   K   | ]}|j         d k    V  dS )r(   Nr)   r$   s     r   r'   z#test_spine_class.<locals>.<genexpr>*   s)      ??euyE!??????r   r*   )matchzfoo, bar)r   r*   r   r(   zsingle list)r   r   zSpines does not support slicingr   r   )r   r   r   r   r   r   r    allvaluesr   pytestraisesAttributeErrorr*   KeyError
ValueError)r   spines_dictspiness      r   test_spine_classr6   	   sq           	y{{)++	 K ""k""F&>[00000;+f-----
FG%%c***;?c!!!!<s"""":>!!!=$$$
111Ic==V]]__========
111IMMeM??v}}????????	~U	3	3	3  

              	xu	-	-	-  u              	xz	2	2	2 0 0...//0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	z	7	7	7                                 	z)J	K	K	K  vg~              	z)J	K	K	K  uvv                 sl   1FF	F	+	G  GG&G==HH#	H88H<?H<I55I9<I9J33J7:J7spines_axes_positionsc                     t          j                    } t          j        ddt          j        z  d          }dt          j        |          z  }|                     ddd          }|                    d           |                    ||           |j	        j
                            d           |j                            d           |j	        j                            d           |j                            d	           |j	        j                            d
           |j	        j                            d
           d S )Nr      d      zcentered spines)axes皙?r   )r<   g      ?r   none)pltfigurenplinspacepisinadd_subplot	set_titleplotr5   r   set_positionyaxisset_ticks_positionr   xaxisr   	set_colorr    )figr!   r"   axs       r   test_spines_axes_positionsrO   :   s    *,,C
Aqw$$A	"&))A	Aq	!	!BLL"###GGAqMMMIO  ///H(((IM~...H&&&INV$$$Iv&&&&&r   spines_data_positionsc                     t          j                    \  } }|j        j                            d           |j        j                            d           |j        j                            d           |j        j                            d           |                    ddg           |	                    ddg           d S )N)datag      )rR   g      ?)rR   g      zeror9   )
r?   subplotsr5   r   rH   r   r   r    set_xlimset_ylimrM   rN   s     r   test_spines_data_positionsrY   K   s    lnnGCIN///IM}---IO  000I!!&)))KKQKKQr   png)
extensionsc                 J   t           j                            d           |                                 }|                    dd           |j        j                            d           |j        j                            d           |j        j	                            d           |
                    dd	d
           |                                }|                    dd           |j        j	                            d           |
                    dd	d	d           d S )Ndefaultlog)r=   r;   )xscalexlim)rR   r;   r9   )rR   r=   r"   Fin)axis	labelleft	directionT)rb   rc   r   r   )r?   styleuserE   r   r5   r   rH   set_linewidthr   tick_params)fig_testfig_refrN   s      r   #test_spine_nonlinear_data_positionsrk   V   s    IMM)					BFF%gF&&&
 IN,,,IN  ###IO  ...NNuN===					BFF%gF&&&IO!!!$$$NNu5NEEEEEr   spines_capstylec                      t          j        dd           t          j                    \  } }|                    g            |                    g            d S )Nr<      )	linewidth)r?   rcrU   
set_xticks
set_yticksrX   s     r   test_spines_capstylers   k   sR     F6R    lnnGCMM"MM"r   c                  &   t          j                    \  } }t          j        dd           |                    t	          j        d                     |j                            d           |j        j	        
                    d           |j        j                            d           |                    d           |j                            d           |j        j        
                    d           |j        j                            d           |                    d	           |j                            g            |j                            g            t          j                     |j        j	        }|                                                    |                                                                          }|j        j                                        d
         |j        k     s
J d            |j        j        }|                                                    |                                                                          }|j        j                                        d         |j        k     s
J d            d S )Ng333333?)r   r    
   r   )outward   Fzy labelr    zx labelr   z"Y-Axis label not left of the spiner;   z X-Axis label not below the spine)r?   rU   subplots_adjustrG   rA   arangerI   rJ   r5   r   rH   r   set_visible
set_ylabelrK   r    r   
set_xlabel	set_ticksdrawget_transformtransform_pathget_pathget_extentslabelget_positionxminymin)rM   rN   r&   	spinebboxs       r   test_label_without_ticksr   t   s   lnnGCS----GGBIbMMH'''IN000IO&&&MM)H)))I!!/222IMe$$$MM)HrHrHJJJINE##%%44 %+-- 8>&&((+in<<<, =<< IE##%%44 %+-- 8>&&((+in<<<* =<<<<r   
black_axesc                  j   dt           j        d<   dt           j        d<   t          j        dd          } |                     d          }|                    g            |                    g            |                    g            |                    g            |                    d           d S )	Nr   zsavefig.pad_inchestightzsavefig.bbox)   r   )figsize)r   r   r;   r;   )r   r   r   )	r?   rcParamsr@   add_axesset_xticklabelsset_yticklabelsrq   rr   set_facecolorrX   s     r   test_spines_black_axesr      s     *+CL%&#*CL 
*Q
'
'
'C	l	#	#BrrMM"MM"Yr   )numpyrA   r/   matplotlib.pyplotpyplotr?   matplotlib.spinesr   matplotlib.testing.decoratorsr   r   r6   rO   rY   rk   rs   r   r   r   r   r   <module>r      sX              $ $ $ $ $ $ O O O O O O O O. . .b *+,,' ' -,'  *+,,  -, (((F F )(F( $%&&  '&+ + +: <.!!
  
  "!
  
  
 r   