o
    h!                     @   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)cellColours)plttable)
cellcolors r   o/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/matplotlib/tests/test_table.pytest_non_square   s   r   ztable_zorder.pngT)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 )Freeze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      )lwzordercenter)cellText	rowLabels	colLabelslocr   zupper center)npzeroslenreversedappendlinspacepir   plotcosr   yticks)datar#   r"   r!   yoffrowtr   r   r   test_zorder   s2   r3   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!   r9   r"   r$   )r!   
colColoursr$   )r!   r;   r#   r$   )	r%   r*   r   cmRdYlGnfigureadd_subplotaxisr   )	dimccoloursr!   figax1ax2ax3ax4r   r   r   test_label_colours5   s>   




rI   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
horizontalverticalopenclosedTRBLr6   r   皙?r   r5   )nrowsfigsizer   )	colWidthsr!   r$   edgesr7   )r'   r   subplotszipr   r@   tight_layout)cellsr!   rV   _axsaxcellr   r   r   test_diff_cell_tableZ   s   "r`   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 )NrJ   r   r   r5   )visible_edgeswidthheightc                 s   s    | ]\}}|V  qd S Nr   )r   r\   sr   r   r   	<genexpr>{   s    z"test_customcell.<locals>.<genexpr>)	r   MOVETOLINETO	CLOSEPOLYrY   r   tupleget_pathiter_segments)typescodesr2   rB   r_   coder   r   r   test_customcelll   s   rq   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   r5   r7   zFit Textr   z-very long long text, Longer text than defaultArQ   Col1Col2r   )r!   r"   r#   r$   F   )r   r5   rv   r   )r   rX   r@   r   auto_set_font_sizeset_fontsizeauto_set_column_width)	rD   rE   rF   rG   rH   tb1tb2tb3tb4r   r   r   test_auto_column   sd   














r~   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 )Nr5   r   )r5   r   ra   )rb   )r   r5   )r   rX   r   add_cell
isinstancer   
propertiessetp)rD   r^   r   r_   cell2r   r   r   test_table_cells   s   r   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   r4   r      )FooBar)Ada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   r1   r   r   r   r      s    z#test_table_bbox.<locals>.<listcomp>r   )rS   皙?皙?g333333?)r!   r"   r#   r$   bboxrS   r   g?r   )rX   r   r   from_extents)fig_testfig_refr/   
col_labels
row_labels	cell_textax_listax_bboxr   r   r   test_table_bbox   s(   
r   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 re   r   )selfthingr   r   r   __init__      z*test_table_unit.<locals>.FakeUnit.__init__c                 S      dS )NHellor   )r   r   r   r   __repr__   r   z*test_table_unit.<locals>.FakeUnit.__repr__N)__name__
__module____qualname__r   r   r   r   r   r   FakeUnit   s    r   c                 S   r   )Nr   r   )vuar   r   r   <lambda>       z!test_table_unit.<locals>.<lambda>)side_effectc                 S   r   re   r   )r   r   r   r   r   r      r   c                 S   s   t  S re   )munitsAxisInfo)r   r   r   r   r   r      s    yellow*   i     r5   Tr   )r   ConversionInterfacer   convertdefault_unitsaxisinforegistrydatetimerX   r   canvasdrawassert_not_calledpopget_converter)r   r   r   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)rr   rQ   C)r      i,  )LetterNumberr   )r$   r   r5   )
	DataFramer   rX   r   	enumerateiterrowscolumnsvaluesget_textstr)pdr/   dfrD   r^   r   r
   indexr1   rB   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   r5   r	   r      top)r!   r$   fontsizera   zActual:z,got:)r5   r5   )r   rX   r   get_fontsize)	tableDatarD   r^   test_fontsizer2   cell_fontsizer   r   r   test_table_fontsize  s    r   ) r   unittest.mockr   numpyr%   matplotlib.pyplotpyplotr   matplotlib.pathr   matplotlib.tabler   r   matplotlib.testing.decoratorsr   r   matplotlib.transformsr   matplotlib.unitsunitsr   r   r3   rI   r`   rq   r~   r   r   r   r   r   r   r   r   r   <module>   s4    
 
$

6



