
    g                     H   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 Z edgd	
      d        Z edg      d        Z edgd	
      d        Zd Z edg      d        Zd Z edg      d        Z edg      d        Zd Zy)    N)Mock)Path)
CustomCellTable)image_comparisoncheck_figures_equal)Bboxc                  8    ddg} t        j                  |        y )Nbr)cellColours)plttable)
cellcolorss    X/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/matplotlib/tests/test_table.pytest_non_squarer      s    sJII*%    ztable_zorder.pngT)remove_textc            	      >   ddgddgg} d}dD cg c]  }d|z  	 }}g }t        j                  t        |            }t        |       D ],  }||z  }|j	                  |D cg c]
  }d|d	z  z   c}       . t        j
                  d
dt         j                  z  d      }t        j                  |t        j                  |      dd       t        j                  |||dd       t        j                  |||dd       t        j                  g        y c c}w c c}w )NiR iب iv  i )FreezeWind)d   2   z%d yearz%1.1fg     @@r      r      )lwzordercenter)cellText	rowLabels	colLabelslocr   zupper center)npzeroslenreversedappendlinspacepir   plotcosr   yticks)datar"   xr!   r    yoffrowts           r   test_zorderr3      s   FOFOD #I(121Q2I2H88C	N#D~ >t<!AfH-<=> 	Aqw$AHHQq	a*IIx!!	 IIx!! 	 JJrN1 3 =s   DD
ztable_labels.pngc                     d} t        j                  dd|       }t        j                  j	                  |      }dg| z  g| z  }t        j
                         }|j                  ddd      }|j                  d       |j                  ||d       |j                  ddd	      }|j                  d       |j                  ||d
g| z  d       |j                  ddd      }|j                  d       |j                  ||d       |j                  ddd      }|j                  d       |j                  ||d
g| z  d       y )N   r      1r   offbest)r    
rowColoursr#   r   Header)r    r:   r!   r#   )r    
colColoursr#   )r    r<   r"   r#   )	r$   r)   r   cmRdYlGnfigureadd_subplotaxisr   )	dimccoloursr    figax1ax2ax3ax4s	            r   test_label_coloursrJ   5   s:   
C
Aq#AffmmAG}s"H
**,C
//!Q
"CHHUOIIx    //!Q
"CHHUOIIx !
S(  
 //!Q
"CHHUOIIx    //!Q
"CHHUOIIx !
S(  r   ztable_cell_manipulation.pngc                  J   d} dgt        |       z  gdz  }dgt        |       z  }t        j                  t        |       dt        |       dz   f      \  }}t        ||       D ]+  \  }}|j	                  ||d|	       |j                  d
       - t        j                          y )N
horizontalverticalopenclosedTRBLr7   r   皙?r   r6   )nrowsfigsizer   )	colWidthsr    r#   edgesr8   )r&   r   subplotszipr   rA   tight_layout)cellsr    rX   _axsaxcells          r   test_diff_cell_tablerb   Z   s    LEE
"#a'HE
"I\\E
QE
14EFFAsUO D
#!	 	 	 	 r   c                  |   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 ]I  \  }}t        d|dd      }t        d |j                         j                         D              }||k(  rIJ  y )NrL   r   r   r6   )visible_edgeswidthheightc              3   &   K   | ]	  \  }}|  y wN ).0r^   ss      r   	<genexpr>z"test_customcell.<locals>.<genexpr>{   s     C41aQCs   )	r   MOVETOLINETO	CLOSEPOLYr[   r   tupleget_pathiter_segments)typescodesr2   rC   ra   codes         r   test_customcellrw   l   su   LE	dkk4;;T[[I	dkk4;;T[[I	dkk4;;T[[I	dkk4;;T^^L	dkk4;;T[[I	dkk4;;T[[I	dkk4;;T[[I	dkk4;;T[[I	
E E5! 1&1EC4==?#@#@#BCCDyyr   ztable_auto_column.pngc                  ~   t        j                  dd      \  } \  }}}}|j                  d       |j                  ddgddggddgd	d
gd      }|j	                  d       |j                  d       |j                  g d       |j                  d       |j                  ddgddggddgd	d
gd      }|j	                  d       |j                  d       |j                  d       |j                  d       |j                  ddgddggddgd	d
gd      }|j	                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  d       |j                  ddgddggddgd	d
gd      }|j	                  d       |j                  d       y )Nr   r6   r8   zFit Textr   z-very long long text, Longer text than defaultArS   Col1Col2r   )r    r!   r"   r#   F   )r   r6   r}   r   )r   rZ   rA   r   auto_set_font_sizeset_fontsizeauto_set_column_width)	rE   rF   rG   rH   rI   tb1tb2tb3tb4s	            r   test_auto_columnr      s    #Q 2C	#sC HHUO
))q/BAFH*6"  C 5!Rj) HHUO
))q/BAFH*6"  C 5!Rj) HHUO
))q/BAFH*6"  C 5!Rb!a a  HHUO
))q/BAFH*6"  C 5!Rr   c                  *   t        j                         \  } }t        |      }|j                  dddd      }t	        |t
              sJ ||d   u sJ t        dddd       }||d<   |d   |u sJ |j                          t        j                  |       y )Nr6   r   )r6   r   rd   )re   )r   r6   )r   rZ   r   add_cell
isinstancer   
propertiessetp)rE   r`   r   ra   cell2s        r   test_table_cellsr      s    llnGC"IE>>!Q1%DdJ'''5;vq!48EE$K;% 
HHUOr   png)
extensionsc                 :   ddgddgg}d}d}|D cg c]  }|D cg c]  }|  c} }}}| j                         }|j                  |||dg d	       |j                         }	|	j                  |||dt        j                  d
ddd      	       y c c}w c c}}w )Nr   r5   r      )FooBar)AdaBobr   )rU   皙?皙?g333333?)r    r!   r"   r#   bboxrU   r   g?r   )rZ   r   r	   from_extents)
fig_testfig_refr.   
col_labels
row_labelsr1   r/   	cell_textax_listax_bboxs
             r   test_table_bboxr      s    FFD  JJ2673#&QQC&&7I7!GMM9&&+	    GMM9&&((c3<	   '7s   	B
BBBc                     G d d      }t        j                         }t        d       |_        t        d       |_        t        d       |_        |t         j                  |<    |d       |d      g |t        j                  d	d
d             |d      gg}| j                         j                  |       |j                         j                  ddgddgg       | j                  j                          |j                  j                          t         j                  j                  |       t         j                  j                  |      rJ y )Nc                       e Zd Zd Zd Zy)!test_table_unit.<locals>.FakeUnitc                      y ri   rj   )selfthings     r   __init__z*test_table_unit.<locals>.FakeUnit.__init__   s    r   c                      y)NHellorj   )r   s    r   __repr__z*test_table_unit.<locals>.FakeUnit.__repr__   s    r   N)__name__
__module____qualname__r   r   rj   r   r   FakeUnitr      s    		r   r   c                      y)Nr   rj   )vuas      r   <lambda>z!test_table_unit.<locals>.<lambda>       r   )side_effectc                      y ri   rj   )r   r   s     r   r   z!test_table_unit.<locals>.<lambda>   r   r   c                 *    t        j                         S ri   )munitsAxisInfo)r   r   s     r   r   z!test_table_unit.<locals>.<lambda>   s    FOO<M r   yellow*   i     r6   Tr   )r   ConversionInterfacer   convertdefault_unitsaxisinforegistrydatetimerZ   r   canvasdrawassert_not_calledpopget_converter)r   r   r   fake_convertorr.   s        r   test_table_unitr      s     //1N!.?@N#'4E#FN "/MNN .FOOHh".h''a34htnEGD d#w07G2DEFOO,,.
OO!,,X6666r   c                    g dg dd}| j                  |      }t        j                         \  }}|j                  |d      }t	        |j                               D ]q  \  }\  }}t	        |dk(  r|j                  n|j                        D ]@  \  }	}
||dk(  r|n|dz   |	f   j                         j                         t        |
      k(  r@J  s y )N)ry   rS   C)r      i,  )LetterNumberr   )r#   r   r6   )
	DataFramer   rZ   r   	enumerateiterrowscolumnsvaluesget_textstr)pdr.   dfrE   r`   r   r   indexr1   rC   cols              r   test_table_dataframer     s     "!D
 
d	BllnGCHHRXH&E$R[[]3 T<E3a1f

#**E 	TFAsa1f!A#q01::<EEG3s8SSS	TTr   )r   unittest.mockr   numpyr$   matplotlib.pyplotpyplotr   matplotlib.pathr   matplotlib.tabler   r   matplotlib.testing.decoratorsr   r   matplotlib.transformsr	   matplotlib.unitsunitsr   r   r3   rJ   rb   rw   r   r   r   r   r   rj   r   r   <module>r      s          . O & !& %&D9 :@ %&'! (!H 01tD E"& *+,3 -3l$ ( )4 (7 )7<Tr   