
    zYHh-                         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y)    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   j                  d       |j                  j                  dk(  sJ |j                  j                  dk(  sJ |j
                  j                  J |j                  j                  J |dd j                  d       t        d	 |j                         D              sJ |dd j                  d
       t        d |j                         D              sJ t        j                  t        d      5  |j                   ddd       t        j                  t        d      5  |d    ddd       t        j                  t        d      5  |g d    ddd       t        j                  t        d      5  |d    ddd       t        j                  t        d      5  |dd  ddd       t        j                  t        d      5  |dd  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   xY w# 1 sw Y   cxY w# 1 sw Y   yxY w)z)Test Spines and SpinesProxy in isolation.c                       e Zd Zd Zd Zd Zy)#test_spine_class.<locals>.SpineMockc                     d | _         y Nval)selfs    U/var/www/html/planif/env/lib/python3.12/site-packages/matplotlib/tests/test_spines.py__init__z,test_spine_class.<locals>.SpineMock.__init__   s	    DH    c                 8    t        |       j                  |       y r
   )varsupdate)r   kwargss     r   setz'test_spine_class.<locals>.SpineMock.set   s    Jf%r   c                     || _         y r
   r   )r   r   s     r   set_valz+test_spine_class.<locals>.SpineMock.set_val   s	    DHr   N)__name__
__module____qualname__r   r   r    r   r   	SpineMockr      s    		&	r   r   )leftrighttopbottomr   r   xNyc              3   :   K   | ]  }|j                   d k(    yw)r"   Nr   .0spines     r   	<genexpr>z#test_spine_class.<locals>.<genexpr>'   s     =EuyyC=   barfooc              3   :   K   | ]  }|j                   d k(    yw)r)   Nr*   r$   s     r   r'   z#test_spine_class.<locals>.<genexpr>*   s     ?euyyE!?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_classr7   	   s9     {+	K "k"F&>[0000;;+f----
FG%%c*;;??c!!!<<s"""::>>!!!==$$$
1Ic=V]]_====
1IMMeM?v}}????	~U	3 

	xu	- u	xz	2 0./0	z	7   	z)J	K vg	z)J	K uv   0 0     sH   H9I-III)*I59IIII&)I25I>zspines_axes_positions.pngc                     t        j                         } t        j                  ddt        j                  z  d      }dt        j
                  |      z  }| j                  ddd      }|j                  d       |j                  ||       |j                  j                  j                  d       |j                  j                  d       |j                  j                  j                  d       |j                  j                  d	       |j                  j                   j#                  d
       |j                  j$                  j#                  d
       y )Nr      d      zcentered spines)axes皙?r   )r<   g      ?r   none)pltfigurenplinspacepisinadd_subplot	set_titleplotr6   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"#GGAqMIIOO  /HH(IIMM~.HH&IINNV$IIv&r   zspines_data_positions.pngc                     t        j                         \  } }|j                  j                  j	                  d       |j                  j
                  j	                  d       |j                  j                  j	                  d       |j                  j                  j	                  d       |j                  ddg       |j                  ddg       y )N)datag      )rQ   g      ?)rQ   g      zeror9   )
r?   subplotsr6   r   rH   r   r   r    set_xlimset_ylimrM   rN   s     r   test_spines_data_positionsrX   K   s    llnGCIINN/IIMM}-IIOO  0II!!&)KKQKKQr   png)
extensionsc                 H   t         j                  j                  d       | j                         }|j	                  dd       |j
                  j                  j                  d       |j
                  j                  j                  d       |j
                  j                  j                  d       |j                  dd	d
       |j                         }|j	                  dd       |j
                  j                  j                  d       |j                  dd	d	d       y )Ndefaultlog)r=   r;   )xscalexlim)rQ   r;   r9   )rQ   r=   r"   Fin)axis	labelleft	directionT)ra   rb   r   r   )r?   styleuserE   r   r6   r   rH   set_linewidthr   tick_params)fig_testfig_refrN   s      r   #test_spine_nonlinear_data_positionsrj   V   s    IIMM)				BFF%gF&
 IINN,IINN  #IIOO  .NNuN=				BFF%gF&IIOO!!!$NNu5NEr   zspines_capstyle.pngc                      t        j                  dd       t        j                         \  } }|j                  g        |j	                  g        y )Nr<      )	linewidth)r?   rcrT   
set_xticks
set_yticksrW   s     r   test_spines_capstylerq   k   s9     FF6R llnGCMM"MM"r   c                  D   t        j                         \  } }t        j                  dd       |j                  t	        j
                  d             |j                  j                  d       |j                  j                  j                  d       |j                  j                  j                  d       |j                  d       |j                  j                  d       |j                  j                  j                  d       |j                  j                   j                  d       |j#                  d	       |j                  j%                  g        |j                  j%                  g        t        j&                          |j                  j                  }|j)                         j+                  |j-                               j/                         }|j                  j0                  j3                         d
   |j4                  k  sJ d       |j                  j                  }|j)                         j+                  |j-                               j/                         }|j                  j0                  j3                         d   |j6                  k  sJ d       y )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?   rT   subplots_adjustrG   rA   arangerI   rJ   r6   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   llnGCS-GGBIIbMHH'IINN0IIOO&MM)HH)II!!/2IIMMe$MM)HHrHHrHHJIINNE##%44%+- 88>>&&(+inn< -,-< IIE##%44%+- 88>>&&(+inn< +*+<r   zblack_axes.pngc                  J   dt         j                  d<   dt         j                  d<   t        j                  dd      } | j                  d      }|j	                  g        |j                  g        |j                  g        |j                  g        |j                  d       y )	Nr   zsavefig.pad_inchestightzsavefig.bbox)   r   )figsize)r   r   r;   r;   )r   r   r   )	r?   rcParamsr@   add_axesset_xticklabelsset_yticklabelsro   rp   set_facecolorrW   s     r   test_spines_black_axesr      s     *+CLL%&#*CLL 
**Q
'C	l	#BrrMM"MM"Yr   )numpyrA   r0   matplotlib.pyplotpyplotr?   matplotlib.spinesr   matplotlib.testing.decoratorsr   r   r7   rO   rX   rj   rq   r   r   r   r   r   <module>r      s       $ O.b ./0' 1'  ./0 1 (F )F( ()* ++: #$%
  &
 r   