
    G8c                         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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 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y)#test_spine_class.<locals>.SpineMockc                     d | _         y Nval)selfs    >/usr/lib/python3/dist-packages/matplotlib/tests/test_spines.py__init__z,test_spine_class.<locals>.SpineMock.__init__   s	    DH    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   	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=s   foo)matchzfoo, bar)r   r"   r   barzsingle list)r   r   zSpines does not support slicingr   r   )r   r   r   r   r   r   r   allvaluespytestraisesAttributeErrorr"   KeyError
ValueError)r   spines_dictspiness      r   test_spine_classr.   	   s     {+	K "k"F&>[0000;;+f----
FG%%c*;;??c!!!<<s"""::>>!!!==$$$
1Ic=V]]_====	~U	3 

	xu	- u	xz	2 0./0	z	7   	z)J	K vg	z)J	K uv   0 0     sH   HH6H!H&
H23H>HHH#&H/2H;>Ispines_axes_positionsc                     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   )r4   g      ?r   none)pltfigurenplinspacepisinadd_subplot	set_titleplotr-   r   set_positionyaxisset_ticks_positionr   xaxisr   	set_colorr   )figr   r   axs       r   test_spines_axes_positionsrG   4   s     **,C
Aqw$A	"&&)A	Aq	!BLL"#GGAqMIIOO  /HH(IIMM~.HH&IINNV$IIv&r   spines_data_positionsc                     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      )rJ   g      ?)rJ   g      zeror1   )
r7   subplotsr-   r   r@   r   r   r   set_xlimset_ylimrE   rF   s     r   test_spines_data_positionsrQ   E   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)r5   r3   )xscalexlim)rJ   r3   r1   )rJ   r5   r   Fin)axis	labelleft	directionT)rZ   r[   r   r   )r7   styleuser=   setr-   r   r@   set_linewidthr   tick_params)fig_testfig_refrF   s      r   #test_spine_nonlinear_data_positionsrd   P   s    IIMM)				BFF%gF&
 IINN,IINN  #IIOO  .NNuN=				BFF%gF&IIOO!!!$NNu5NEr   spines_capstylec                      t        j                  dd       t        j                         \  } }|j                  g        |j	                  g        y )Nr4      )	linewidth)r7   rcrM   
set_xticks
set_yticksrP   s     r   test_spines_capstylerl   e   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 spiner3   z X-Axis label not below the spine)r7   rM   subplots_adjustr?   r9   arangerA   rB   r-   r   r@   r   set_visible
set_ylabelrC   r   r   
set_xlabel	set_ticksdrawget_transformtransform_pathget_pathget_extentslabelget_positionxminymin)rE   rF   r    	spinebboxs       r   test_label_without_ticksr   n   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   )numpyr9   r'   matplotlib.pyplotpyplotr7   matplotlib.spinesr   matplotlib.testing.decoratorsr   r   r.   rG   rQ   rd   rl   r   r   r   r   <module>r      s       $ O(V *+,' -'  *+, - (F )F( $%& '+r   