a
    ëÝEbý  ã                   @   s–   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d„ Ze
dgƒdd„ ƒZe
d	gƒd
d„ ƒZe	dgd�dd„ ƒZe
dgƒdd„ ƒZdd„ ZdS )é    N)ÚSpines)Úcheck_figures_equalÚimage_comparisonc                  C   s4  G dd„ dƒ} | ƒ | ƒ | ƒ | ƒ dœ}t f i |¤Ž}|d |d u sFJ ‚|j|d u sXJ ‚|ddg  d¡ |jjdkszJ ‚|jjdksŠJ ‚|jjdu sšJ ‚|jjdu sªJ ‚|dd…  d¡ td	d
„ | ¡ D ƒƒsÖJ ‚t	j
tdd�� |j W d  ƒ n1 �s0    Y  t	j
tdd�� |d  W d  ƒ n1 �s:0    Y  t	j
tdd�� |g d¢  W d  ƒ n1 �sv0    Y  t	j
tdd�� |d  W d  ƒ n1 �s®0    Y  t	j
tdd�� |dd…  W d  ƒ n1 �sê0    Y  t	j
tdd�� |dd…  W d  ƒ n1 �s&0    Y  dS )z)Test Spines and SpinesProxy in isolation.c                   @   s   e Zd Zdd„ Zdd„ ZdS )z#test_spine_class.<locals>.SpineMockc                 S   s
   d | _ d S ©N©Úval)Úself© r	   ú\/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/matplotlib/tests/test_spines.pyÚ__init__   s    z,test_spine_class.<locals>.SpineMock.__init__c                 S   s
   || _ d S r   r   )r   r   r	   r	   r
   Úset_val   s    z+test_spine_class.<locals>.SpineMock.set_valN)Ú__name__Ú
__module__Ú__qualname__r   r   r	   r	   r	   r
   Ú	SpineMock   s   r   )ÚleftÚrightÚtopÚbottomr   r   ÚxNÚyc                 s   s   | ]}|j d kV  qdS )r   Nr   )Ú.0Úspiner	   r	   r
   Ú	<genexpr>$   ó    z#test_spine_class.<locals>.<genexpr>Ú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   ÚallÚvaluesÚpytestZraisesÚAttributeErrorr   ÚKeyErrorÚ
ValueError)r   Zspines_dictÚspinesr	   r	   r
   Útest_spine_class	   s8    ü&(,(,r%   Zspines_axes_positionsc                  C   s¢   t  ¡ } t ddtj d¡}dt |¡ }|  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ÚnpZlinspaceÚpiÚsinÚadd_subplotÚ	set_titleÚplotr$   r   Úset_positionÚyaxisÚset_ticks_positionr   Úxaxisr   Z	set_colorr   )Úfigr   r   Úaxr	   r	   r
   Útest_spines_axes_positions4   s    
r:   Zspines_data_positionsc                  C   sd   t  ¡ \} }|jj d¡ |jj d¡ |jj d¡ |jj d¡ | ddg¡ | 	ddg¡ d S )N)Údatag      ø¿)r;   g      à?)r;   g      à¿Úzeroéþÿÿÿr&   )
r,   Úsubplotsr$   r   r4   r   r   r   Zset_xlimZset_ylim©r8   r9   r	   r	   r
   Útest_spines_data_positionsE   s    r@   Zpng)Ú
extensionsc                 C   s–   t j d¡ |  ¡ }|jddd� |jj d¡ |jj d¡ |jj	 d¡ |j
dd	d
d� | ¡ }|jddd� |jj	 d¡ |j
dd	d	dd� d S )NÚdefaultÚlog)r*   r(   )ZxscaleZxlim)r;   r(   r&   )r;   r*   r   FÚin)ÚaxisÚ	labelleftÚ	directionT)rE   rF   r   r   )r,   ÚstyleZuser1   Úsetr$   r   r4   Zset_linewidthr   Ztick_params)Zfig_testZfig_refr9   r	   r	   r
   Ú#test_spine_nonlinear_data_positionsP   s    rJ   Zspines_capstylec                  C   s2   t jddd� t  ¡ \} }| g ¡ | g ¡ d S )Nr)   é   )Z	linewidth)r,   Úrcr>   Z
set_xticksZ
set_yticksr?   r	   r	   r
   Útest_spines_capstylee   s    
rM   c                  C   s,  t  ¡ \} }t jddd� | t 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 ¡ d
 |jk sêJ dƒ‚|jj}| ¡  | ¡ ¡ ¡ }|jj ¡ d |jk �s(J dƒ‚d S )Ng333333Ó?)r   r   é
   r   )Z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,   r>   Zsubplots_adjustr3   r.   Zaranger5   r6   r$   r   r4   r   Zset_visibleZ
set_ylabelr7   r   r   Z
set_xlabelZ	set_ticksZdrawZget_transformZtransform_pathÚget_pathZget_extentsÚlabelÚget_positionZxminZymin)r8   r9   r   Z	spinebboxr	   r	   r
   Útest_label_without_ticksn   s8    

ÿÿÿÿrS   )Únumpyr.   r    Zmatplotlib.pyplotZpyplotr,   Zmatplotlib.spinesr   Zmatplotlib.testing.decoratorsr   r   r%   r:   r@   rJ   rM   rS   r	   r	   r	   r
   Ú<module>   s   +





