a
    ضa                     @   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sJ |jjdu sJ |jjdu sJ |dd d td	d
 | D sJ 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 s0    Y  t	j
tdd |dd  W d   n1 s0    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	   l/Users/vegardjervell/Documents/master/model/venv/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      Zzeror&   )
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)rD   rE   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    rI   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    
rL   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 sJ 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    

rR   )Znumpyr.   r    Zmatplotlib.pyplotZpyplotr,   Zmatplotlib.spinesr   Zmatplotlib.testing.decoratorsr   r   r%   r:   r?   rI   rL   rR   r	   r	   r	   r
   <module>   s   +





