o
    j!                     @   s  d dl Z d dlmZ d dlZd dlm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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edgdd!d" Zd#d$ Zd%d& ZdS )'    N)Mock)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   \/var/www/html/Deteccion_Ine/venv/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linspacepir   Zplot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   offbest)r   
rowColoursr   r   Header)r   r/   r   r   )r   
colColoursr   )r   r1   r   r   )	r   r#   r   cmZRdYlGnZfigureZadd_subplotaxisr   )	dimcZcoloursr   figax1ax2ax3ax4r   r   r   test_label_colours5   s>   




r;   ztable_cell_manipulation.pngZmpl20)stylec                 C   s~   d}dgt | gd }dgt | }tjt |dt |d fdd\}}t||D ]\}}|j||d	|d
 |d q*d S )N
horizontalverticalopenclosedTRBLr,   r   皙?r   r+   Ztight)ZnrowsZfigsizeZlayoutr   )	colWidthsr   r   edgesr-   )r    r   subplotszipr   r3   )Ztext_placeholderscellsr   rG   _Zaxsaxcellr   r   r   test_diff_cell_tableZ   s   $rO   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sJ qad S )Nr=   r   r   r+   )visible_edgeswidthheightc                 s   s    | ]\}}|V  qd S Nr   )r   rL   sr   r   r   	<genexpr>z   s    z"test_customcell.<locals>.<genexpr>)	r   ZMOVETOZLINETOZ	CLOSEPOLYrJ   r   tupleget_pathiter_segments)typescodesr(   r5   rN   coder   r   r   test_customcellk   s   r]   ztable_auto_column.pngc            	      C   sb  t dd\} \}}}}|d |jddgddggddgd	d
gdd}|d |d |g d |d |jddgddggddgd	d
g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 |jddgddggddgd	d
gdd}|d |d d S )Nr   r+   r-   zFit Textr   z-very long long text, Longer text than defaultArD   ZCol1ZCol2r   )r   r   r   r   F   )r   r+   r`   r   )r   rI   r3   r   Zauto_set_font_sizeZset_fontsizeZauto_set_column_width)	r6   r7   r8   r9   r:   Ztb1Ztb2Ztb3Ztb4r   r   r   test_auto_column~   sd   














ra   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   rP   )rQ   )r   r+   )r   rI   r   add_cell
isinstancer   
propertiesZsetp)r6   rM   r   rN   Zcell2r   r   r   test_table_cells   s   re   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)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   )rF   皙?皙?g333333?)r   r   r   r   ZbboxrF   ri   g?rj   )rI   r   r   Zfrom_extents)fig_testfig_refr&   Z
col_labelsZ
row_labelsZ	cell_textZax_listZax_bboxr   r   r   test_table_bbox   s(   
rm   c                 C   s   G dd d}t  }tdd d|_tdd d|_tdd d|_|t j|< |d|d	g|td
dd|dgg}|  	| | 	ddgddgg | j
  |j  t j| t j|riJ d S )Nc                   @   s   e Zd Zdd Zdd ZdS )z!test_table_unit.<locals>.FakeUnitc                 S      d S rT   r   )selfthingr   r   r   __init__      z*test_table_unit.<locals>.FakeUnit.__init__c                 S      dS )NHellor   )ro   r   r   r   __repr__   rr   z*test_table_unit.<locals>.FakeUnit.__repr__N)__name__
__module____qualname__rq   ru   r   r   r   r   FakeUnit   s    ry   c                 S   rs   )Nr   r   )vuar   r   r   <lambda>       z!test_table_unit.<locals>.<lambda>)Zside_effectc                 S   rn   rT   r   )rz   r|   r   r   r   r}      r~   c                 S   s   t  S rT   )munitsZAxisInfo)r{   r|   r   r   r   r}      s    yellow*   i     r+   Trt   )r   ZConversionInterfacer   convertZdefault_unitsZaxisinforegistrydatetimerI   r   ZcanvasZdrawZassert_not_calledpopZget_converter)rk   rl   ry   Zfake_convertorr&   r   r   r   test_table_unit   s   


r   c                 C   s   g dg dd}|  |}t \}}|j|dd}t| D ]/\}\}}t|dkr/|jn|jD ]\}	}
||dkr>|n|d |	f   t	|
ksOJ q3q!d S )N)r^   rD   C)r      i,  )ZLetterNumberr   )r   r   r+   )
Z	DataFramer   rI   r   	enumerateZiterrowscolumnsvaluesZget_textstr)pdr&   Zdfr6   rM   r   r
   indexr'   r5   colr   r   r   test_table_dataframe  s   
 2r   c                  C   s   ddgddgg} t  \}}d}|j| d|d}|d  }||ks,J d	| d
| |d  }||ks@J d	| d
| d S )Nr|   r+   r	   r      top)r   r   ZfontsizerP   zActual:z,got:)r+   r+   )r   rI   r   Zget_fontsize)Z	tableDatar6   rM   Ztest_fontsizer(   Zcell_fontsizer   r   r   test_table_fontsize  s    r   ) r   Zunittest.mockr   numpyr   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.pathr   Zmatplotlib.tabler   r   Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.transformsr   Zmatplotlib.unitsZunitsr   r   r)   r;   rO   r]   ra   re   rm   r   r   r   r   r   r   r   <module>   s4    
 
$

6



