o
    ä¸Gf%  ã                   @   sÜ   d dl Zd dlZd dlmZ d dlZd dlm	Z	 d dl
mZmZ d dlmZmZ d dlmZ dd„ Zedgd	d
dd„ ƒZedgƒdd„ ƒZedgd	d
dd„ ƒZdd„ Zedgƒdd„ ƒZdd„ Zedgddd„ ƒZdS )é    N)ÚPath)Ú
CustomCellÚTable)Úimage_comparisonÚcheck_figures_equal)ÚBboxc                  C   s   ddg} t j| d d S )NÚbÚr)ZcellColours)ÚpltÚtable)Z
cellcolors© r   ú;lib/python3.10/site-packages/matplotlib/tests/test_table.pyÚtest_non_square   s   r   ztable_zorder.pngT)Zremove_textc                  C   sÀ   ddgddgg} d}dd„ dD ƒ}g }t  t|ƒ¡}t| ƒD ]}||7 }| d	d„ |D ƒ¡ qt  d
dt j d¡}tj|t  	|¡ddd tj
|||ddd tj
|||ddd t g ¡ d S )NiR iØ¨ ivã  iÓÐ )ZFreezeZWindc                 S   s   g | ]}d | ‘qS )z%d yearr   ©Ú.0Úxr   r   r   Ú
<listcomp>   s    ztest_zorder.<locals>.<listcomp>)éd   é2   c                 S   s   g | ]}d |d  ‘qS )z%1.1fg     @@r   r   r   r   r   r      s    r   é   r   é   )ZlwÚzorderÚcenteréþÿÿÿ)ÚcellTextÚ	rowLabelsÚ	colLabelsÚlocr   zupper center)ÚnpZzerosÚlenÚreversedÚappendÚlinspaceZpir
   ZplotZcosr   Zyticks)Údatar   r   r   ZyoffÚrowÚtr   r   r   Útest_zorder   s2   ÿüür&   ztable_labels.pngc            	      C   sê   d} t  dd| ¡}tj |¡}dg|  g|  }t ¡ }| ddd¡}| d¡ |j||dd | ddd	¡}| d¡ |j||d
g|  dd | ddd¡}| d¡ |j||dd | ddd¡}| d¡ |j||d
g|  dd d S )Né   r   é   Ú1r   ÚoffZbest)r   Ú
rowColoursr   r   ZHeader)r   r+   r   r   )r   Ú
colColoursr   )r   r,   r   r   )	r   r"   r
   ÚcmZRdYlGnÚfigureÚadd_subplotÚaxisr   )	ZdimÚcZcoloursr   ÚfigÚax1Úax2Úax3Úax4r   r   r   Útest_label_colours3   s>   
þ
ý
þ

ýr7   ztable_cell_manipulation.pngc                  C   s„   d} dgt | ƒ gd }dgt | ƒ }tjt | ƒdt | ƒd fd\}}t|| ƒD ]\}}|j||d|d	 | d
¡ q)t ¡  d S )N©Z
horizontalZverticalÚopenÚclosedÚTÚRÚBÚLr)   r   çš™™™™™¹?r   r(   )ZnrowsZfigsizer   )Ú	colWidthsr   r   Zedgesr*   )r   r
   ÚsubplotsÚzipr   r0   Ztight_layout)Zcellsr   r@   Ú_ZaxsÚaxÚcellr   r   r   Útest_diff_cell_tableX   s   "ürF   c                  C   s  d} t jt jt jt jt jft jt jt jt jt jft jt jt jt jt jft jt jt jt jt jft jt jt jt jt jft jt jt jt jt jft jt jt jt jt jft jt jt jt jt jff}t| |ƒD ]\}}td|ddd}tdd„ | ¡  ¡ D ƒƒ}||ks€J ‚qad S )Nr8   ©r   r   r(   )Úvisible_edgesÚwidthZheightc                 s   s    | ]\}}|V  qd S )Nr   )r   rC   Úsr   r   r   Ú	<genexpr>y   s   € z"test_customcell.<locals>.<genexpr>)	r   ZMOVETOZLINETOZ	CLOSEPOLYrB   r   ÚtupleZget_pathZiter_segments)ÚtypesZcodesr%   r1   rE   Úcoder   r   r   Útest_customcellj   s   øýrO   ztable_auto_column.pngc            	      C   s  t  ¡ } |  ddd¡}| d¡ |jddgddggddgd	d
gdd}| d¡ | d¡ | g d¢¡ |  ddd¡}| d¡ |jddgddggddgd	d
gdd}| d¡ | d¡ | d¡ |  ddd¡}| d¡ |jddgddggddgd	d
gdd}| d¡ | d¡ | d¡ | d¡ | d¡ |  ddd¡}| d¡ |jddgddggddgd	d
gdd}| d¡ | d¡ tj	t
jdd | d¡ W d   ƒ n1 sÛw   Y  tj	t
jdd | dg¡ W d   ƒ d S 1 súw   Y  d S )Nr   r(   r*   zFit Textr   z-very long long text, Longer text than defaultÚAr=   ZCol1ZCol2r   )r   r   r   r   Fé   )éÿÿÿÿr   r(   r'   rR   r   z('col' must be an int or sequence of ints)Úmatchz-101)r
   r.   r/   r0   r   Zauto_set_font_sizeZset_fontsizeZauto_set_column_widthÚpytestZwarnsÚmplZMatplotlibDeprecationWarning)	r2   r3   Ztb1r4   Ztb2r5   Ztb3r6   Ztb4r   r   r   Útest_auto_column}   s€   
ÿû


ÿû



ÿû





ÿû

ÿþÿ"þrV   c                  C   s€   t  ¡ \} }t|ƒ}| dddd¡}t|tƒsJ ‚||d u s!J ‚tdddd d}||d< |d |u s5J ‚| ¡  t  |¡ d S )Nr(   r   )r(   r   rG   )rH   )r   r(   )r
   rA   r   Zadd_cellÚ
isinstancer   Z
propertiesZsetp)r2   rD   r   rE   Zcell2r   r   r   Útest_table_cells½   s   rX   Zpng)Ú
extensionsc                 C   sr   ddgddgg}d}d}dd„ |D ƒ}|   ¡ }|j|||d	g d
¢d |  ¡ }|j|||d	t dddd¡d d S )Nr   r'   r   é   )ZFooZBar)ZAdaZBobc                 S   s   g | ]	}d d„ |D ƒ‘qS )c                 S   s   g | ]}|› ‘qS r   r   r   r   r   r   r   ×   s    z.test_table_bbox.<locals>.<listcomp>.<listcomp>r   )r   r$   r   r   r   r   ×   s    z#test_table_bbox.<locals>.<listcomp>r   )r?   çš™™™™™É?çš™™™™™é?g333333ã?)r   r   r   r   Zbboxr?   r[   gÍÌÌÌÌÌì?r\   )rA   r   r   Zfrom_extents)Zfig_testZfig_refr#   Z
col_labelsZ
row_labelsZ	cell_textZax_listZax_bboxr   r   r   Útest_table_bboxÏ   s(   ÿü
ür]   )Znumpyr   rT   Zmatplotlib.pyplotZpyplotr
   Z
matplotlibrU   Zmatplotlib.pathr   Zmatplotlib.tabler   r   Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.transformsr   r   r&   r7   rF   rO   rV   rX   r]   r   r   r   r   Ú<module>   s*    
 
$

?
