o
    5ck                     @   s  d dl mZ d dlZd dlZd dlmZmZmZ e	dZ
d dlmZ e
ddZe
jedd	Zejd
d Zejdd Zejdd Zej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 d! Zd"d# Zd$d% Zd&d' Z d(d) Z!d*d+ Z"d,d- Z#ej$%d.d/dgej$%d0d/dgej$%d1dd/gd2d3 Z&ej$%d.d/dgej$%d0d/dgd4d5 Z'ej$%d.d/dgej$%d0d/dgej$%d6d7gd8gd8gd9d: Z(d;d< Z)ej$%d=g d>d?d@ Z*ej$%d.dd/gej$%d0dd/gdAdB Z+ej$%dCdd/gej$%dDdd/gdEdF Z,dGdH Z-dIdJ Z.dKdL Z/dMdN Z0dOdP Z1dQdR Z2ej$%dSdTd.gej$%dUg dVdWdX Z3dYdZ Z4d[d\ Z5dS )]    )dedentN)	DataFrame
MultiIndexoption_contextjinja2)Stylerpandaszio/formats/templatesT)loadertrim_blocksc                   C   s    t tdgdggddgdgdS )NgzG@gQ@abAindexcolumns)r   r    r   r   ]/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/io/formats/style/test_html.pystyler   s    r   c                  C   s6   t ddgddgg} tttddd| | dS )Nr   r   cd      r   )r   from_productr   r   nparangereshape)midxr   r   r   	styler_mi   s    r   c                   C   
   t dS )Nzhtml_style.tplenvget_templater   r   r   r   	tpl_style      
r"   c                   C   r   )Nzhtml_table.tplr   r   r   r   r   	tpl_table#   r#   r$   c                  C   sL   t d} |  }W d    n1 sw   Y  d|v sJ d|v s$J d S )Nz$pandas/io/formats/templates/html.tplz{% include html_style_tpl %}z{% include html_table_tpl %})openread)fileresultr   r   r   "test_html_template_extends_options(   s
   

r)   c                 C   s&   | j ddd}td}||ksJ d S )NT)exclude_stylesdoctype_htmla          <!DOCTYPE html>
        <html>
        <head>
        <meta charset="utf-8">
        </head>
        <body>
        <table>
          <thead>
            <tr>
              <th >&nbsp;</th>
              <th >A</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <th >a</th>
              <td >2.610000</td>
            </tr>
            <tr>
              <th >b</th>
              <td >2.690000</td>
            </tr>
          </tbody>
        </table>
        </body>
        </html>
        )to_htmlr   r   r(   expectedr   r   r   test_exclude_styles1   s
   r/   c                 C   sf   |  ddddgdd dtdgd	gd
gddd td}|| 	 ks1J d S )N thzatt2:v2;selectorpropsc                 S      dS )Nzatt1:v1;r   )xr   r   r   <lambda>W       z%test_w3_html_format.<locals>.<lambda>z!class="my-cls1" style="attr3:v3;"zmy-cls2r   r   r   z{:.1f}zA comprehensive testa          <style type="text/css">
        #T_ th {
          att2: v2;
        }
        #T__row0_col0, #T__row1_col0 {
          att1: v1;
        }
        </style>
        <table id="T_" class="my-cls1" style="attr3:v3;">
          <caption>A comprehensive test</caption>
          <thead>
            <tr>
              <th class="blank level0" >&nbsp;</th>
              <th id="T__level0_col0" class="col_heading level0 col0" >A</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <th id="T__level0_row0" class="row_heading level0 row0" >a</th>
              <td id="T__row0_col0" class="data row0 col0 my-cls2" >2.6</td>
            </tr>
            <tr>
              <th id="T__level0_row1" class="row_heading level0 row1" >b</th>
              <td id="T__row1_col0" class="data row1 col0" >2.7</td>
            </tr>
          </tbody>
        </table>
        )
set_uuidset_table_stylesapplymapset_table_attributesset_td_classesr   formatset_captionr   r,   )r   r.   r   r   r   test_w3_html_formatT   s&   

r@   c                  C   @   t ddggddgddggd} t| ddd	}d
| v sJ d S )N      l0l1al1b)datar   _Fuuidcell_idsz7<th class="col_heading level0 col0" colspan="2">l0</th>r   r   r,   dfr   r   r   r   test_colspan_w3      rO   c                  C   rA   )NrB   rC   rD   rE   rF   )rG   r   rH   FrI   z7<th class="row_heading level0 row0" rowspan="2">l0</th>rL   rM   r   r   r   test_rowspan_w3   rP   rQ   c                 C   s@   |  d | dddg | jdd}td}||ksJ d S )Nabctdcolor: red;r2   Tr+   a          <!DOCTYPE html>
        <html>
        <head>
        <meta charset="utf-8">
        <style type="text/css">
        #T_abc td {
          color: red;
        }
        </style>
        </head>
        <body>
        <table id="T_abc">
          <thead>
            <tr>
              <th class="blank level0" >&nbsp;</th>
              <th id="T_abc_level0_col0" class="col_heading level0 col0" >A</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <th id="T_abc_level0_row0" class="row_heading level0 row0" >a</th>
              <td id="T_abc_row0_col0" class="data row0 col0" >2.610000</td>
            </tr>
            <tr>
              <th id="T_abc_level0_row1" class="row_heading level0 row1" >b</th>
              <td id="T_abc_row1_col0" class="data row1 col0" >2.690000</td>
            </tr>
          </tbody>
        </table>
        </body>
        </html>
        )r9   r:   r,   r   r-   r   r   r   test_styles   s   
#rV   c                 C   s@   | j dd}d|vsJ d|vsJ d|vsJ d|vsJ d S )NFrU   z<html>z<body>z<!DOCTYPE html>z<head>r,   r   r(   r   r   r   test_doctype   s
   rY   c                 C   sb   t dd" | jdd}d|v sJ | jddd}d|v sJ W d    d S 1 s*w   Y  d S )	Nzstyler.render.encodingASCIITrU   z<meta charset="ASCII">ANSI)r+   encodingz<meta charset="ANSI">)r   r,   rX   r   r   r   test_doctype_encoding   s   "r]   c                 C   0   | j dd}d|v sJ |   }d|vsJ d S )NT)bold_headerszth {
  font-weight: bold;
}rW   rX   r   r   r   test_bold_headers_arg      r`   c                 C   r^   )Nzfoo bar)captionz<caption>foo bar</caption>rW   rX   r   r   r   test_caption_arg   ra   rc   c                 C   s@   h d}h d}t | j}||ksJ t |j}||ksJ d S )N>   style	cellstylebefore_styletable_stylesbefore_cellstyle>   trtabletbodytheadrb   head_tr
after_rowsafter_tablebefore_rowsbefore_tableafter_head_rowsbefore_head_rows)setblocks)r"   r$   expected_styleexpected_tableresult1result2r   r   r   test_block_names   s   

rz   c                 C   s   |  dd}|td tt| dd}t|ts!J |jtjus)J |j	tj	us1J |t
dddgi}d|jdd	v sEJ d S )
Ntplzmyhtml_table.tplz            {% extends "html_table.tpl" %}
            {% block table %}
            <h1>{{custom_title}}</h1>
            {{ super() }}
            {% endblock table %}r   rB   rC   z<h1>My Title</h1>


<tablezMy Title)custom_title)mkdirjoinwriter   r   from_custom_templatestr
issubclassr    template_html_tabler   r,   tmpdirpr(   r   r   r   r   test_from_custom_template_table   s   
r   c                 C   s   |  dd}|td tjt| ddd}t|ts"J |jtjus*J |j	tj	us2J |t
dddgi}d| v sDJ d S )	Nr{   zmyhtml_style.tplz            {% extends "html_style.tpl" %}
            {% block style %}
            <link rel="stylesheet" href="mystyle.css">
            {{ super() }}
            {% endblock style %})
html_styler   rB   rC   z2<link rel="stylesheet" href="mystyle.css">

<style)r}   r~   r   r   r   r   r   r   r    template_html_styler   r,   r   r   r   r   test_from_custom_template_style
  s   
r   c                 C   s   |  d d|  v sJ d S )N)zfull capz	short capz<caption>full cap</caption>)r?   r,   r   r   r   r   test_caption_as_sequence   s   
r   r   Fr   
index_namec                 C   s   |rd| j _|r| jdd |r| jdd d}d}| d }|dd	|v |u s-J |d
d|v |u s9J |dddd|v |oE|u sIJ |dddd|v |oU|u sYJ |dddd|v |of| u sjJ d S )Nz	some textr   axisrB   z[#T_ {0} {{
  position: sticky;
  background-color: inherit;
  left: 0px;
  z-index: {1};
}}z_#T_ {0} {{
  position: sticky;
  background-color: inherit;
  top: {1}px;
  z-index: {2};
{3}}}r0   thead tr th:nth-child(1)3 !importantztbody tr th:nth-child(1)1thead tr:nth-child(1) th02z  height: 25px;
thead tr:nth-child(2) th25)r   name
set_stickyr9   r,   r>   )r   r   r   r   left_csstop_cssresr   r   r   test_sticky_basic%  s0   r   c                 C   s   |r| j dd |r| j dd d}d}| d }|ddd	|v |u s(J |d
dd|v |u s5J |ddd	|v |u sBJ |ddd|v |u sOJ |ddd|v |u s\J |ddd|v |u siJ d S )Nr   r   rB   #T_ {0} {{
  position: sticky;
  background-color: inherit;
  left: {1}px;
  min-width: 75px;
  max-width: 75px;
  z-index: {2};
}}l#T_ {0} {{
  position: sticky;
  background-color: inherit;
  top: {1}px;
  height: 25px;
  z-index: {2};
}}r0   r   r   r   ztbody tr th.level0r   thead tr th:nth-child(2)75tbody tr th.level1r   r   r   r   )r   r9   r,   r>   )r   r   r   r   r   r   r   r   r   test_sticky_miL  s&   r   levelsrB   onec                 C   s   ddgddg| j _| j_|r| jd|d |r| jd|d d}d}| d }d	|vs0J d
|vs6J d|vs<J |ddd|v |u sIJ |ddd|v |u sVJ |ddd|v |u scJ d S )Nzeror   r   )r   r   rB   r   r   r0   z#T_ thead tr th:nth-child(1)z#T_ tbody tr th.level0z#T_ thead tr:nth-child(1) thr   r   r   r   r   r   r   )r   namesr   r   r9   r,   r>   )r   r   r   r   r   r   r   r   r   r   test_sticky_levelsn  s$   r   c                 C   s@   t jtdd | jdd W d    d S 1 sw   Y  d S )Nz+No axis named bad for object type DataFrame)matchbadr   )pytestraises
ValueErrorr   r   r   r   r   test_sticky_raises  s   "r   zsparse_index, sparse_columns))TT)TF)FT)FFc           	      C   s   t g d}t g d}tg dg dg dg||d}|j}| }td| d| | }||k| o7|u s;J W d    n1 sEw   Y  |j| |d	}||ksWJ d S )
N))Zr   )r   r   )Yr   ))r   r   )r   r   )Br   )rB   rC      )r         )      	   r   zstyler.sparse.indexzstyler.sparse.columns)sparse_indexsparse_columns)r   from_tuplesr   rd   r,   r   )	r   r   cidxridxrN   r   default_htmlhtml1html2r   r   r   test_sparse_options  s    r   c                 C   s   dd }d\| _ | _|r| j|dd |r| j|dd |  }d|v s&J d|v s,J d	|v |u s4J d
|v |u s<J d|v |u sDJ d|v |u sLJ d|v |u sTJ d S )Nc                 S   r5   )Nz
attr: val;r   vr   r   r   r7     r8   z/test_applymap_header_cell_ids.<locals>.<lambda>)r0   Fr   r   r   z)<td class="data row0 col0" >2.610000</td>z)<td class="data row1 col0" >2.690000</td>z?<th id="T__level0_row0" class="row_heading level0 row0" >a</th>z?<th id="T__level0_row1" class="row_heading level0 row1" >b</th>z1#T__level0_row0, #T__level0_row1 {
  attr: val;
}z?<th id="T__level0_col0" class="col_heading level0 col0" >A</th>z #T__level0_col0 {
  attr: val;
})rJ   rK   applymap_indexr,   )r   r   r   funcr(   r   r   r   test_applymap_header_cell_ids  s(   r   rowscolsc                 C   sN   | j |rdnd |rdnd d}d|v sJ d|v |usJ d|v |us%J d S )NrC   )max_rowsmax_columnsz>5</td>z>8</td>z>2</td>rW   )r   r   r   r(   r   r   r   test_maximums  s   

r   c                  C   s   dddddddd} t d	d
gddgg}tttddd||dddj| d}ddg|j_	|j
|jdd  dd |j
|jdd  dd |jdd dd |jdd dd |dd  td}| }||kspJ d S )NROWHEADIDXNAMEROWROWTRIMLEVELDATABLANK)row_headingr   rowrow_trimlevelrG   blankr   r   r   r   r   r   r   r   uuid_len)css_class_namesn1n2rB   r   c                 S   r5   )NrT   r   r   r   r   r   r7     r8   z/test_replaced_css_class_names.<locals>.<lambda>c                 S   r5   )Nzcolor: green;r   r   r   r   r   r7     r8   c                 S   r5   Nzcolor: blue;r   r   r   r   r   r7     r8   a8      <style type="text/css">
    #T__ROW0_col0 {
      color: blue;
    }
    #T__LEVEL0_ROW0, #T__LEVEL1_ROW0 {
      color: red;
    }
    #T__LEVEL0_col0, #T__LEVEL1_col0 {
      color: green;
    }
    </style>
    <table id="T_">
      <thead>
        <tr>
          <th class="BLANK" >&nbsp;</th>
          <th class="IDXNAME LEVEL0" >n1</th>
          <th id="T__LEVEL0_col0" class="col_heading LEVEL0 col0" >a</th>
        </tr>
        <tr>
          <th class="BLANK" >&nbsp;</th>
          <th class="IDXNAME LEVEL1" >n2</th>
          <th id="T__LEVEL1_col0" class="col_heading LEVEL1 col0" >c</th>
        </tr>
        <tr>
          <th class="IDXNAME LEVEL0" >n1</th>
          <th class="IDXNAME LEVEL1" >n2</th>
          <th class="BLANK col0" >&nbsp;</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <th id="T__LEVEL0_ROW0" class="ROWHEAD LEVEL0 ROW0" >a</th>
          <th id="T__LEVEL1_ROW0" class="ROWHEAD LEVEL1 ROW0" >c</th>
          <td id="T__ROW0_col0" class="DATA ROW0 col0" >0</td>
        </tr>
      </tbody>
    </table>
    )r   r   r   r   r   r   r   r:   r   r   hider   r   r;   r   r,   )cssr   r   r.   r(   r   r   r   test_replaced_css_class_names  s4   )r   c                 C   s\   |  ddd j| jjdd  ddj| jjdd  dd }td}||v s,J d S )	Nr0   c                 S   r5   r   r   r   r   r   r   r7   !  r8   zEtest_include_css_style_rules_only_for_visible_cells.<locals>.<lambda>rB   r   r   r   zr        <style type="text/css">
        #T__row0_col0 {
          color: blue;
        }
        </style>
        )r9   r;   r   rG   r   r   r,   r   r   r(   expected_stylesr   r   r   3test_include_css_style_rules_only_for_visible_cells  s   
	r   c                 C   sX   |  djdd ddj| jjddj| jjdd  dd }td}||v s*J d S )	Nr0   c                 S   r5   r   r   r   r   r   r   r7   6  r8   zLtest_include_css_style_rules_only_for_visible_index_labels.<locals>.<lambda>r   r   r   rB   z        <style type="text/css">
        #T__level0_row0, #T__level1_row0 {
          color: blue;
        }
        </style>
        r9   r   r   rG   r   r   r,   r   r   r   r   r   :test_include_css_style_rules_only_for_visible_index_labels2  s   

	r   c                 C   sX   |  djdd ddj| jjdd  ddj| jjdd }td}||v s*J d S )	Nr0   c                 S   r5   r   r   r   r   r   r   r7   K  r8   zMtest_include_css_style_rules_only_for_visible_column_labels.<locals>.<lambda>r   r   rB   r   z        <style type="text/css">
        #T__level0_col0, #T__level1_col0 {
          color: blue;
        }
        </style>
        r   r   r   r   r   ;test_include_css_style_rules_only_for_visible_column_labelsG  s   

	r   c                  C   s   t jddgdgddggg dd} t jdgd	d
gddggg dd}ttddd| |d}t|dd}|jdddjddd |jdgdd |jdgdd | }t	d}||ks`J d S )Ni0j0i1i2j2)zi-0zi-1zi-2)r   c0c1d1c2d2)zc-0zc-1zc-2r   r   r   r   r   rB   )r   r   )r   r   r   r   )r   r   r   a
      <style type="text/css">
    </style>
    <table id="T_">
      <thead>
        <tr>
          <th class="blank" >&nbsp;</th>
          <th class="index_name level1" >c-1</th>
          <th id="T__level1_col0" class="col_heading level1 col0" colspan="2">c1</th>
          <th id="T__level1_col2" class="col_heading level1 col2" >d1</th>
        </tr>
        <tr>
          <th class="blank" >&nbsp;</th>
          <th class="index_name level2" >c-2</th>
          <th id="T__level2_col0" class="col_heading level2 col0" >c2</th>
          <th id="T__level2_col1" class="col_heading level2 col1" >d2</th>
          <th id="T__level2_col2" class="col_heading level2 col2" >c2</th>
        </tr>
        <tr>
          <th class="index_name level0" >i-0</th>
          <th class="index_name level2" >i-2</th>
          <th class="blank col0" >&nbsp;</th>
          <th class="blank col1" >&nbsp;</th>
          <th class="blank col2" >&nbsp;</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <th id="T__level0_row0" class="row_heading level0 row0" rowspan="2">i0</th>
          <th id="T__level2_row0" class="row_heading level2 row0" >i2</th>
          <td id="T__row0_col0" class="data row0 col0" >0</td>
          <td id="T__row0_col1" class="data row0 col1" >1</td>
          <td id="T__row0_col2" class="data row0 col2" >2</td>
        </tr>
        <tr>
          <th id="T__level2_row1" class="row_heading level2 row1" >j2</th>
          <td id="T__row1_col0" class="data row1 col0" >4</td>
          <td id="T__row1_col1" class="data row1 col1" >5</td>
          <td id="T__row1_col2" class="data row1 col2" >6</td>
        </tr>
        <tr>
          <th id="T__level0_row2" class="row_heading level0 row2" >j0</th>
          <th id="T__level2_row2" class="row_heading level2 row2" >i2</th>
          <td id="T__row2_col0" class="data row2 col0" >8</td>
          <td id="T__row2_col1" class="data row2 col1" >9</td>
          <td id="T__row2_col2" class="data row2 col2" >10</td>
        </tr>
      </tbody>
    </table>
    )
r   r   r   r   r   r   r   r   r,   r   )r   r   rN   r   r(   r.   r   r   r   .test_hiding_index_columns_multiindex_alignment\  s    4r   c                  C   s   t tddd} tg dddgg| _tg dddgg| _ddgdd	g| j_| j_t	| d
dd}|j
g dddj
g ddd tdddd | }W d    n1 s]w   Y  td}||kslJ d S )N@   r   )r   rB   rC   r   r   rB   r   r   r   r   F)rK   r   ))r   r   )r   rB   )rB   r   r   zstyler.render.max_rowsr   zstyler.render.max_columnsa      <style type="text/css">
    </style>
    <table id="T_">
      <thead>
        <tr>
          <th class="blank" >&nbsp;</th>
          <th class="index_name level0" >c</th>
          <th class="col_heading level0 col3" >1</th>
          <th class="col_heading level0 col4" colspan="2">2</th>
          <th class="col_heading level0 col6" >3</th>
        </tr>
        <tr>
          <th class="blank" >&nbsp;</th>
          <th class="index_name level1" >d</th>
          <th class="col_heading level1 col3" >1</th>
          <th class="col_heading level1 col4" >0</th>
          <th class="col_heading level1 col5" >1</th>
          <th class="col_heading level1 col6" >0</th>
          <th class="col_heading level1 col_trim" >...</th>
        </tr>
        <tr>
          <th class="index_name level0" >a</th>
          <th class="index_name level1" >b</th>
          <th class="blank col3" >&nbsp;</th>
          <th class="blank col4" >&nbsp;</th>
          <th class="blank col5" >&nbsp;</th>
          <th class="blank col6" >&nbsp;</th>
          <th class="blank col7 col_trim" >&nbsp;</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <th class="row_heading level0 row3" >1</th>
          <th class="row_heading level1 row3" >1</th>
          <td class="data row3 col3" >27</td>
          <td class="data row3 col4" >28</td>
          <td class="data row3 col5" >29</td>
          <td class="data row3 col6" >30</td>
          <td class="data row3 col_trim" >...</td>
        </tr>
        <tr>
          <th class="row_heading level0 row4" rowspan="2">2</th>
          <th class="row_heading level1 row4" >0</th>
          <td class="data row4 col3" >35</td>
          <td class="data row4 col4" >36</td>
          <td class="data row4 col5" >37</td>
          <td class="data row4 col6" >38</td>
          <td class="data row4 col_trim" >...</td>
        </tr>
        <tr>
          <th class="row_heading level1 row5" >1</th>
          <td class="data row5 col3" >43</td>
          <td class="data row5 col4" >44</td>
          <td class="data row5 col5" >45</td>
          <td class="data row5 col6" >46</td>
          <td class="data row5 col_trim" >...</td>
        </tr>
        <tr>
          <th class="row_heading level0 row6" >3</th>
          <th class="row_heading level1 row6" >0</th>
          <td class="data row6 col3" >51</td>
          <td class="data row6 col4" >52</td>
          <td class="data row6 col5" >53</td>
          <td class="data row6 col6" >54</td>
          <td class="data row6 col_trim" >...</td>
        </tr>
        <tr>
          <th class="row_heading level0 row_trim" >...</th>
          <th class="row_heading level1 row_trim" >...</th>
          <td class="data col3 row_trim" >...</td>
          <td class="data col4 row_trim" >...</td>
          <td class="data col5 row_trim" >...</td>
          <td class="data col6 row_trim" >...</td>
          <td class="data row_trim col_trim" >...</td>
        </tr>
      </tbody>
    </table>
    )r   r   r   r   r   r   r   r   r   r   r   r   r,   r   )rN   r   r(   r.   r   r   r   -test_hiding_index_columns_multiindex_trimming  s    
Rr   typerG   ztext, exp, found))zno link, just textFr0   )zsubdomain not www: sub.web.comFr0   )z www subdomain: www.web.com otherTzwww.web.com)z)scheme full structure: http://www.web.comTzhttp://www.web.com)z#scheme no top-level: http://www.webTzhttp://www.web)z no scheme, no top-level: www.webFzwww.web)z!https scheme: https://www.web.comTzhttps://www.web.com)zftp scheme: ftp://www.webTzftp://www.web)zftps scheme: ftps://www.webTzftps://www.web)z%subdirectories: www.web.com/directoryTzwww.web.com/directory)zMultiple domains: www.1.2.3.4Tzwww.1.2.3.4)zwith port: http://web.com:80Tzhttp://web.com:80)z-full net_loc scheme: http://user:pass@web.comTzhttp://user:pass@web.com)z8with valid special chars: http://web.com/,.':;~!@#$*()[]Tzhttp://web.com/,.':;~!@#$*()[]c                 C   sv   | dkrt |g}|jjdd}nt dg|gd}|jjdd}d|}| }||v |u s1J ||v |us9J d S )NrG   html
hyperlinksr   )r   %<a href="{0}" target="_blank">{0}</a>)r   rd   r>   format_indexr,   )r   textexpfoundrN   r   renderedr(   r   r   r   test_rendered_links  s   

r   c                  C   s\   d} t dj|  g}|jjdd }d}| D ]}|||v s"J q|d|vs,J d S )N)zwww.a.bz
http://a.czhttps://a.dz	ftp://a.eztext {} {} text {} {}r   r   r   r   )r   r>   rd   r,   )linksrN   r(   hreflinkr   r   r   test_multiple_rendered_links+  s   r  c                 C   s@   | j dgj}| |d |  }td}||v sJ d S )NmeanXas      <tr>
      <th id="T_X_level0_row1" class="row_heading level0 row1" >b</th>
      <td id="T_X_row1_col0" class="data row1 col0" >2.690000</td>
    </tr>
    <tr>
      <th id="T_X_level0_foot_row0" class="foot_row_heading level0 foot_row0" >mean</th>
      <td id="T_X_foot_row0_col0" class="foot_data foot_row0 col0" >2.650000</td>
    </tr>
  </tbody>
</table>
    )rG   aggrd   concatr9   r,   r   )r   otherr(   r.   r   r   r   test_concat5  s   r  )6textwrapr   numpyr   r   r   r   r   r   importorskipr   pandas.io.formats.styler   PackageLoaderr	   Environmentr    fixturer   r   r"   r$   r)   r/   r@   rO   rQ   rV   rY   r]   r`   rc   rz   r   r   r   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r   r   r   <module>   s    




	#.*$ 
EE`
