U
    Kvf$                     @   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   F/tmp/pip-unpacked-wheel-2v6byqio/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
-------------------------------------------------------------
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   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_fmtZtitle_alignZheader_alignZdata_alignsZstubs_alignfmtg           gDl
@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>   rC   rD   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?   rB   r;   Ztbl_cr   r   test_ltx_special_chars   s    
zOTestSimpleTable.test_simple_table_special_chars.<locals>.test_ltx_special_chars)r   rG   )	r   Zcell0c_dataZcell1c_dataZ
row0c_dataZ
row1c_dataZtable1c_dataZtest1c_stubsZtest1c_headerrM   r   rL   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  qW 5 Q R X dddg}tt|t| d S )Nr3   r9         
   i)name      y      x)indexsummax)rY   r[   r   ignore_&   z&Dep. Variable:                  x_sum z&y_sum          1.4595      0.209      z&y_max          0.2432      0.035      )pandasZSeriesZ	DataFramerZ   joingroupbyZaggr   Zfitwarningscatch_warningssimplefilterr   summary
splitlinesappendr   sorted)r   rR   rV   rY   ZdfZendoZexoZendo_groupsZ
exo_groupsZexo_dfZendo_dfregZinteresting_linesrc   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~jt@gL=@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   rI   rN   rl   rm   rn   r   r   r   r   r      s   \r   )Znumpy.testingr   Zstatsmodels.iolib.tabler   r   r   r   r`   Z#statsmodels.regression.linear_modelr   rF   rG   rH   r   r   r   r   r   <module>   s   