
    ^j!                     L   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
      d        Z edgd
      d        Z edgd
      d        Zd Z edgd
      d        Zd Z e       d        Z e       d        Z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    f/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/matplotlib/tests/test_table.pytest_non_squarer      s    sJII*%    ztable_zorder.pngTmpl20)remove_textstylec            	      >   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_zorderr5      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.png)r   c                  v   d} t        j                  dd|       }t        j                  d   |      }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      RdYlGn1r   offbest)r"   
rowColoursr%   r   Header)r"   r=   r#   r%   )r"   
colColoursr%   )r"   r?   r$   r%   )r&   r+   r   	colormapsfigureadd_subplotaxisr   )	dimccoloursr"   figax1ax2ax3ax4s	            r   test_label_coloursrL   5   s;   
C
Aq#AmmH%a(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                 $   d}dgt        |      z  gdz  }dgt        |      z  }t        j                  t        |      dt        |      dz   fd      \  }}t        ||      D ]+  \  }}|j	                  ||d	|
       |j                  d       - y )N
horizontalverticalopenclosedTRBLr:   r   皙?r   r8   tight)nrowsfigsizelayoutr    )	colWidthsr"   r%   edgesr;   )r(   r   subplotszipr   rC   )text_placeholderscellsr"   r\   _axsaxcells           r   test_diff_cell_tablerf   Z   s    LEE
"#a'HE
"I\\E
QE
14EgVFAs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 )NrN   r   r   r8   )visible_edgeswidthheightc              3   &   K   | ]	  \  }}|  y wN ).0rb   ss      r   	<genexpr>z"test_customcell.<locals>.<genexpr>z   s     C41aQCs   )	r   MOVETOLINETO	CLOSEPOLYr_   r   tupleget_pathiter_segments)typescodesr4   rE   re   codes         r   test_customcellr{   k   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   r8   r;   zFit Textr   z-very long long text, Longer text than defaultArU   Col1Col2r    )r"   r#   r$   r%   F   )r   r8   r   r   )r   r^   rC   r   auto_set_font_sizeset_fontsizeauto_set_column_width)	rG   rH   rI   rJ   rK   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 )Nr8   r   )r8   r   rh   )ri   )r   r8   )r   r^   r   add_cell
isinstancer   
propertiessetp)rG   rd   r   re   cell2s        r   test_table_cellsr      s    llnGC"IE>>!Q1%DdJ'''5;vq!48EE$K;% 
HHUOr   c                 :   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   r7   r      )FooBar)AdaBobr    )rW   皙?皙?g333333?)r"   r#   r$   r%   bboxrW   r   g?r   )r^   r   r	   from_extents)
fig_testfig_refr0   
col_labels
row_labelsr3   r1   	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 rm   rn   )selfthings     r   __init__z*test_table_unit.<locals>.FakeUnit.__init__   s    r   c                      y)NHellorn   )r   s    r   __repr__z*test_table_unit.<locals>.FakeUnit.__repr__   s    r   N)__name__
__module____qualname__r   r   rn   r   r   FakeUnitr      s    		r   r   c                      y)Nr   rn   )vuas      r   <lambda>z!test_table_unit.<locals>.<lambda>       r   )side_effectc                      y rm   rn   )r   r   s     r   r   z!test_table_unit.<locals>.<lambda>   r   r   c                 *    t        j                         S rm   )munitsAxisInfo)r   r   s     r   r   z!test_table_unit.<locals>.<lambda>   s    FOO<M r   yellow*   i     r8   Tr   )r   ConversionInterfacer   convertdefault_unitsaxisinforegistrydatetimer^   r   canvasdrawassert_not_calledpopget_converter)r   r   r   fake_convertorr0   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)r}   rU   C)r      i,  )LetterNumberr    )r%   r   r8   )
	DataFramer   r^   r   	enumerateiterrowscolumnsvaluesget_textstr)pdr0   dfrG   rd   r   r   indexr3   rE   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   c                     ddgddgg} t        j                         \  }}d}|j                  | d|      }|d   j                         }||k(  sJ d	| d
|        |d   j                         }||k(  sJ d	| d
|        y )Nr   r8   r   r      top)r"   r%   fontsizerh   zActual:z,got:)r8   r8   )r   r^   r   get_fontsize)	tableDatarG   rd   test_fontsizer4   cell_fontsizes         r   test_table_fontsizer     s    qC8$IllnGCM
)GAfI**,MM)XW]O5+XX)fI**,MM)XW]O5+XX)r   ) r   unittest.mockr   numpyr&   matplotlib.pyplotpyplotr   matplotlib.pathr   matplotlib.tabler   r   matplotlib.testing.decoratorsr   r   matplotlib.transformsr	   matplotlib.unitsunitsr   r   r5   rL   rf   r{   r   r   r   r   r   r   rn   r   r   <module>r      s          . O & !& %&DH I@ %&g6! 7!H 01A B & *+7;3 <3l$  4 7 7<T"	Yr   