U
    Ãmœdï$  ã                   @   sj   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 
¡ Ze 
¡ ZG dd„ dƒZdS )	é    )Úassert_equal)ÚSimpleTableÚdefault_txt_fmt)Údefault_latex_fmt)Údefault_html_fmtN)ÚOLSc                   @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )ÚTestSimpleTablec                 C   sJ   d}ddgddgg}d}d}t |||td�}d	| ¡  }t|t|ƒƒ d S )
Nz…
=====================
      header1 header2
---------------------
stub1 1.30312 2.73999
stub2 1.95038 2.65765
---------------------
ça7l[”Ùô?g³ïŠàë@ç\¬¨Á4ÿ?g·Ñ ÞB@©Zstub1Zstub2©Úheader1Úheader2©Útxt_fmtú
%s
©r   r   Úas_textr   Ústr©ÚselfÚdesiredZ	test1dataÚ
test1stubsÚtest1headerÚactual© r   ú[/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/iolib/tests/test_table.pyÚtest_simple_table_1   s    ÿz#TestSimpleTable.test_simple_table_1c                 C   sŒ   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d�}t |||td�}	| |	¡ d| ¡  }
t|t|
ƒƒ d S )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
-------------------------------------------------------------
çì†m‹2›$@çí»"øßz%@çÞ°mQf“V@ç~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   Zextend_rightr   r   r   ©r   r   Zdata1Zdata2Zstubs1Zstubs2r   r   Zactual1Zactual2r   r   r   r   Útest_simple_table_2    s    
z#TestSimpleTable.test_simple_table_2c                 C   sŒ   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d�}t |||td�}	| |	¡ d| ¡  }
t|t|
ƒƒ d S )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(   r)   r*   r+   r,   r-   r   r   )r   r   Úextendr   r   r   r.   r   r   r   Útest_simple_table_36   s    
z#TestSimpleTable.test_simple_table_3c                    s¸   t ddgddddddddd	d	d
d
d
ddd�}t ¡ }t ¡ }d}d}||g}ddg}||g}d}	d}
t||
|	|||d�‰ ‡ fdd„}‡ fdd„}‡ fdd„}|| ƒ || ƒ || ƒ d S )Nz%3.2fz%dú é   z * z* z *Ú*z%sÚrÚlÚtxt)Z	data_fmtsZ
empty_cellZ	colwidthsZcolsepZrow_preZrow_postZtable_dec_aboveZtable_dec_belowZheader_dec_belowZ
header_fmtZstub_fmtÚtitle_alignZheader_alignZdata_alignsZstubs_alignÚfmtg        é   gD‹lçû©
@r   r   )r   Últx_fmtZhtml_fmtc                    s   d}dˆ   ¡  }t||ƒ d S )Nzµ
*****************************
*       * header1 * header2 *
*****************************
* stub1 *    0.00 *       1 *
* stub2 *    2.00 *       3 *
*****************************
r   )r   r   ©r   r   r   ©Útblr   r   Útest_txt_fmt1o   s    z:TestSimpleTable.test_simple_table_4.<locals>.test_txt_fmt1c                    sH   d}dˆ j dd� }t||ƒ d|dd…  }dˆ   ¡  }t||ƒ d S )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}
r3   éÿÿÿÿ©Zas_latex_tabularr   )r   r   r   Zdesired_centeredZactual_centeredr=   r   r   Útest_ltx_fmt1~   s    


üz:TestSimpleTable.test_simple_table_4.<locals>.test_ltx_fmt1c                    s   d}dˆ   ¡  }t||ƒ d S )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   )Zas_htmlr   r<   r=   r   r   Útest_html_fmt1—   s    z;TestSimpleTable.test_simple_table_4.<locals>.test_html_fmt1)Údictr   Úcopyr   r   )r   Ztxt_fmt1Últx_fmt1Ú	html_fmt1Z	cell0dataZ	cell1dataZrow0dataZrow1dataZ
table1datar   r   r?   rD   rE   r   r=   r   Útest_simple_table_4P   sH    ñ
 ÿz#TestSimpleTable.test_simple_table_4c           	         sP   d}d}||g}ddg}||g}d}d}t |||td�‰ ‡ fdd	„}|| ƒ d S )
Né   i  é   gfffffj¸@)z>stub1%Zstub_2)z	#header1$zheader&|)r;   c                    s"   d}dˆ j dd� }t||ƒ d S )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<   ©Ztbl_cr   r   Útest_ltx_special_chars·   s    
zOTestSimpleTable.test_simple_table_special_chars.<locals>.test_ltx_special_chars)r   rH   )	r   Zcell0c_dataZcell1c_dataZ
row0c_dataZ
row1c_dataZtable1c_dataZtest1c_stubsZtest1c_headerrN   r   rM   r   Útest_simple_table_special_chars¬   s    z/TestSimpleTable.test_simple_table_special_charsc              	   C   sB  t jddddgd dd�}t jdddddgd	 d
d�}t jdddddddd	gd dd�}t j|jd�}| |¡}| |¡}| |¡}| d¡}| d¡}| ddg¡}	| ddg¡}
t|	dg |
ƒ ¡ }g }dd l	}| 
¡ �@ | d¡ t| ¡ ƒ ¡ D ]}d|krø| |d d… ¡ qøW 5 Q R X dddg}tt|ƒt|ƒƒ d S )Nr3   r:   é   é   é
   Úi)Únameé   é   Úyé   é   Úx)ÚindexÚsumÚmax)rZ   r\   r   ÚignoreÚ_é&   z&Dep. Variable:                  x_sum z&y_sum          1.4595      0.209      z&y_max          0.2432      0.035      )ÚpandasZSeriesZ	DataFramer[   ÚjoinÚgroupbyZaggr   ÚfitÚwarningsÚcatch_warningsÚsimplefilterr   ÚsummaryÚ
splitlinesÚappendr   Úsorted)r   rS   rW   rZ   ZdfZendoZexoZendo_groupsZ
exo_groupsZexo_dfZendo_dfÚregZinteresting_linesre   Úliner   r   r   r   Útest_regression_with_tuplesÇ   s0    "






þz+TestSimpleTable.test_regression_with_tuplesc                 C   sJ   d}ddgddgg}d}d}t |||td�}d	| ¡  }t|t|ƒƒ d S )
Nz…
=====================
      header1 header2
---------------------
stub1 1.30312    2.73
stub2 1.95038     2.6
---------------------
r	   g×£p=
×@r
   gÍÌÌÌÌÌ@r   r   r   r   r   r   r   r   r   Útest_default_alignmentä   s    ÿz&TestSimpleTable.test_default_alignmentc                 C   sF   d}ddgddgg}d}d}t |||td�}d	| ¡  }t||ƒ d S )
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ú~j¼t“@gÍÌÌÌÌL=@iW  gš™™™™A@r   r   r   r   )r   r   Z_repr_latex_r   )r   r   ZtestdataZ	teststubsZ
testheaderr>   r   r   r   r   Útest__repr_latexõ   s    ÿz TestSimpleTable.test__repr_latexN)Ú__name__Ú
__module__Ú__qualname__r   r/   r1   rJ   rO   rn   ro   rp   r   r   r   r   r      s   \r   )Znumpy.testingr   Zstatsmodels.iolib.tabler   r   r   r   ra   Z#statsmodels.regression.linear_modelr   rG   rH   rI   r   r   r   r   r   Ú<module>   s   