
    'YHh$                         d dl mZ d dlmZmZ d dlmZ d dlmZ d dlZd dlm	Z	  ej                         Z ej                         Z G d d      Zy)	    )assert_equal)SimpleTabledefault_txt_fmt)default_latex_fmt)default_html_fmtN)OLSc                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestSimpleTablec                     d}ddgddgg}d}d}t        |||t              }d	|j                         z  }t        |t	        |             y )
Nz
=====================
      header1 header2
---------------------
stub1 1.30312 2.73999
stub2 1.95038 2.65765
---------------------
a7l[?g@\4?g B@stub1stub2header1header2txt_fmt
%s
r   r   as_textr   strselfdesired	test1data
test1stubstest1headeractuals         [/var/www/html/planif/env/lib/python3.12/site-packages/statsmodels/iolib/tests/test_table.pytest_simple_table_1z#TestSimpleTable.test_simple_table_1   s[     w''(:;	'
,YZ%46FNN,,Wc&k*    c                    d}ddgddgg}ddgdd	gg}d
dg}ddg}ddg}ddg}t        |||t              }t        |||t              }	|j                  |	       d|j                         z  }
t	        |t        |
             y )Nau  
=============================================================
           header s1 header d1            header s2 header d2
-------------------------------------------------------------
stub R1 C1  10.30312  10.73999 stub R1 C2  50.95038  50.65765
stub R2 C1  90.30312  90.73999 stub R2 C2  40.95038  40.65765
-------------------------------------------------------------
m2$@"z%@ްmQfV@~W[V@bEyI@q-TI@bEyD@q-TD@
stub R1 C1
stub R2 C1
stub R1 C2
stub R2 C2	header s1	header d1	header s2	header d2r   r   )r   r   extend_rightr   r   r   r   r   data1data2stubs1stubs2r   r   actual1actual2r    s              r!   test_simple_table_2z#TestSimpleTable.test_simple_table_2   s     H%(';<H%(';<--,,eWfoNeWfoNW%GOO--Wc&k*r#   c                    d}ddgddgg}ddgdd	gg}d
dg}ddg}ddg}ddg}t        |||t              }t        |||t              }	|j                  |	       d|j                         z  }
t	        |t        |
             y )Na7  
==============================
           header s1 header d1
------------------------------
stub R1 C1  10.30312  10.73999
stub R2 C1  90.30312  90.73999
           header s2 header d2
------------------------------
stub R1 C2  50.95038  50.65765
stub R2 C2  40.95038  40.65765
------------------------------
r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r   r   )r   r   extendr   r   r   r6   s              r!   test_simple_table_3z#TestSimpleTable.test_simple_table_35   s     H%(';<H%(';<--,,eWfoNeWfoNwGOO--Wc&k*r#   c                 d   t        d&i dddgdddddd	d
ddddddddddddddddddddddd}t        j                         }t        j                         }d}d}||g}ddg}||g}d }	d!}
t	        ||
|	|||"      fd#}fd$}fd%} ||         ||         ||        y )'N	data_fmtsz%3.2fz%d
empty_cell 	colwidths   colsepz * row_prez* row_postz *table_dec_above*table_dec_belowheader_dec_below
header_fmtz%sstub_fmttitle_alignrheader_aligndata_alignsstubs_alignlfmttxtg           gDl
@r   r   )r   ltx_fmthtml_fmtc                 H    d}dj                         z  }t        ||       y )Nz
*****************************
*       * header1 * header2 *
*****************************
* stub1 *    0.00 *       1 *
* stub2 *    2.00 *       3 *
*****************************
r   )r   r   r   r   r    tbls      r!   test_txt_fmt1z:TestSimpleTable.test_simple_table_4.<locals>.test_txt_fmt1n   s(    G -F )r#   c                     d}dj                  d      z  }t        ||       d|dd z  }dj                         z  }t        ||       y )Nz
\begin{tabular}{lcc}
\toprule
               & \textbf{header1} & \textbf{header2}  \\
\midrule
\textbf{stub1} &       0.0        &        1          \\
\textbf{stub2} &        2         &      3.333        \\
\bottomrule
\end{tabular}
r   Fcenterz 
\begin{center}
%s
\end{center}
rF   as_latex_tabularr   )r   r   r    desired_centeredactual_centeredr]   s        r!   test_ltx_fmt1z:TestSimpleTable.test_simple_table_4.<locals>.test_ltx_fmt1}   sh    	G  4 4E 4 BBF )  am	 
 ')=)=)??O*:;r#   c                 H    d}dj                         z  }t        ||       y )Nz
<table class="simpletable">
<tr>
    <td></td>    <th>header1</th> <th>header2</th>
</tr>
<tr>
  <th>stub1</th>   <td>0.0</td>      <td>1</td>   
</tr>
<tr>
  <th>stub2</th>    <td>2</td>     <td>3.333</td> 
</tr>
</table>
r   )as_htmlr   r\   s      r!   test_html_fmt1z;TestSimpleTable.test_simple_table_4.<locals>.test_html_fmt1   s&    G -F)r#    )dictr   copyr   r   )r   txt_fmt1ltx_fmt1	html_fmt1	cell0data	cell1datarow0datarow1data
table1datar   r   r^   rg   rj   r]   s                 @r!   test_simple_table_4z#TestSimpleTable.test_simple_table_4O   s:    WdO %($%  % #'	
 $( ), ), *- &* $( %( (+ '* '* $" %))+$))+			y)u:+
'
,*k:h"*Y@	*	<2	*" 	ddtr#   c                 n   	 d}d}||g}ddg}||g}d}d}t        |||t              		fd} ||        y )	N   i     gfffffj@)z>stub1%stub_2)z	#header1$zheader&|)rY   c                 L    d}dj                  d      z  }t        ||       y )Na  
\begin{tabular}{lcc}
\toprule
                    & \textbf{\#header1\$} & \textbf{header\&$|$}  \\
\midrule
\textbf{$>$stub1\%} &          22          &         1053          \\
\textbf{stub\_2}    &          23          &        6250.4         \\
\bottomrule
\end{tabular}
r   Fr`   rc   )r   r   r    tbl_cs      r!   test_ltx_special_charszOTestSimpleTable.test_simple_table_special_chars.<locals>.test_ltx_special_chars   s.    	G  6 6e 6 DDF)r#   )r   ro   )
r   cell0c_datacell1c_data
row0c_data
row1c_datatable1c_datatest1c_stubstest1c_headerr}   r|   s
            @r!   test_simple_table_special_charsz/TestSimpleTable.test_simple_table_special_chars   sS    !;/
&\
#Z1,1L-xX	* 	t$r#   c                 f   t        j                  g ddz  d      }t        j                  g ddz  d      }t        j                  g dd	z  d
      }t        j                  |j                        }|j	                  |      }|j	                  |      }|j	                  |      }|j                  d      }|j                  d      }|j                  ddg      }	|j                  ddg      }
t        |	dg   |
      j                         }g }dd l	}|j                         5  |j                  d       t        |j                               j                         D ]  }d|v s|j                  |d d         	 d d d        g d}t!        t#        |      t#        |             y # 1 sw Y   ,xY w)N)rF   rX         
   i)name)rF   rX   r   r         y)rF   rX   r   r   r         r   r   x)indexsummax)r   r   r   ignore_&   )z&Dep. Variable:                  x_sum z&y_sum          1.4595      0.209      z&y_max          0.2432      0.035      )pandasSeries	DataFramer   joingroupbyaggr   fitwarningscatch_warningssimplefilterr   summary
splitlinesappendr   sorted)r   r   r   r   dfendoexoendo_groups
exo_groupsexo_dfendo_dfreginteresting_linesr   liner   s                   r!   test_regression_with_tuplesz+TestSimpleTable.test_regression_with_tuples   sl   MM,+#6MM/A-C8MM2Q6SAAGG,WWQZwwqzggajll3'[[%
///5%.1&,('2668$$& 	8!!(+CKKM*557 8$;%,,T#2Y78	8= 	VG_f->&?@	8 	8s   $A F'%F''F0c                     d}ddgddgg}d}d}t        |||t              }d	|j                         z  }t        |t	        |             y )
Nz
=====================
      header1 header2
---------------------
stub1 1.30312    2.73
stub2 1.95038     2.6
---------------------
r   gףp=
@r   g@r   r   r   r   r   r   s         r!   test_default_alignmentz&TestSimpleTable.test_default_alignment   sY     t_wn5	'
,YZ%46FNN,,Wc&k*r#   c                     d}ddgddgg}d}d}t        |||t              }d	|j                         z  }t        ||       y )
Na	  
\begin{center}
\begin{tabular}{lcc}
\toprule
               & \textbf{header1} & \textbf{header2}  \\
\midrule
\textbf{stub1} &      5.394       &       29.3        \\
\textbf{stub2} &       343        &       34.2        \\
\bottomrule
\end{tabular}
\end{center}
g~jt@gL=@iW  gA@r   r   r   r   )r   r   _repr_latex_r   )r   r   testdata	teststubs
testheaderr]   r    s          r!   test__repr_latexz TestSimpleTable.test__repr_latex   sW     DMC;/&	+
(J	"13C,,..VW%r#   N)__name__
__module____qualname__r"   r=   r@   rv   r   r   r   r   rk   r#   r!   r
   r
      s-    +$+,+4Zx%6A:+"&r#   r
   )numpy.testingr   statsmodels.iolib.tabler   r   r   r   r   #statsmodels.regression.linear_modelr   rm   ro   rp   r
   rk   r#   r!   <module>r      sE    & @ 5 4  3!!!#!!!#	{& {&r#   